Flash CS3 SWF загружен внутри выпуска Flex (Bitmap) - PullRequest
0 голосов
/ 22 августа 2009

Я загрузил SWF, созданный в Flash CS9 (AS3). У меня проблемы с передачей Bitmap (или BitmapData) из приложения Flex в загруженный SWF.

Вызов других функций в загруженном из Flex работает, но когда я пытаюсь передать Bitmap в загруженный SWF, ничего не происходит. Вот пример кода:

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
}

Выше выдается ошибка типа: ошибка # 2007 Вероятно, потому что b является нулем.

Есть ли какое-то ограничение, о котором я должен знать, или я здесь что-то не так делаю?

Ура!

Ответы [ 2 ]

0 голосов
/ 25 августа 2009

Я нашел решение для этого. Проблема была из-за глупой ошибки, которую я сделал.

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

Проблема была в приведенной выше строке. Метод someRevent был сгенерирован FileReference.load (), и я не осознавал, что данные - это ByteArray, а не Bitmap.

Все это время я передавал byteArray в функцию, которая принимает только растровое изображение.

Извините, ребята, мой плохой!

Спасибо за ваше время.

P

0 голосов
/ 23 августа 2009

Когда именно вы вызываете setPhotoBitmap?

Я думаю, что у вас все будет хорошо, если вы сделаете это в обработчике INIT вашего экземпляра SWFLoader. Это когда ваш swf загружен и все его классы инициализированы.

Гудлак!

...