Форум 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)
-   -   ComboBox, не слушается событие (http://www.flasher.ru/forum/showthread.php?t=98220)

$mival 09.07.2007 14:17

ComboBox, не слушается событие
 
Почему не работает сей код?: (учитывая, что ссылка на ComboBox в переменной "s" правильная) (AS2)

Код:

import mx.controls.ComboBox;
import mx.events.EventDispatcher;

class mainAd.ChRazdel extends MovieClip
{
       
        private var s:ComboBox;
       
        public function ChRazdel()
        {
                s = this["s"];
                init();
        }
       
        private function init()
        {
                var cbListener:Object = new Object();
                cbListener.change = function(event_obj:Object) {
                        trace("Value changed to: "+event_obj.target.selectedItem.label);
                };
                s.addEventListener("change", cbListener);
        }
}


etc 09.07.2007 14:20

Зачем этот мусорный listener?
Зачем строка s = this["s"]?

$mival 09.07.2007 14:53

всё что в init() - пример из хелпа.
s = this["s"]; ...
по задумке this - это клип, в который вложен Комбобокс, а s - это ссылка на сам бокс.

etc 09.07.2007 14:59

Эта строка просто не нужна.
Используй onLoad, потому как компонент не успевает проинициализироваться.

$mival 09.07.2007 16:01

точно не нужна ))
а у бокса нет события onLoad или подобного

etc 09.07.2007 16:04

А я про ComboBox говорю. Надо описать метод onLoad в классе и там уже подписываться на события.

$mival 09.07.2007 16:08

можно хотя бы образно код? я не совсем понимаю о чем речь.
то есть нужно создать Object - обработчик события onLoad и прогнать через Диспатчер?

типа того:

Код:

var lis:Object = new Object();
var ths:Object = this;
lis.onLoad = function(event_obj:Object) {
        ths.init();
};
ss.addEventListener("onLoad", lis);


etc 09.07.2007 16:29

Просто переименуй init в onLoad. Только не надо его вызывать в конструкторе, оно само вызовется, когда нужно.

$mival 09.07.2007 16:42

хорошо. всё работает.


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

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