Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: События на динамически создаваемых клипах
Flash Zone Forum > Macromedia Flash > ActionScript
Basileus
Не совсем догоняю как контролировать события на мувиках, которые создаются динамически. on(evt) надо вешать на экземпляр, eventListener на каждый тоже жутко неудобно ставить...
Идеально было бы написать внутреннюю функцию, ассоциированную с мувиком, которая при реализации события осуществляла некое действие. Возможно ли это сделать?
tiHo
если я правилно понял:
Код
var s:Function = function (val:MovieClip)
{
    val.onPress = function()
    {
        // действия
    };
};
// использование:
s(clip);


а если неправильно, объясни подробнее.
Basileus
О. Спасибо. Сделал попроще. Вот так:
Код
this.onPress = function()
{
    trace("click at:" + this._name);
}

Это прямо в определение мувика сунул. И работает...
Главная проблема была в том, что у меня эти мувики цепляются в html-форматированный текст через тэги <img>, и их потом не совсем понятно как контролиоровать. Я в них информацию через название экземпляра кодирую...
tiHo
лан, я всеравно нефтемеsmile.gif рад что помог, наздоровье.
MustLive
Цитата
this.onPress = function()

Basileus, это стандартный ООП подход (использование this). Когда задётся метод, который наследуют все экземпляры класса (я уже неоднократно на форуме о подобном рассказывал).

И флеш это тоже поддерживает. В этом отношении флеш не отличается от других известных ООП языков.
Rohan
Код
this.onPress = function()

это - нестандартный ООП подход. Eclipse за такое матом кроет. Создать класс, расширить им МувиКлип и сделать override - вот стандартный ООП подход =) Т.е.
Код
private function onPress():Void {
    //action
}
wink.gif
MustLive
Rohan

Ты невнимательно читаешь: стандартный подход - использовать ключевое слово this (для решения своих проблем).

Цитата
это стандартный ООП подход (использование this)


А использование зиса в онПрессе (this.onPress) - это пример использования стандартного подхода для нестандартных решений (которые разнятся от языка к языку).

Ну а то, что Eclipse ругается - это частный случай. Флеш не ругается, что в нашем случае и было необходимо (для случая Basileus).
Basileus
Ну вообще я тоже не совсем соглашусь. Наворачивать через this функцию - не самый стандартный подход. Для меня после привычки к C++ это выглядит несколько дико...

Я просто потерял немного метод реализации события через функции типа onPress. Глядел в руководстве по нужному компоненту, а там только on(evt) и eventListener описаны были...
Русская версия IP.Board © 2001-2009 IPS, Inc.