![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2008
Сообщений: 52
|
Приветствую.
Имеется Flash AS3 SWF файлик(1) имплементирующий некий интерфейс ICalc. Из флекса(2), компонентом SWFLoader я подгружаю этот файлик(1), затем через интерфейс обращаюсь к методам SWFки(1). Всё работает. Но стоит заEMBEDить SWF-ку myInstance становится Null (myInstance инициализирую после отображения на сцене SWFки(1)), и обратиться к методам уже не получается. Пробовал Embedить через Bindable объект с последующим указанием source: Подскажите как решить мою проблему. Мне необходим 1 конечный swf файл содержащий в себе всё необходимое. |
|
|||||
|
[+4 16.07.08]
Регистрация: Jul 2008
Адрес: Gamburg
Сообщений: 108
|
package
{
import flash.display.*;
import flash.events.Event;
import flash.utils.ByteArray;
public class ObjectSWF extends Sprite{
private var loader:Loader;
private var byte:ByteArray;
private var thisObj:MovieClip;
private var _scale:Number;
public function ObjectSWF(Obj:Class,scale:Number=1){
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadBytes);
byte = new Obj() as ByteArray;
loader.loadBytes(byte);
_scale= scale;
}
//-------------------------------------------------------------------------------------
private function onLoadBytes(evt:Event):void{
this.thisObj = loader.content as MovieClip;
this.gotoFrameStop(1)
this.thisObj.scaleX= _scale;
this.thisObj.scaleY= _scale;
this.thisObj.x=-Math.round(this.thisObj.width/2);
this.thisObj.y=-Math.round(this.thisObj.height/2);
addChild(this.thisObj);
}
//-----------------------------------------------------------------------------------------
public function gotoFrameStop(num:uint):void{
this.thisObj.gotoAndStop(num)
}
//-------------------------------------------------------------------------------------------
public function gotoFramePlay(num:uint):void{
this.thisObj.gotoAndPlay(num);
}
//-------------------------------------------------------------------------------------------
public function nextFrame():void{
this.thisObj.nextFrame();
}
//------------------------------------------------------------------------------------------
public function prevFrame():void{
this.thisObj.prevFrame();
}
//-----------------------------------------------------------------------------------------
public function RemoveObjectSWF():void{
removeChild(this.thisObj);
}
}
}
|
|
|||||
|
Регистрация: May 2008
Сообщений: 52
|
Спасибо за вариант, но ситуация аналогичная. В классе ObjectSWF при присвоении переменная byte, оказывается Null, хотя Obj() не пустой.
![]() Пробовал также грузить другой SWF файлик - не помогает. Подскажите пожалуста у кого ещё есть идеи. |
|
|||||
|
[+4 16.07.08]
Регистрация: Jul 2008
Адрес: Gamburg
Сообщений: 108
|
Проверте правильность пути и название флешки
|
|
|||||
|
Регистрация: May 2008
Сообщений: 52
|
Флешка Embedится - 100%. Лежит рядом так что ошибок с путём быть не может.
Проблема осталась не решенной, пришлось её обойти и реализовать структуру программы иным способом. Venya2007, спасибо за участие и за помощь! |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
http://yarovoy.com/2007/10/27/embed_binary_data/ - может поможет.
__________________
john |
|
|||||
|
[+4 16.07.08]
Регистрация: Jul 2008
Адрес: Gamburg
Сообщений: 108
|
Aldvin Molecula правильно подсказал:попробуйте - 100 % будет работать!
Последний раз редактировалось Venya2007; 03.08.2008 в 21:54. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|