У меня есть основной файл .fla, который я использую для загрузки последовательности из трех игр. Если пользователь выигрывает игру, они переходят к следующей игре. Можно ли каким-либо образом перейти к основному проекту, выиграл ли пользователь игру? Я попытался использовать loader.content, но это, похоже, не работает. Я использую Flash CS3.Могу ли я передавать параметры и из .swf с помощью ActionScript 3.0?
ответ
Вы можете передавать данные в и из загруженных swfs без проблем. Похоже, что вы пытаетесь это сделать, это общаться с загруженным 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);
}
Если вы никогда не использовали пользовательские события, прежде чем проверить эту ссылку (или Google больше)
http://www.adobe.com/devnet/flash/articles/creating_events.html
Как отказ тот быстрый способ получить данные в вас основной класс. Лично я не массивный поклонник передачи данных в событиях. Я бы предпочел запустить пустые события и получить данные из свойств объекта обжига) ... но это только личное предпочтение.
Вы можете использовать класс LocalConnection
.