Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-10-2003, 21:51   #1 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
wie auf übergeordnete Ebene referenzieren

Ich versuche es mal zu erklären:

Ich habe eine Komponente (A) die aus verschiedenen mcs (C,D) besteht.

In der Bibliothek habe ich ein mc, in dem nur Sourcecode steht: z.B. MyClass


In der Komponente A Bild 1 instanziere ich MyClass

also: myClass = new MyClass();

in MyClass will ich auf ein mc in Komponente A referenzieren, z.B. C. Da ich in MyClass nicht weiss, wo MyClass instanziert wird, muss ich irgendwie auf die Komponente A referenzieren, damit ich auf C zugreifen kann.

Habe ich mir in meiner Naivität natürlich ganz einfach vorgestellt:

in MyClass einfach this._parent.C oder _parent.C oder so. Aber Pustekuchen, sowohl this_parent als auch _parent ist undefined.

Wie komme ich nun aus MyClass an mc C in Komponente A ran?

Verstanden?
MadLock ist offline   Mit Zitat antworten
Alt 12-10-2003, 09:08   #2 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
ganz komme ich nun nicht mit, mit deinen verschachtelungen.. aber so oder so setz die instanz global... dann brauchst auch keinen pfad.. in deinem fall die schnellste lösung

_global.myClass = new MyClass();
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 12-10-2003, 10:10   #3 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
hilft mir auch nicht weiter

Versuch mal folgendes, wenn Du Lust hast:

neues fla file, 1. Ebene 1. Bild
ActionScript:
  1. trace("targetpath: " + targetpath(this) + " typeof: " + typeof(this));
  2.  
  3. var myclip = new mcliptest("hello world");
  4.  
  5. trace(myclip.getMsg());

in der Bibliothek neues Symbol erstellen, mclip1, movieclip anklicken, export in actionscript
dann mclip1 bearbeiten, folgenden code rein:
ActionScript:
  1. #initclip 1
  2.  
  3. function mcliptest (msg) {
  4.     this.msg = msg;
  5. }
  6.  
  7. mcliptest.prototype = new MovieClip();
  8.  
  9. mcliptest.prototype.getMsg = function() {
  10.     trace("targetpath: " + targetpath(this) + " typeof this: " + typeof(this));
  11.     trace("typeof _root: " + typeof(_root));
  12.     trace("typeof _parent: " + typeof(_parent));
  13.     trace("typeof _global: " + typeof(_global));
  14.     trace("typeof this._parent: " + typeof(this._parent));
  15.     return this.msg;
  16. }
  17.  
  18. #endinitclip

Film ausführen ergibt folgendes:
Zitat:
targetpath: _level0 typeof: movieclip
targetpath: typeof this: object
typeof _root: movieclip
typeof _parent: undefined
typeof _global: object
typeof this._parent: undefined
hello world
Meine Frage ist eigentlich: wie weiss ich in mcliptest auf welcher ebene sich mcliptest befindet und wie komme ich dann eine ebene tiefer.
MadLock ist offline   Mit Zitat antworten
Alt 12-10-2003, 10:16   #4 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
Ich machs jetzt einfach so:

var myclip = new mcliptest("hello world");
myclip._parent = this;

dann habe ich meine ebene in mcliptest.
MadLock ist offline   Mit Zitat antworten
Alt 12-10-2003, 10:17   #5 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
das kommt drauf an in welche ebenen du die komponente auf die bühne bringst.....

du könntest nun ganz einfach machen
_global.mcliptest = function (msg) {
this.msg = msg;
}

somit wäre die komponente global... definiert...

wobei es da schon wo einen denkfehler gibt.. denn eigentlich soll die komponente ja in sich geschloßen arbeiten.. und nach außen nur methoden bereitstellen....von extern neue instanzen usw zu erstellen ist eigentlich nicht im sinne der erfinder
wobei es schon geht k....

p.s. du solltest das ausgabefenster verwenden... das bringt dich gerade bei solchen fragen wie pfade.. weiter
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)

Geändert von Scrawer (12-10-2003 um 10:19 Uhr)
Scrawer ist offline   Mit Zitat antworten
Alt 12-10-2003, 10:35   #6 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
da habens wir ja: Denkfehler, sag das doch gleich

ich schreibe jetzt einen eventhandler in meiner klasse und überschreibe den dann in meiner Komponente und schon hat sich das thema erledigt.

Juppi
MadLock 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 13:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele