22. november 2008 - 19:21Der er
8 kommentarer og 1 løsning
Movieclips skal kommunikere
Hej alle,
Hvis jeg på Scene1 har et movieclip liggende, som indeholder noget kode, som gerne skulle gøre noget ved et andet movieclip som også ligger på Scene1, hvordan gør jeg så det ? I AS3 :)
Den fede løsning er at lave en klasse, hvor begge movieclips er en del af klassen. Så kan du kommunikere med begge to på samme tid. Så kan du lade dit movieclip dispatche en event, som din klasse lytter på, og så kan du få den til at snakke med det andet movieclip, når du ønsker det. Hvis du laver en constructor som denne, så er du garteret til enhver situation:
public static var EVENT_DISPATCH = "MCEvent_EventDispatch; private var Data:*; public function MCEvent(DataObject:*, Type:String, Bubles:Boolean = false, Cancelable:Boolean = false):void { super(Type, Bubles, Cancelable); Data = DataObject; } public function get EventData():Object { // her skal du så have noget med... return {Data1:Data.Info1, Data2:Data.Info2, Navn:Data.EtNavn /* etcetera */}; }
Jeg havde tænkt noget i retningen af, at hvis dette stod i mit Actionscript i frame 1 i mit ene movieclip som fx. hedder Objekt1: function flytDen():void { Objekt2.x=10; }
Det virker så kun, hvis begge Objekter ligger på Scene1? Begge mine objekter ligger i et movieclip. For at gøre det nemmere bruger jeg de rigtige navne så.
Begge objekter ligger i et movieclip som har magic som instancename. Første objekt hedder magic1 og er et movieclip. Andet objekt hedder blackfade og er også et movieclip.
I min første frame inde i movieclippet 'magic1', vil jeg gerne få det andet movieclip 'blackfade' til at afspilles.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.