Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-12-2004, 15:03   #1 (permalink)
subfiler
 
Registriert seit: Jul 2004
Beiträge: 175
Probleme beim setzen von einem Array in einem benutzerdefinierten Object

hi leute,

ich mache gerade mit dem localConnection object rum. um das zu vereinheilichen bau ich mir ein hilfsobjekt (helper), der das eigentlich localConnection Objekt aufnimmt. dazu mache ich noch einen array, der ebenfalls teil des objektes ist, und der einfach broadcast adressen aufnimmt.

PHP-Code:
Helper = function (localcon) {
  
this.lc localcon;
  
this.broadcasts = new Array();
  
this.lc.connect("myname");
  
this.broadcastadd("myname");
  
this.lc.broadcastadd this.broadcastadd;
}

Helper.prototype.broadcastadd = function(sName) {
  
this.broadcasts.push(sName);

nach der instanzierung befindet sich in dem array ein eintrag (myname). rufe ich nun die funktion aus einem anderen movie (wirklich ein anderer film, nicht ein anderer mc im gleichen film, sondern ein anderer film auf der website) über das localconnection objekt auf, so gibt mir flash an, der array in dem instanzierten helper sei leer. auch das push kommando fügt nichts hinzu. dies habe ich mir Array.length überprüft. woran liegt das? wenn ich über local connection komme, werden dann alle variabeln nochmal in einer eigenen instanz nur für die connection zwischen zwei punkten extra instanziert??? kann doch wohl nicht sein, oder? dann würde er ja auch was hinzufügen - tut er aber nicht. ich weiss da nicht weiter - leider.
hakre ist offline   Mit Zitat antworten
Alt 13-12-2004, 02:05   #2 (permalink)
subfiler
 
Registriert seit: Jul 2004
Beiträge: 175
*bump*
hakre ist offline   Mit Zitat antworten
Alt 13-12-2004, 12:32   #3 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Ich verstehe nicht ganz? Schickst du das Helper-Objekt über die Localconnection?

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 13-12-2004, 13:44   #4 (permalink)
subfiler
 
Registriert seit: Jul 2004
Beiträge: 175
das helper objekt baue ich um das localconnection object herum (ich modifiziere sozusagen nicht mit prototype das localconnection objekt, sondern baue mir ein eigenes objekt). der ganze helper hat den zweck, bessere schnittstellen bereitzustellen, da die eingebauten objekte in flash selbst ja so gut wie immer unzureichend sind.

das helperding wird also nicht über localconnection verschickt (wusste garnicht, das man objekte via localconnection verschicken kann) sondern handelt send und connect befehle für das localconnection objekt. dieses wird bei instanzierung des helperobjektes zugewiesen (hier fett):

Helper = function (localcon) {
this.lc = localcon;
this.broadcasts = new Array();
this.lc.connect("myname");
this.broadcastadd("myname");
this.lc.broadcastadd = this.broadcastadd;
}

so in der anwendung:

myLocalCon = new LocalConnection();
myHelper = new Helper(myLocalCon);

das helper objekt handelt dann auch den connect des darin verwiesenen localconnection objektes.
hakre ist offline   Mit Zitat antworten
Alt 13-12-2004, 14:02   #5 (permalink)
subfiler
 
Registriert seit: Jul 2004
Beiträge: 175
jetzt kommt mir nochwas in den sinn:

da die routine ja in dem fehlerfall als event von Helper.lc aufgerufen wird (vgl. this.lc.broadcastadd = this.broadcastadd; in der initialisierungsfunktion) denkt flash evtl. das sich das this dann in der broadcastadd funktion auf lc bezieht. kann das jemand bestätigen oder verneinen?
hakre ist offline   Mit Zitat antworten
Alt 13-12-2004, 14:20   #6 (permalink)
subfiler
 
Registriert seit: Jul 2004
Beiträge: 175
so, ich kann das nun weder bestätigen oder wiederlegen, da ich nicht sehen kann, was this ist (gibts reflektion bei flash mx?), aber wenn ich über _root auf die instanz direkt zugreife, dann gibts den array noch.

da bleibt für mich nur noch die frage offen, wie in aller welt ich die selbstbezüge machen soll, wenn flash so mir nichts dir nichts this immer auf das erstbeste objekt setzt, ohne das aufzulösen. ich glaube ich verstehe das noch nicht so genau mit den verweisen auf funktionen, dachte immer, das die eigenständig sind.

noch ne anmerkung: kann es sein, das _parent nicht bei objekten funktioniert?

Geändert von hakre (13-12-2004 um 14:23 Uhr)
hakre ist offline   Mit Zitat antworten
Alt 13-12-2004, 14:48   #7 (permalink)
subfiler
 
Registriert seit: Jul 2004
Beiträge: 175
also, um mich mal wieder selber zu beantworten:

_parent funktionier bei objekten nicht. also setzt der helper nun den parent selber für die LocalConnection (via this.lc.parent = this; in der initialisierung) und mapped die funktion selber nochmal neu rein:

PHP-Code:
LocalConnectionHelper = function(cLocalConnection) {
    
this.lc cLocalConnection;
    
this.lc.parent this;
    [
b]this.lc.broadcastAdd = function(s) {this.parent.broadcastAdd(s);}[/b]
    
this.broadcastCons = new Array();

so, dann klappts auch mit dem nachbarn
hakre ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele