|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
|
Как передать параметр в фунцию, вызванную addEventListener'ом?
Нужно, чтобы в каждом фрейме трейсился заданный элемент массива. Как передать в функцию traceNumEnterFrame() параметр?
package { import flash.display.MovieClip; import flash.events.*; public class arrayCheck extends MovieClip { var myArray:Array; public function arrayCheck() { myArray = new Array(1,2,3,4,5,6,7,8,9,10); var myVar:uint = 4; addEventListener(Event.ENTER_FRAME, traceNumEnterFrame); } public function traceNumEnterFrame(event:Event) { trace(myArray[myVar]);//1120: Access of undefined property myVar. } } } |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Ну сделайте myVar полем класса.
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
package { import flash.display.MovieClip; import flash.events.*; public class arrayCheck extends MovieClip { private var myArray:Array; private var myVar:uint; public function arrayCheck() { myArray = new Array(1,2,3,4,5,6,7,8,9,10); myVar = 4; addEventListener(Event.ENTER_FRAME, traceNumEnterFrame); } private function traceNumEnterFrame(event:Event) { trace(myArray[myVar]); } } } Последний раз редактировалось mikhailk; 10.04.2010 в 23:43. |
|
|||||
Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
|
Существует ли возможность передать параметр, не делая myVar полем класса?
|
|
|||||
В доке от адоба есть пример по программированию будильника - там про пользовательские события достаточно много написано.
ЗЫ. к своему стыду так и не могу найти время чтоб все-таки изучить эту тему. Чувствую что придется изучать по ходу выполнения очередного проекта, когда припечет
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
gait, а что на самом деле надо-то?
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
может и так
но вообще-то, если что-то в AS3 приходится делать "через голову", то скорее всего не надо этого делать. |
|
|||||
Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
|
н-да. обнаружились глобальные пробелы в знании и понимании as3. может быть мне и нужен LOLEvent, но я почти ничего не понимаю, что там происходит (зачем создаётся public static const LOL, для чего нужна функция override, ну и много чего еще, выходящее за рамки этой темы). думал, что может быть есть простое решение (типа addEventListener(Event.ENTER_FRAME, traceNumEnterFrame(myVar)), но всё оказалось значительно сложнее ) короче, пошёл читать форум и доки, а то будет слишком много тупых вопросов. Спасибо за наводки TanaTiX (пример по программированию будильника), MrPoma (за http://www.flasher.ru/forum/showthread.php?t=136030).
Последний раз редактировалось gait; 11.04.2010 в 11:34. |
|
|||||
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
можно попробовать сделать так:
package { import flash.display.MovieClip; import flash.events.*; public class Main extends MovieClip { private var myArray:Array; public function Main() { super(); myArray = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); var myVar:uint = 4; addEventListener(Event.ENTER_FRAME, function(event:Event):void { traceNumEnterFrame(event, myVar); } ); } public function traceNumEnterFrame(event:Event, myVar:int):void { trace(myArray[myVar]); } } } |
Часовой пояс GMT +4, время: 12:44. |
|
« Предыдущая тема | Следующая тема » |
Теги |
anonimous function , вложенность |
Опции темы | |
Опции просмотра | |
|
|