![]() |
|
||||||||||
|
|||||
|
Как можно обратиться к функции которая находится внутри другой функции?
К примеру function addAmmo():void { for(var j:uint = 0; j<maxAmmo; j++) { ammoElement_mc = new AmmoElement(); ammo_mc.addChild(ammoElement_mc); ammoElement_mc.x += 3 * j; ammoElement_mc.name = "ammoElement" + j; } } addAmmo(); function downAmmo(e:MouseEvent):void { ammoTimer.addEventListener(TimerEvent.TIMER, removeAmmo); ammoTimer.start(); stage.addEventListener(MouseEvent.MOUSE_UP, holdAmmo); function holdAmmo(e:Event):void { ammoTimer.removeEventListener(TimerEvent.TIMER, removeAmmo); } function removeAmmo(e:Event):void { if(currentElement >= 0) { ammo_mc.removeChild(ammo_mc.getChildByName("ammoElement" + currentElement)); trace("Gun Fire!"); currentElement--; } else if(currentElement < 0) { reloadTimer.addEventListener(TimerEvent.TIMER, reloadAmmo); reloadTimer.start(); stage.removeEventListener(MouseEvent.MOUSE_DOWN, downAmmo); } } function reloadAmmo(e:Event):void { trace("Sound Playing"); addAmmo(); currentElement = maxAmmo - 1; reloadTimer.removeEventListener(TimerEvent.TIMER, reloadAmmo); stage.addEventListener(MouseEvent.MOUSE_UP, holdAmmo); stage.addEventListener(MouseEvent.MOUSE_DOWN, downAmmo); } } function reloadOnDemand(e:KeyboardEvent):void { if(e.keyCode == 87) { trace(e.keyCode); } } stage.addEventListener(MouseEvent.MOUSE_DOWN, downAmmo); stage.addEventListener(KeyboardEvent.KEY_DOWN, reloadOnDemand); И ещё один вопрос, можно как то использовать одну и туже функцию при нажатии на клавиатуре и просто вызывая её из другой функции. В примере - функция ReloadAmmo, можно ли с ней так, или обязательно оборачивать её в ещё одну функцию, которая будет вызывать нужное событие? |
|
|||||
|
почему?
Добавлено через 2 минуты И ответ на второй вопрос можно? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Потому что вы не можете к ним обратиться в последствии, если события, обработчиками которых они являются, не возникнут. Ну а про отсутствие доступа вне родительской функции и говорить не приходится. Зачем вы себе положили такие огромные грабли и с удовольствием на них прыгаете, остается загадкой.
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 3
|
почитай про ООП :-)
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ни то, ни другое работать не будет.
|
|
|||||
|
ок, переделал структуру!
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|