2010-12-08 3 views
0

Ich habe einen Flash-Film Instanzname "headArea" Ich möchte eine externe swf laden und den Film in der headArea tauschen - den Kopf ersetzen.Wie ersetze ich einen Film einen Film in Flash - dress up Spiel

Ich habe den folgenden Code:

clickIt.addEventListener(MouseEvent.MOUSE_DOWN, swopHead); 
function swopHead(event:MouseEvent):void { 
    var loadit = new Loader(); 
    headArea.addChild(loadit); 
    loadit.load(new URLRequest("head2.swf")); 
} 

Problem ist, dass die neue swf ist nicht genau in der headArea geladen und scheint die Registrierung weg sein kann - obwohl alle reg Punkte auf Mitte.

Ist dies der beste Weg, dies zu tun?

Antwort

1

Der Lader wird bei 0,0 positioniert, so dass es wie eine Registrierung oben links aussehen würde. Um es richtig zentrieren müssen Sie wahrscheinlich so etwas wie dies tun:

loadit.contentLoaderInfo.addEventListener(Event.COMPLETE, onHeadLoaded); 
function onHeadLoaded(evt:Event):void{ 
    loadit.x = -loadit.width/2; 
    loadit.y = -loadit.height/2; 
} 

Es ist wichtig, die Sie tun, negative Hälfte die Breite und negative Hälfte der Höhe, so dass der Kopf bewegt sich nach oben und nach links anstatt nach unten und nach Recht.

Dies muss im Event.COMPLETE-Handler durchgeführt werden, da der Loader erst dann eine Größe hat, wenn er vollständig in den Flash-Film geladen wurde.

+0

perfekt - danke – Chev

+0

kein Problem. es hat funktioniert. – Zevan

1

Die Registrierung für geladene Videoclips ist immer oben links, glaube ich, was dazu führt, dass Ihr Center aus ist. Vielleicht sollten Sie den Clip nach dem Laden neu positionieren (Breite/2 - Höhe/2)

Verwandte Themen