PDA

Просмотр полной версии : передача локальных properties функции (addEventListener)


CrazyFlasher
11.01.2008, 21:05
в АС2 я делал так:


someObj.addEventListener(Events.LOL, Delegate.create(this, function(){
myFunc(mc)
}));
//где mc - локальный MovieClip

(кто-то, наверное, скажет, что криво, но работало всегда и никогда не вызывало проблем)

можно ли как нить передать параметр похожим образом в АС3?

Aziz Zaynutdinoff
11.01.2008, 21:46
mc — это переменная класса, насколько я вижу из кода? Если так, то в чем вопрос? все тоже самое, только без делегирования.

CrazyFlasher
11.01.2008, 21:49
нет, не класса, а локального метода...если б была класса, то вопроса не было бы :)

fljot
11.01.2008, 21:54
все необходимые данные передаются в самом объекте-событии(которое идёт аргументом в слушатель). если надо передать что-то дополнительное, то делаем кастомное событие(расширяющее обычный Event) и всё что надо укладываем в него

†‡Paladin‡†
11.01.2008, 21:55
Жуть. Во первых класса Delegate в as3 нету. Во вторых передавать параметр стандартными эвентами нельзя. Нужно создавать свои собственные и оперировать ими.

Если хочется написать обработчик эвента прямо в addEventListener, то это вполне возможно (но не факт что это кашерный способ).

myClass.addEventListener(myEvent, function handler(e:Event):void { trace("Hello World!")});

CrazyFlasher
11.01.2008, 21:57
ок, теперь встало всё ясно ;-) спасибо!

P.S. Я в курсе, что Delegate в AS3 нету. Привёл пример из AS2

etc
11.01.2008, 23:20
В AS3 делегат просто не нужен.