Доступ к переменным загруженного SWF - PullRequest
0 голосов
/ 13 декабря 2011

Я загружаю SWF извне.Мне нужно получить доступ к его методам и переменным.Это код, который я использую:

import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.display.MovieClip;

var loader:Loader;
var req:URLRequest = new URLRequest("aaa.swf");
var mc:MovieClip;

createLoader();

function createLoader():void    {
    loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.INIT, onSWFLoad);
    loader.load(req);
}

function onSWFLoad(e:Event):void    {
    mc = MovieClip(loader.content);
    addChild(mc);
    trace(loader.content)
}

EM загружен класс документа SWF.Если вас спросят, объявлена ​​ли переменная gameEnded публично, ответ будет положительным.Игра загружается, но при вызове переменной возникает ошибка:

ReferenceError: Error #1069: Property gameEnded not found on EM__Preloader__ and there is no default value.
    at main_fla::MainTimeline/onSWFLoad()

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Проверьте настройки предварительного загрузчика на панели настроек ActionScript вашей игры. Fla - EM__Preloader__ выглядит для меня как автоматически сгенерированный класс (а не ваш основной класс EM).

Кроме того, ваш EM-класс должен реализовывать простой интерфейс, к которому вы можете привести ваш loader.content (вместо MovieClip). Таким образом, вы можете быть уверены, что нужные вам методы доступны, а ваш код безопасен для типов. Внедрите этот интерфейс в ваш файл preloader.fla вместо класса EM, чтобы избежать ненужного вздутия ваших SWF-файлов.

0 голосов
/ 25 декабря 2011

Оказалось, что мне нужно было встроить весь код в SWF (я использовал в нем какой-то TLF)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...