Steuern nachgeladener SWFs [Flash 11]
| Beiträge: 18 Registriert: Aug 2010
| 02.06.2011, 15:19
Hallo ihr Lieben,
ich habe mal wieder eine klitzkleines Problem:
Es werden via XML SWFs nachgeladen. Diese beinhalten einfache Zeitleisten-Animationen.
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ... ... ..
var _container:Sprite = new Sprite();
addChild(_container);
pics[i] = _container;
pics[i].x = (430-(cubesSumme*60))+(cubesCount*120);
pics[i].y = 425;
pics[i].addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);
pics[i].addEventListener(MouseEvent.MOUSE_OUT , fl_MouseOutHandler);
pics[i].addEventListener(MouseEvent.MOUSE_DOWN, fl_MouseDownHandler);
pics[i].buttonMode = true;
pics[i].useHandCursor = true;
_container.addChild(_loaders[i])
}
}
}
|
Funktioniert alles Prima. Objekte erscheinen an der richtigen Stelle usw.
Beim Mausover soll allerdings der geladene MC ab Bild 2 loslaufen:
ActionScript:1 2 3 4 | function fl_MouseOverHandler(e:MouseEvent):void
{
e.currentTarget.gotoAndPlay(2);
}
|
Was so leider nicht funktioniert. Was mach ich falsch?
Lieben Dank schonmal für eure Hilfe.
Jenny | | | Beiträge: 186 Registriert: Jun 2009
| 03.06.2011, 12:30
mal geraten ...
dein currentTarget aus der mouseOver-funtion ist doch der container.
also ein sprite, in das du die swf als child gelegt hast.
mit "e.currentTarget.gotoAndPlay(2)" sprichst du den sprite an, nicht sein child, die swf. | | | Beiträge: 18 Registriert: Aug 2010
Themenautor/in
| 03.06.2011, 13:55
ok. das bringt mich aber leider noch nicht zum Ziel.
ActionScript:1 | trace (e.currentTarget.name);
|
Liefert mir "instance22" zurück.
Weder
ActionScript:1 | e.currentTarget.child.gotoAndPlay(2);
|
noch
ActionScript:1 | e.currentTarget.parent.gotoAndPlay(2);
|
funktioniern.
Wie muss ich das Baby denn jetzt ansprechen? | | | Beiträge: 186 Registriert: Jun 2009
| 03.06.2011, 15:01
> ok. das bringt mich aber leider noch nicht zum Ziel.
na dann ...
ob "currentTarget" der container-sprite ist, kannst du so herausfinden:
ActionScript:1 | trace (e.currentTarget is Sprite); // ergibt true, falls sprite
|
falls "true" angezeigt wird, kannste weiterlesen, ansonsten ist der rest hinfällig.
das "child" erhälst du mit:
ActionScript:1 | var myChild = e.currentTarget.getChildAt(0) as MovieClip;
|
damit hast du das 1. child im sprite. das sollte dann die geladene swf sein.
starten dann mit:
| | | Beiträge: 18 Registriert: Aug 2010
Themenautor/in
| 03.06.2011, 15:36
Heul.... 8-(((.
füge ich folgenden Code ein:
ActionScript:1 2 3 | trace (e.currentTarget is Sprite);
var myChild = e.currentTarget.getChildAt(0) as MovieClip;
myChild.gotoAndPlay(2) ;
|
Erhalte ich diese Ausgabe:
ActionScript:1 2 3 | true
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
at FlashFinalVersion01_fla::MainTimeline/fl_MouseOverHandler()
|
| | | Beiträge: 186 Registriert: Jun 2009
| 04.06.2011, 11:19
tja, schade!
deine ausgabe sagt: "ja, ich bin ein sprite" und "nein, ich habe kein child".
das ist merkwürdig ...
ich würde jetzt versuchen, herauszufinden, ob es wirklich der _container-sprite ist, der geklickt wird.
scheint nicht so ...
gib dem _container beim erstellen doch mal einen namen:
ActionScript:1 2 | var _container:Sprite = new Sprite();
_container.name = "test"+i;
|
(woher dieses "i" kommt, weiss ich nicht. aber du verwendest es ja bei "pics[i]")
abfragen kannst du den namen dann mit:
ActionScript:1 | trace (e.currentTarget.name);
|
du kannst auch abfagen, ob in dem target überhaupt was enthalten ist:
ActionScript:1 | trace (e.currentTarget.numChildren);
|
und so nebenbei ...
woher kommen denn diese "pics[i]" und warum verwendest du sie und nimmst nicht für positionierung und listener direkt den _container-sprite? | | | Beiträge: 18 Registriert: Aug 2010
Themenautor/in
| 06.06.2011, 13:28
So hier die Ergebnisse:
ActionScript:1 2 3 4 5 6 | function fl_MouseOverHandler(e:MouseEvent):void
{
trace (e.currentTarget.name);
trace (e.currentTarget is Sprite);
trace (e.currentTarget.numChildren);
}
|
Liefert als Ausgabe:
Da ich die ganze Parent / Child - Sache nicht gescheit auf den Schirm bekomme - wo gibt es denn im Web ein vernünftiges Tutorials/Literaturtipps mit Beispielen, wie das ganze in den Griff zu bekommen ist?
Für brauchbare Tipps würd ich mich riesig Freuen.
Einen schönen Tag Euch
J. | |
| Ähnliche Beiträge zum Thema | |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News
Regeln & Bedingungen
|