0

Flash CS9 (AS3) で作成された SWF をロードしました。Flex アプリから読み込まれた SWF に Bitmap (または BitmapData) を渡す際に問題が発生しています。

Flex からロードされた他の関数の呼び出しは機能しますが、ロードされた SWF にビットマップを渡そうとしても何も起こりません。サンプルコードは次のとおりです。

フレックス:

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);   
}

閃光:

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

上記は TypeError: Error #2007 をスローします。おそらく b が null であるためです。

注意すべき制限はありますか、それともここで何か間違っていますか?

乾杯!

4

2 に答える 2

0

私はこれに対する解決策を見つけました。問題は私が作ったばかげたエラーが原因でした。

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

問題は上記の行にありました。'someEvent'はFileReference.load()によって生成されましたが、データがByteArrayであり、ビットマップではないことに気づきませんでした。

この間ずっと、byteArrayをビットマップのみを受け入れる関数に渡していました。

申し訳ありませんが、私の悪い!

お時間をいただきありがとうございます。

P

于 2009-08-25T06:48:50.950 に答える
0

正確にいつ setPhotoBitmap を呼び出していますか?

SWFLoader インスタンスのINITハンドラで実行すれば問題ないと思います。それは、swf がロードされ、すべてのクラスが初期化されるときです。

幸運を!

于 2009-08-23T10:30:01.753 に答える