Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Обратиться к функции из листенера (http://www.flasher.ru/forum/showthread.php?t=96452)

Oreanor 30.05.2007 16:41

Обратиться к функции из листенера
 
на сцене (на некотором уровне вложенности) лежит символ colorPicker, внутри которого такой код:
Код:

var myListener:Object = new Object();
myListener.onPickColor = function(picked_color:String) {
        trace(this);
}

AsBroadcaster.initialize(bgcol);
bgcol.addListener(myListener);

мне надо вызвать функцию, которая располагается на одном и том же уровне, что и этот же символ colorPicker.
то есть для кода внутри colorPicker'a она получается "родительская".
но this внутри myListener.onPickColor ссылается ессно на myListener. и this._parent ессно не понимает.
как тут по-хитрому сделать, подскажите, плз?

etc 30.05.2007 16:45

Эх, это все вредные последствия примеров в хелпе.
Код:

onPickColor = function(picked_color) {
  trace(this)
}
AsBroadcaster.initialize(bgcol);
bgcol.addListener(this);


Oreanor 30.05.2007 17:01

спасибо и респект!

вот уж не думал, что в хелпе плохое посоветуют

etc 30.05.2007 17:08

Нет, ничего плохого там нет, просто эти «листенеры» сбивают с толку людей. В результате они думают, что «листенер» — это какой-то специфический объект и его надо всегда создавать для подобных конструкций.

Oreanor 30.05.2007 17:23

во-во, я так и думал )
но какая же жутко неудобная для использования конструкция получается!

без объекта гораздо юзабельнее


Часовой пояс GMT +4, время: 14:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.