Flashhilfe.de - Flash Community

wie funktioniert parent in AS3 ? [Flash CS3]

 


AntwortenRegistrieren Seite1  

IchSelber#1
Benutzerbild von IchSelber
Beiträge: 5
Wohnort: Wien
Registriert: Jul 2007

15.07.2007, 19:41

Habe heute erstmals AS3 getestet und bin schon bei meinem ersten Versuch mit Zielpfaden restlos gescheitert. Im folgenden Script funktioniert zwar der "this - Pfad"
aber nicht der "parent - Pfad". Kann mir jemand sagen was man statt dem früheren "_parent " in AS3 tun muss? Das Weglassen des Underline "_" reicht jedenfalls nicht.

ActionScript:
1
2
3
4
5
6
7
8
function tun (event:MouseEvent):void
{
   this.gotoAndStop (2);
   parent.gotoAndStop (2);
}

BT1.addEventListener (MouseEvent.CLICK, tun);

Geändert von IchSelber am 15.07.07 um 19:43 Uhr
omega psi#2
Benutzerbild von omega psi
Beiträge: 791
Registriert: Apr 2004

15.07.2007, 22:59

Was ist denn der parent? Gibt es den denn? Ist es ein Sprite?

Architectures - Refactoring - Prototyping - Coding - Training
IchSelber#3
Benutzerbild von IchSelber
Beiträge: 5
Wohnort: Wien
Registriert: Jul 2007

Themenautor/in

16.07.2007, 00:04

parent = der Movieclip in dem der Movieclip "this"  liegt, in dem die Schaltfläche "BT1"(in diesem Fall auch ein Movieclip), liegt und auch das fehlerhafte Script. Der Movieclip "parent" existiert und hat auch einen Instanznamen.
In AS2 konnte man mit "_parent. "im Zielpfad den übergeordneten Movieclip ansprechen.
In AS3 funktioniert das angeblich mit "parent".
Das Ergebniss sind aber nur unverständliche Fehlermeldungen. Schätze man muss erst irgendwas importieren oder sonstwas tun, damit "parent" funkt. Hab aber keine Ahnung was und die Hilfe half mir dabei auch nicht weiter.
Geändert von IchSelber am 16.07.07 um 00:12 Uhr
burnZ#4
Benutzerbild von burnZ
Beiträge: 2827
Wohnort: Bayern
Registriert: Aug 2005

16.07.2007, 02:28

Du kannst nur auf parent zugreifen wenn auch geadded wurde. kann auch sein das du typecasten musst jenachdem was fürn typ der parent ist. auf jedenfall implementiert er IDisplayObjectContainer

was willst du überhaupt vom parent? gibt dem neuen clip doch einfach ne referenz mit, dafür musst du natürlich ne klasse ableiten.

ps: damit auch alles läuft rate ich dir dringend zu striktem OOP, also ausschliesslich klassen schreiben und verwenden. dahin gehend ist AS3 ja auch gestaltet.
Geändert von burnZ am 16.07.07 um 02:30 Uhr
omega psi#5
Benutzerbild von omega psi
Beiträge: 791
Registriert: Apr 2004

16.07.2007, 06:08

INtention meiner Fragen: wurde der entsprechende Sprite schon geadded? Wenn der parent ein Sprite ist, besitzt er diese Methoden gar ni ht. Wenn du die Fehlermeldung mal ausgeben könntest...

Architectures - Refactoring - Prototyping - Coding - Training
IchSelber#6
Benutzerbild von IchSelber
Beiträge: 5
Wohnort: Wien
Registriert: Jul 2007

Themenautor/in

16.07.2007, 13:12

Danke für die Hilfe.
Das ganze ist mein allererster AS3-Versuch und daher extrem simpel:
Auf der Bühne liegt ein (ganz banal in Flash dort abgelegter) Movieclip mit Instanznamen „MC1“. In MC1 liegt ein weiterer identischer Movieclip „MC2“. Beide haben 2 Frames und stoppen im ersten Frame. In MC2 liegen der Button „BT1“ und das oben gezeigte Script. Es soll bewirken, dass durch Klick auf BT1 die Clips MC1 und MC2 zum zweiten Frame wechseln, ohne dass ich sie über ihren Instanznamen anspreche. In AS2 htte ich das durch das folgende Script erreicht:
ActionScript:
1
2
3
4
5
6
stop(); //Stoppt MC2 im ersten Frame
BT1.onRelease = function ()
{
   gotoAndStop (2);  //MC2
   _parent.gotoAndStop (2); //MC1
}

