|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2012
Сообщений: 28
|
как передать значение в функцию прослушивателя
Здравствуйте
Подскажите пожалуйста как передать значение в функцию прослушивателя. Тоесть я назначаю прослушиватель потом функция прослушивателя как мне в функцию передать еще одно значение например вот так Просто как в AS2 не работает |
|
|||||
[+4 24.04.13]
[+4 20.04.13] Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
|
package { import flash.utils.Timer; public class ttimer extends Timer { private var tval:Number = 0; public function ttimer(delay:Number, count:int = 0, val:Number = 0) : void { super(delay, count); tval = val; } public function get value() : Number { return tval; } } } |
|
|||||
[+1 25.10.13]
[+4 18.03.14] |
1.Классы принято писать с Большой буквы
2. Принято наследоваться от Event и передавать объект (Ttimer)в качестве параметра расширенного класса |
|
|||||
Цитата:
Чтобы иметь возможность передать туда что-то свое, нужно будет: Во первых расширить класс Timer и использовать вместо родного таймера свой. И во-вторых в этом классе по тику посылать собственное событие, как написал Babylon Но скорее всего, здесь можно обойтись без это. Зачем вам нужно передавать туда какой-то параметр, и какой именно? |
|
|||||
[+1 25.10.13]
[+4 18.03.14] |
Не надо извращать мою мысль . Я предлагал расширить Event, но не предлагал посылать собственных событий.TimerEvent вполне себе событие.
Добавлено через 1 минуту И передать значение в функцию конечно можно, но это хак. Добавлено через 4 минуты Как то так. Класс (type : String, timer:Ttimer, bubbles : Boolean = false, cancelable : Boolean = false) |
|
|||||
Banned
[+1 30.08.14]
[+1 26.02.14] Регистрация: Apr 2012
Сообщений: 162
|
А у вас тут весело.Не нравиться скриптовый язык-перепишем. Удачи вам ребят! Особенно в переписывании.
P.S.По теме: Функция прослушивателя принимает только переменные и методы события. |
|
|||||
[+1 25.10.13]
[+4 18.03.14] |
Непонятна ваша веселая ирония. Наследование вполне стандартный прием в таких случаях.
|
|
|||||
Регистрация: Jun 2012
Сообщений: 28
|
Дело в том что я хотел проработать массив таких вот таймеров в которых прослущиватель один и соответственно функция тоже одна. Но задача в том как я узнаю какой по номеру таймер сработал и потому хотел бы передать это значение в функцию. Если я правильно понял класс который предложил chamele0n и Babylon то мне при каждой итерполиции нужно будет переустанавливать таймер. А это немного неудобно.
Я, действительно думал, что для такого решения есть чо то по проще по типу as2, В принципе я решил обойти эту необходимость и реализовать все по другому. А за способ спасибо пригодится на следующий раз |
|
|||||
Если отслеживать нужно только номер, то 100% сработает вариант с расширением класса Timer
package { import flash.utils.Timer; public class MyLittleTimer extends Timer { public var number:Number; //паблик для простоты, я в курсе что лучше использовать private с set и get и т.д. и т.п. public function MyLittleTimer(delay:Number, repeatCount:int=0) { super(delay, repeatCount); } } } myLittleTimer1:MyLittleTimer = new MyLittleTimer(1000, 1); myLittleTimer1.number = 1; myLittleTimer1.addEventListener(TimerEvent.TIMER,func_timer); myLittleTimer2:MyLittleTimer = new MyLittleTimer(1320, 1); myLittleTimer2.number = 2; myLittleTimer2.addEventListener(TimerEvent.TIMER,func_timer); Можно сделать свой таймер с доп параметром в конструкторе Последний раз редактировалось KumoKairo; 02.07.2013 в 13:12. |
|
|||||
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
А почему нельзя сделать так?
|
Часовой пояс GMT +4, время: 18:54. |
|
« Предыдущая тема | Следующая тема » |
|
|