Просмотр полной версии : как загруженному swf передать событие ?
Возникла проблема, загруженной свф'ке мне необходимо передать событие из главной
пример:
главная:
class main_movie {
public function main_movie() {
AsBroadcaster.initialize(this);
// загружаеться второй мувик
broadcastMessage("onMyEvent"); // <-- это сообщение должно передаться загруженному мувику
}
static function main() {
var n = new main_movie();
}
}
загружаемая:
class lswf {
function onMyEvent() { // << -- вызываеться при получении сообщения
// код
}
}
P.S. если что юзаю mtasc. сильно ногами не пинайте, я недавно изучаю флэш :victory:
alexcon314
13.11.2007, 22:00
попробуйте передавать событие через LocalConnection
Большое спасибо, это действительно практически то что я искал. Но возникает вопрос о скорости, подходит ли это для игры ? Тоесть у меня в планах было реализовать загрузку с сервера обьектов(по swf на обьект), которые потом бы взаимодействовали друг с другом по средствам таких сообщений.
alexcon314
14.11.2007, 09:12
насколько я знаю, проблемо которых вы говорите, возникать не должно.
terbooter
14.11.2007, 13:59
Когда вы инициализируете бродкастер нужно еще и листенера ему добавить
и все будет работать
Ладно с LocalConnection я разобрался, всё работает, то вот хотелось бы понять что с AsBroadcaster.
Вот код простого примерчика написанного мной, в нём ничего неработает :wacko:
Test.as
import listener;
class Test {
function Test() {
AsBroadcaster.initialize(this);
_root.createEmptyMovieClip("m", 1);
var loader:MovieClipLoader = new MovieClipLoader();
var l:listener = new listener(this);
loader.addListener(l);
loader.loadClip("o.swf", _root.m);
}
static function main() {
var t:Test = new Test();
}
}
listener.as
class listener {
private var _p:Object;
function listener(p:Object) {
_p = p;
}
public function onMyEvent() { // <-- этот удаёться вызвать
trace("listener - onMyEvent");
}
public function onLoadStart(target:MovieClip) {
trace("loading");
}
public function onLoadComplete(target:MovieClip) {
trace("movie loaded");
_p.addListener(this);
_p.addListener(target);
_p.broadcastMessage("onMyEvent");
}
}
o.as
class o {
public function onMyEvent() { // <-- с этим ничего неполучаеться
trace("o - onMyEvent");
}
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.