![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Если вопрос частый, то ткните носом, но только в логически завершенную ветку.
Руководство курил, нашел два метода call и apply, но что-то так запутанно, что непонятно. Если несложно киньте пару строк кода, пойму с полпинка. |
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Спасибо! Очень помогло! Нифига, конечно, не нашел при чем здесь functionScope, зато таки нашел ответ на зарубежном форуме. Вот это работает:
|
|
|||||
|
жгунчик
![]() functionScope - объект, где есть ссылка на функцию "functionName" - имя функции итого: this - functionScope functionName - "functionName" Но, конечно, на иностранном форуме понятнее %) Короче, если следовать ответу wvxvw, то получается так: this[functionName](params); |
|
|||||
|
Регистрация: May 2013
Сообщений: 18
|
А что если нужно вписывать такую функцию в прослушиватель событий?
Ошибка: ArgumentError: Error #1063: Argument count mismatch on src.Core.Events::EventsFunctionsManager/globalClock_ET(). Expected 1, got 0. |
|
|||||
|
Цитата:
Скажите, что вам нужно добиться, и узнаете гораздо лучший вариант решения |
|
|||||
|
Регистрация: May 2013
Сообщений: 18
|
1. Константа пользовательская как и сам класс, так что она там есть
2. Почему бессмысленная? Если я заранее не знаю имя приёмника событий! |
|
|||||
|
Потому что приемник должен быть один
|
|
|||||
|
Регистрация: May 2013
Сообщений: 18
|
Ты предлагаешь на всю программу 1 приёмник использовать? Я не знаю заранее приёмник какого класса мне регистрировать для получения конкретного события. Также хочется узнать как его регистрировать через строку.
|
|
|||||
|
Цитата:
Есть "конкретное" событие, значит и слушатель нужно регистрировать на прослушку именно этого "конкретного" события. Цитата:
Цитата:
package { import flash.display.Sprite; import flash.events.MouseEvent; public class TestClass extends Sprite { private var _eventManager:EventManager = new EventManager(); public function TestClass() { stage.addEventListener(MouseEvent.CLICK, onClick); } private function onClick(e:MouseEvent):void { _eventManager.addEventListener(MouseEvent.CLICK, _eventManager[e.type]); // регистрация с указанием строчного названия метода обработчика } } } import flash.events.EventDispatcher; internal class EventManager extends EventDispatcher { public function EventManager() { } public function click(e:Object):void { } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|