Ausgennommen von "stop();" in den beiden Movieclips und den oben gezeigten Script enthält das FLA keinen Code.

Die Fehlermeldung lautet:
1061: Aufruf für eine möglicherweise nicht definierte Methode gotoAndStop über einen Verweis mit statischem Typ flash.display:DisplayObjectContainer.

Kann nur hoffen, dass in AS3 nicht alles so umständlich ist
Geändert von IchSelber am 16.07.07 um 13:16 Uhr
burnZ#7
Benutzerbild von burnZ
Beiträge: 2827
Wohnort: Bayern
Registriert: Aug 2005

16.07.2007, 13:23

Ja du musst Typecasten.

ActionScript:
1
2
var myParent:MovieClip = parent as MovieClip;
myParent.gotoAndStop( 2 );


Flash hat keine Ahnung von welchem abgeleiteten Typ parent ist. Er weiss nur das er auf DisplayObjectContainer basiert. In der Referenz steht doch auch das parent so wie auch addChild, removeChild usw alle nur DisplayObject(Container) wiedergeben.

IchSelber#8
Benutzerbild von IchSelber
Beiträge: 5
Wohnort: Wien
Registriert: Jul 2007

Themenautor/in

16.07.2007, 14:33

Danke! Es funktioniert. Aber es scheint wirklich alles komplizierter geworden zu sein. Leider ist mir die Referenz zu abstrakt um damit was anfangen zu können und eine praktische (Schritt für Schritt) Anleitung für AS3 konnte ich noch nicht finden. Falls jemand eine solche kennt, bitte umbedingt verraten.

burnZ#9
Benutzerbild von burnZ
Beiträge: 2827
Wohnort: Bayern
Registriert: Aug 2005

16.07.2007, 14:36

Hmm.. also wenn ich nach einer Methode einer Klasse nachschlage guck ich was ich übergeben muss und was ich dafür bekommen kann. Mehr braucht man doch nicht wissen oder?

IchSelber#10
Benutzerbild von IchSelber
Beiträge: 5
Wohnort: Wien
Registriert: Jul 2007

Themenautor/in

16.07.2007, 18:01

Das klingt sehr einfach. Ist es für mich aber leider nicht. Alles was ich z.B.  über _parent weis, ist dass es zum übergeordneten Movieclip führt. Jetzt schlag ich in der Hilfe nach und finde einiges wie, dass der Underline wegfällt. Davon probiere ich etliches aus. Aber nichts führt mich zum Ziel. Nachdem  du mir die Lösung mitgeteilt hast, habe ich versucht sie in der Hilfe selbst zu finden. Leider auch vergeblich.

Du schreibst „wenn ich nach einer Methode einer Klasse nachschlage….“. Ich habe jetzt ca. eine Stunde versucht mit dieser Info zu deinem Ergebnis zu finden. Hoffnungslos! Wie könnte ich dieses Ergebnis dann finden, wenn ich es nicht vorher kenne? Leider besteht die Hilfe aus unzähligen Einzellinfos, die ich ohne konkrete Handlungsanleitung (Was genau, wo genau und warum schreiben etc.) nicht in einen sinnvollen Zusammenhang bringen kann. AS3 Anfänger eben. Oder vielleicht einfach zu blöd für AS3. (AS1 und 2 verstehe ich übrigens ganz gut) Jedenfalls suche ich nach Idiotensicheren Anleitung bevor ich mit AS3 weitermache. Denn wenn für jede Kleinigkeit viele Stunden draufgehen und ich die Lösung nicht einmal selber finden kann, wird AS3 zur Lebensaufgabe.

rendner#11
Benutzerbild von rendner
Beiträge: 1016
Wohnort: derzeit München
Registriert: Jul 2004

16.07.2007, 18:50

Diese Seite am besten bookmarken: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/

Da du ja weist das du mit einem MovieClip arbeitest, brauchst du nur nach der Klasse MovieClip suchen und gucken was diese für Methoden oder Variablen zur Verfügung stellt.
Und diese kannst du dann auch nutzen.

rendner
rendner
burnZ#12
Benutzerbild von burnZ
Beiträge: 2827
Wohnort: Bayern
Registriert: Aug 2005

16.07.2007, 22:24

das ist übrigens die selbe hilfe wie im programm, nur ohne benutzerkommentare / tipps ;)


AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de