Просмотр полной версии : asBroadcaster, eventDispatcher
полазил по форуму, но вразумительного примера их использования так и не нашел. грубо говоря клип - меняет свое положение без какой нибудь посторонней помощи(т.е. без вмешательства пользователя) надо отловить изменение координаты клипа без использования onEnterFrame или setInterval.
http://www.google.com/search?client=opera&rls=ru&q=EventDispatcher+site:Flasher.ru&sourceid=opera&ie=utf-8&oe=utf-8
Спасибо поиском я и сам умею пользоваться..
единственное что смог найти - это следующий код http://flasher.ru/forum/showthread.php?t=65962
terbooter
06.11.2007, 06:47
В любом случае вам придется вещать нужное событие "вручную", то есть проверять выполняется ли условие и если выполняется, то сказать всем слушателям о наступлении события.
А чтобы проверить выполнено ли условию придется вызывать периодическую проверку.
...
onEnterFrame = function ()
{
if (mc.initx != mc._x)
{
someObject.broadcastMessage("onMove")
}
};
...
var o:Object = {};
var _mc:MovieClip = _root.attachMovie("myLibMovie","myMovie",0);
AsBroadcaster.initialize(o);
o.addProperty("x",
function():Number{return this.__x},
function(n:Number){this.__x=n;_root.myMovie._x=n;this["broadcastMessage"]("xMove",this.__x);});
var l:Object = {};
l.xMove = function(n:Number):Void {
//Using broadcaster
trace("x set to: "+n);
}
o["addListener"](l);
o.watch("x",xWatcher);
function xWatcher(prop,oval,nval){
//Using object's predefined methods
trace("I'm watching u, u moved to: "+nval);
return nval;
}
o.x = 50;
Можно и без ентерфрейма =)
я этот вариант уже рассматривал, но это немного не то, тк событие срабатывает только тогда когда координата задается явно
o.x = 50;
то есть при движении мне все равно придется вызывать онЕнтерФрейм,
судя по всему в данной ситуации листенеры мне не помогут..
Ну, дык, надо так построить, чтобы координата всегда задавалась только таким способом. Ну, или если не хочется, тогда да, только проверять все время, других способов нет...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.