Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   передать в функцию через addEventListener переменные (http://www.flasher.ru/forum/showthread.php?t=107601)

dandandan 05.02.2008 15:46

передать в функцию через addEventListener переменные
 
Возник вопрос, как через функцию в addEventListener передать переменные а, b
Код:

s1.addEventListener(MouseEvent.MOUSE_DOWN, s2Listener(a,b));// пробывал так
s1.addEventListener(MouseEvent.MOUSE_DOWN,s2Listener(MouseEvent.MOUSE_DOWN,a,b));// пробывал так. В обоих случаях выдает ошибки.

               
function s1Listener(event : MouseEvent, a:Number,b:Number) : void {
      trace(a+b);
      }


d3e 05.02.2008 15:53

а зачем? какие переменные может листенер передать функции, которые нельзя получить в самой функции?
он вобщем то кроме event, ничего другого и не знает.

_Smirnoff 05.02.2008 15:54

s1.addEventListener(MouseEvent.MOUSE_DOWN,s2Listener(MouseEvent.MOUSE_DOWN,a,b));// пробывал так. В обоих случаях выдает ошибки.

ахаха...

Сделай их глобальными

d3e 05.02.2008 15:56

Цитата:

Сообщение от _Smirnoff
s1.addEventListener(MouseEvent.MOUSE_DOWN,s2Listener(MouseEvent.MOUSE_DOWN,a,b));// пробывал так. В обоих случаях выдает ошибки.

ахаха...

Сделай их глобальными

причем здесь область видимости?
вообще по субжу - имхо, никак не сделать, да и повторюсь, надобности в этом нет.

Другое дело, если у вас какое то, отличное от стандартных событие, ну так тогда и передавайте все в нем.

terbooter 05.02.2008 16:45

Копай в сторону кастомных событий
Код:

package org.softservice {
        import flash.events.Event;

        public class PerformerEvent extends Event {
               
                public var content:Object;
               
                public function PerformerEvent(type:String) {
                        this.content = new Object();
                        super(type);
                       
                }
               
        }
       
}

Код:

var currentEvent = new PerformerEvent("EventName");
currentEvent.content.myVar = "myVarValue";
dispatchEvent(currentEvent);


etc 05.02.2008 18:13

http://flasher.ru/forum/showthread.php?t=107391

terbooter 06.02.2008 09:15

Евентами передовать параматры кораздо флексебильнее.

etc 06.02.2008 10:31

Не спорю, только причем тут флекс?

И в указанной мной теме проблема в том, что кастомные события там не получиться использовать.

dandandan 06.02.2008 13:38

У меня сейчас переменные передаются как глобальные. Вот и подумал, может все-таки существует возможность их передать через функцию.
А делается следующее. Есть объект и есть 4 кнопки. При нажатии на кнопку объект начинает двигатся в том направлении, в котором через функцию передаются координаты Х,У.
Ну если нелья, то нельзя :-).

d3e 06.02.2008 17:20

у вас 4 кнопки вызывают одну функцию, но нужен разный результат для каждой кнопки?
так используйте в функции Event.currentTarget, и не надо ничего передавать.


Часовой пояс GMT +4, время: 12:06.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.