PDA

Просмотр полной версии : EventDispatcher - проблема с вызовом функции


Futs
19.07.2006, 13:58
Почитал все на эту тему на форуме, но увы т.к. я с классами ни как не разберусь, не совсем понятно, можно сказать совсем не понятно.
Прописал все в классе как Nirth писал, аттачу мувик а как поймать событие не понимаю.

etc
19.07.2006, 14:15
Какое событие?

Futs
19.07.2006, 14:23
Вообще мне хочется чтобы мувик, если он находится в вределах нужных координат говорил "я сдесь".
Но я даже не понимаю почему это (http://www.flasher.ru/forum/showthread.php?t=65535&highlight=EventDispatcher) не работет, по идее должен создаваться мувик и по клику удаляться. Или сдесь (http://www.flasher.ru/forum/showthread.php?t=65962) откуда взялась функция move. Поэтому дело не в моем событии, а в понимании сути процесса, что бы создавать свои события.

Nirth
19.07.2006, 14:39
В ActionScript 1-2-3 нету и не скоро появятся какие либо события.
Есть их эмуляция. Фактически говоря события это просто набор функций, которые вызываются из других функций.

Если ты не делаешь чего то больно крутого в комманде людей, ты прекрасно можешь обойтись без событий, они будут просто тучей лишнего кода.

Futs
19.07.2006, 14:43
Я понимаю, что это эмуляция, но как мне разобраться с моей задачей?

Nirth
19.07.2006, 14:47
По тому что ты объяснил, я не вижу причины по которой тебе нужны события.
Просто через enterFrame засекай когда мувик встанет в позицию, и вызывай нужный тебе метод

Futs
19.07.2006, 14:55
Конечно enterFrame это самый простой выход, но мувиков много, поэтому и не хочется его использовать, а почему у меня не выходит с твоими примерами, которые я привел выше?

silin
19.07.2006, 17:20
про какие примеры речь я не понял, а по ситуации
Вообще мне хочется чтобы мувик, если он находится в вределах нужных координат говорил "я сдесь"..
но мувиков много..мне нравится такой вариант - сосредоточить все в одном месте:
создаем объект, отслеживающий присутствие означенных мувиков, и вызывающий их соответсвующий метод (эмуляция события), если что:
//мувик, который будет следить
var d=this.createEmptyMovieClip("myDispatcher",this.getNextHighestDepth());
var x1=50,y1=50,x2=200,y2=200;//область слежения
//рисуем прозрачный прямоугольник
with(d) beginFill(0,0),moveTo(x1,y1),lineTo(x2,y1),lineTo(x2,y2),lineTo(x1,y2),endFill();
d.listeners=[mc1,mc2,mc3];//мувики за которыми надо следить
d.onEnterFrame=function(){
var l=this.listeners
for(var i in l) if(this.hitTest(l[i])) l[i].sayMyau();//вызываем метод, если есть хиттест
}

Futs
19.07.2006, 18:27
Спасибо, то что надо, все гениальное просто, за одно и о EventDispatcher почитал много всего