Мы разрабатываем небольшой Flash-гейлет для нашего европейского клиента, которому необходимо, чтобы мы разрабатывали нашу Flash-игру таким образом, чтобы они могли загружать нашу SWF-игру в свой проект ActionScript 3, динамически.
В основном у них есть консоль, которая будет загружать многие другие Flash-игры, в том числе и наши, в зависимости от того, какую кнопку игрок нажимает на экране «Выберите игру».
По сути, у нас есть проект FLA, который мы создаем во Flash Professional CS4, и все это в основном простая Flash-игра. Когда мы тестируем игру с помощью Ctrl + Enter или запускаем скомпилированный SWF-файл, дважды щелкнув по нему, все работает хорошо, игра работает отлично, и все являются счастливыми кроликами.
Что нам нужно понять, так это загрузить наш SWF в наш клиентский проект AS3, который по сути является внешним проектом ActionScript 3, созданным в Flex Builder 3. Клиент отправил нам следующий код для загрузки SWF:
var myGame:FunkyChickenGame = new FunkyChickenGame();
addChild(myGame);
... который выполняется в конструкторе приложения ActionScript 3 клиентского приложения или, возможно, в обработчике события для кнопки, нажатой на экране «Выберите игру».
Мы попытались создать пустой проект AS3 во Flex Builder и попытались загрузить SWF, как показано в моем фрагменте выше. Все наши трассировки в классе документов внешнего SWF-файла отображаются, как и ожидалось, в представлении консоли Flex Builder, поэтому код работает отлично.
Проблема, с которой мы сталкиваемся, заключается в том, что, несмотря на вызов addChild (myGame) ... мы не видим никакой графики, только цвет фона по умолчанию для инкапсулирующего проекта AS3.
Обратите внимание, однако, что когда мы запускаем SWF, дважды щелкнув файл Game.swf в Windows, все работает отлично, игра работает без ошибок и сбоев.
Любая помощь по этой теме будет принята с благодарностью. Заранее спасибо.