2009-08-21 9 views
0

Ich habe eine SWF geladen, die in Flash CS9 (AS3) erstellt wird. Ich habe Probleme beim Übergeben von Bitmap (oder BitmapData) von der Flex-App an die geladene SWF.Flash CS3 swf geladen in Flex-Problem (Bitmap)

Das Aufrufen anderer Funktionen im geladenen von Flex funktioniert, aber wenn ich versuche, ein Bitmap an die geladene SWF zu übergeben, passiert nichts. Hier ist ein Beispielcode:

FLEX:

try{ 
    var bm:Bitmap = (someEvent.data as Bitmap); 
    imageHolder.source = bm; // works fine with container inside flex app 
    flashSWF.setPhotoBitmap(bm); 
}catch(e:Error){ 
    tracer("error = "+e); 
} 

FLASH:

function setPhotoBitmap(b:Bitmap):void{ 
    addChild(b); // throws error 
} 

Die oben wirft einen Typeerror: Error # 2007 Wahrscheinlich, weil b null ist.

Gibt es Einschränkungen, auf die ich achten sollte, oder mache ich hier etwas falsch?

Prost!

+0

Welcher Typ ist imageHolder? Wo ist es definiert? –

+0

Welche anderen Funktionen rufen Sie in der geladenen SWF-Datei auf? Wie laden Sie dieses SWF? Sie müssen hier mehr Details zum Ablauf der Ereignisse angeben. –

+0

Hallo Lior, hier sind einige Details: 1) ImageHolder ist Flex SWFLoader. Es ist eine visuelle Benutzeroberfläche in Flex's Stadium. 2) Ich lade das Flash swf mit einem anderen SWFLoader in Flex. so: 3) Sobald SWF geladen ist mache ich das: flashSWF = flashSwfLoader.content als MovieClip; 4) Dann bin ich erfolgreich aufrufen viele Funktionen mit FlashSWF (in der SWF-Timeline) 5) Das Problem trat nur auf, wenn Bitmap zu einer seiner Funktion übergeben wurde. Hoffe, diese Details gibt ein klareres Bild. Danke! – Yeti

Antwort

0

Ich habe eine Lösung gefunden. Das Problem war wegen eines dummen Fehlers, den ich gemacht habe.

var bm:Bitmap = (someEvent.data as Bitmap); 

Das Problem war in der obigen Zeile. 'someEvent' wurde von FileReference.load() generiert und ich habe nicht erkannt, dass es sich bei Daten um ByteArray und nicht um eine Bitmap handelt.

Während all dieser Zeit habe ich ByteArray an eine Funktion übergeben, die nur Bitmap akzeptiert.

Sorry Leute, mein Schlechter!

Vielen Dank für Ihre Zeit.

P

0

Wann genau rufen Sie setPhotoBitmap auf?

Ich denke, Sie sollten in Ordnung sein, wenn Sie es in der INIT Handler Ihrer SWFLoader-Instanz tun. Das ist, wenn Ihr SWF geladen ist und alle Klassen initialisiert sind.

Goodluck!