Загрузить внешний SWF из кнопки во внешний SWF и выгрузить себя? - PullRequest
0 голосов
/ 13 мая 2010

Я Uber N00B для прошивки AS3. И я не собираюсь звучать как полный идиот, но, честно говоря, мне было довольно сложно понять, как загрузить внешний .swf в мой основной файл! А теперь мой друг спрашивает меня, не мог бы я добавить кнопку во внешний .swf, которая сама разгрузится и загрузит новую вместо нее ...
Я какое-то время искал ответы на форумах и считаю, что мне пора сломаться, признать поражение и попросить помощи.
Может кто-нибудь сказать мне, что это не так сложно? Конечно, это возможно ...
Заранее благодарю за любой совет! Я с нетерпением жду того времени, когда Я сможет опубликовать ответ здесь!

1 Ответ

0 голосов
/ 14 мая 2010

У меня есть решение! И прошло только 24 часа. Я правлю!
Я наткнулся на dispatchEvent , и это решило его!

... Если кто-то найдет эту страницу в поисках ответа на эту, казалось бы, невозможную задачу в будущем, тогда он получит ответ прямо сейчас ! Пожалуйста, прости меня, если у меня нет правильной терминологии в ссылках на то, что я сделал. Вот так...

В моем external .swf мне нужно было установить событие прослушивателя для моих кнопок (которые находятся в моем внешнем SWF). Затем включите dispatchEvent в функцию для моих кнопок. Я включил «true» в аргументы для «всплытия» события обратно на основную временную шкалу. Он пример одной из моих кнопок.

mc_main_menu.btn_entertainment.addEventListener(MouseEvent.CLICK, button4);
function button4(event:MouseEvent) {  
dispatchEvent(new Event("btn4", true));  
}

Хорошо, но это только половина кода, чтобы это произошло. Итак, теперь в моем main swf , в который я загружаю внешние swfs, мне нужно было сделать несколько вещей:
1). Выгрузите текущий SWF из памяти, чтобы он перестал воспроизводить звуки
2). Установите слушателя для dispatchEvent в моем внешнем SWF (который будет пузыриться)
3). Загрузите новый внешний SWF

loader.addEventListener("btn4", page4Swf)
function page4Swf(event:Event):void{<p>
Loader(event.currentTarget).unloadAndStop();  //completely removes the swf from memory  
var SWFRequest:URLRequest = new URLRequest("page4.swf");  
loader.x = Xpos;  
loader.y = Ypos;  //these are to offset the loaded swf, if you wish  
addChild(loader);  
}

И вот оно! Честно говоря, я не думал, что буду публиковать здесь ответ, ЧТО быстро!

...