2015-10-01 3 views
1

Я пытаюсь изучить ActionScript 3 с целью использования функции Air for Mobile (Android). У меня есть два swf-файла и я хочу загрузить и запустить второй файл из первого файла. Это отлично работает, когда я упаковываю оба файла как часть apk.Загрузка внешнего интерактивного swf в Air Mobile

Но если второй файл swf помещается в пользовательское хранилище, файл загружается, но он не ждет взаимодействия с пользователем. Swf играет как видео.

Это то, что я написал в первом файле для загрузки второго файла.

var loader:Loader=new Loader(); 

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded); 
loader.load(new URLRequest("file:///storage/emulated/0/swfs/second.swf")); 

function onLoaded(e:Event):void 
{ 
    addChild(loader); 
} 

Я бы очень признателен, если кто-то может указать мне правильное направление.

Этот код в second.swf. Событие, хотя теперь я вижу кнопку. Событие клика не работает. Теперь я не уверен, что эта проблема полностью связана с AS3.

loader.contentLoaderInfo.addEventListener(Event.ENTER_FRAME, handleReady); 
function handleReady(initEvent:Event):void 
{ 
    trace("Enter-Frame"); 
    MovieClip(initEvent.currentTarget.content).stop(); 
} 

button.addEventListener(MouseEvent.CLICK,touchfun); 
function touchfun(e:MouseEvent) 
{ 
    trace("btn click"); 
    button.visible=false; 
} 
+1

http://stackoverflow.com/questions/2365695/as3-stop-external-swf – SushiHangover

+0

@RobertN Я попытался позвонить, чтобы остановить(), это останавливает файл от игры, но события присутствуют во втором файле не работает. – Deepak

ответ

3

Вы должны установить «allowCodeImport» в true в первом swf, который загружает второй. Сначала вам нужен объект контекста для установки флага;

var context:LoaderContext = new LoaderContext(); 
context.allowCodeImport = true; 

Затем вы должны передать этот объект контекста своему загрузчику;

var loader:Loader=new Loader(); 

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded); 
loader.load(new URLRequest("file:///storage/emulated/0/swfs/second.swf"), context); 

function onLoaded(e:Event):void 
{ 
    addChild(loader); 
} 
+0

Ты заработал? –

Смежные вопросы