У меня есть основной файл .fla, который я использую для загрузки последовательности из трех игр. Если пользователь выигрывает игру, он переходит к следующей игре. Можно ли как-то перейти в основной проект, выиграл ли пользователь игру? Я пытался использовать loader.content, но, похоже, это не работает. Я использую Flash CS3.
Могу ли я передавать параметры из внешнего файла .swf с помощью Actionscript 3.0?
Ответы (2)
Вы можете без проблем передавать данные в загруженные SWF-файлы и из них. Похоже, вы пытаетесь передать данные из загруженного swf в загружаемый swf. Идеальный способ сделать это — отправить событие на загруженный SWF-файл и прослушать его в загружаемом SWF-файле. Примерно (не проверял, потому что тороплюсь) вам нужно что-то вроде этого. Загрузите swf-файл. Иметь обработчик завершения загрузки. Получите содержимое загрузчика и прослушайте пользовательское событие. Вы можете передать все, что хотите, в этом пользовательском событии.
var myLoader:Loader = new Loader();
var url:URLRequest = new URLRequest("myExternalMovie.swf");
myLoader.load(url);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(event : Event)
{
var contenet : MovieClip = event.target.content;
content.addEventListener(yourGameEvent.GAME_COMPLETE, yourGameEventHandler);
}
Если вы никогда раньше не использовали пользовательские события, перейдите по этой ссылке (или погуглите, чтобы узнать больше)
http://www.adobe.com/devnet/flash/articles/creating_events.html
В качестве отказа от ответственности это быстрый способ получить данные в ваш основной класс. Лично я не большой поклонник передачи данных в событиях. Я бы предпочел запустить пустое событие и получить данные из свойств объекта запуска)... но это просто личное предпочтение.
Вы можете использовать класс LocalConnection
.