Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Таг Inspectable в AS3. (http://www.flasher.ru/forum/showthread.php?t=99714)

Torero 11.08.2007 18:18

Таг Inspectable в AS3.
 
Подскажите пожалуйста, почему при запуске кода
Код:

package classes {
        import fl.core.UIComponent;
        public class C extends UIComponent{
                [Inspectable(name="param1", defaultValue="Word")]
                var sel:String;

                public function C() {
                        trace("param1="+sel);
                }
        }
}

я получаю param1=null?
В ComponentInspector-е, как и должен был, появился параметр param1, его значение, как и должно быть, "Word"
--------------------------------------

Если этот таг в AS3 не поддерживается(хелп на сей счет безмолвствует), то почему оболочка нормально его воспринимает и как организовать передачу параметров экземпляру класса?
--------------------------------------

млин. 4 часа гугл мучал - так и не нашел примеров.

Кянан® 11.08.2007 23:43

так и должна быт :D

Torero 11.08.2007 23:52

Вложений: 1
помоги, плз, если в курсе - я реально запарился.
По всему выходит, что использовать Inspectable можно, но ни 1 примера в as3 так и не нашел.

Кянан® 12.08.2007 00:24

у меня тоже не получаетсяь :)

Usnul 12.08.2007 00:35

ты указал тип переменной, но это не прибавляет ни убавляет значения (содержания) этой пустой (null) переменной. Читать азы ООП или биться головой об стену.

Torero 12.08.2007 02:58

Стен, уже в процессе изучения AS2, целых не осталось...:)
Указал я не только тип, но и defaultValue(если ты не заметил). В AS2 это на ура работало, про какие-то изменения при переходе к AS3 ничего нигде не нахожу - вот и интересуюсь настойчиво..

Nirth 12.08.2007 10:50

Уснул тут не о том речь.

Автор я так понимаю вы делаете ActionScript Project а не Flex? если я прав то тэг [Inspectable] как и [Bindable] работают только при компиляции Flex проектов(или swc библиотек для проектов) где компилятор сам вручную подставляет все что надо, при компиляции ActionScript проектов ничего подобного не происходит.

Torero 12.08.2007 15:02

2 Nirth, 2_etc: Я все понял. Спасибо большое.

-------------------------------------------
Цитата:

Сообщение от Nirth
тэг [Inspectable] как и [Bindable] работают только при компиляции Flex проектов(или swc библиотек для проектов)

2 Nirth Понять-понял, а сделать все равно не получается.:(
- Компилирую мувик в SWC
- Захожу в Components
- Выкладываю скомпилированный мувик на сцену
1) компонент, как и раньше, игнорит defaultValue, хотя в CompomemtInspector-е оно прописывается верно
2) При попытке изменения параметра в ComponentInspectror-е, получаю ошибку:
ReferenceError: Error #1056: Cannot create property s on C.
at TestC_fla::MainTimeline/TestC_fla::__setProp___id0__Scene1_Layer1_1()
at TestC_fla::MainTimeline$iinit()

7thsky™ 12.08.2007 18:31

Ну во первых [Inspectable] [Event] [Style] прекрассно работают и в компонентах флэша CS3, но вот переменная перед которой ты объявляешь метатаг [Inspectable] должна быть хотя бы public для начала. тут например подобная проблема

во вторых по ошибке "ReferenceError: Error #1056: Cannot create property s on C" - это явно не тот код что ты привел в начале.

Код в студии короче.

Torero 12.08.2007 19:05

Код в прикрепленном ZIP файле.

Вот он:
Код:

package {
        import fl.core.UIComponent;
        public class C extends UIComponent{
                [Inspectable(name="param1", defaultValue=true)]
                public var s:Boolean;
                public var n:Boolean;
                public function C() {
                        trace("Имеем: "+ s+"; "+n); //Выдает "Имеем: false; false"
                        trace("Нужно: true; false")
                }
    }
}

После того, как добавил "Public", ошибка выскакивать перестала, однако изменяемый параметр экземпляром на сцене все-равно не воспринимается.

--------------------------------
2 7thsky™: За ссылку спасибо - на эту не натыкался. Там, в принципе, то-же самое, что Nirth ответил...


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

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