![]() |
|
||||||||||
|
|||||
|
strange mood
|
Нарисовал квадрат, сконвертил в мувик. Сделал класс-пустышку. Мувик связал с классом. Хочу сделать из него компонент. Right-click -> component definition. Прописываю тот же класс и определяю параметры. Жму ок. Выделяю инстанс - в параметрах пусто. Лезу снова в определение компонента - там тоже в параметрах пусто, но все галки которые я ставил и имя класса остаются.
Что я делаю не так?
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
В CS3 (as3) компоненты делаются двумя способами:
1. SWC-компоненты - делаются точно так же как и в as2, без изменений. 2. Fla-компоненты: http://www.flashbrighton.org/wordpress/?p=31 |
|
|||||
|
strange mood
|
Хороший тутор. Но хотелось бы сделать компонент, не наследуясь от UIComponent. Есть что-нибудь на эту тему? В мануалах адоба этот момент так вскользь описан, мол можно, но как - не сказано...
И где можно поподробнее почитать про swc?
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
Всё правильно, никакой особой разницы между SWC и FLA AS3-компонентами нет, просто элементы первого нельзя будет редактировать из среды. Параметры не появятся в панели, пока их названия не будут совпадать с метатэгами inspectable в классе компонента:
[Inspectable(defaultValue="")]
public function set content(s:String) {
_content = s;
}
public function get content():String {
_content;
}
Поставьте себе обновление 9.0.3 для Flash CS3 (бесплатно) - там полно информации про создание компонент.
__________________
Верить никому нельзя. Мне - можно. :) |
|
|||||
|
strange mood
|
Спасибо, продираемся дальше
Непонятки возникли по поводу дефолтных значений параметров. Обратимся к коду:package{
import flash.display.MovieClip;
import flash.events.Event;
public class Emitter extends MovieClip{
private var _test:String;
///////////////////////////////////////////////////////////////////////////////////////
[Inspectable(name="Test", type="String", defaultValue="My default value")]
public function get test():String{
trace('get');
return this._test;
}//get test
public function set test(value:String){
trace('set');
return this._test=value;
}//get test
///////////////////////////////////////////////////////////////////////////////////////
//constructor
public function Emitter(){
trace(this._test); //Всегда null
this.addEventListener(Event.ENTER_FRAME, this.hookAccessibility, false, 0, true);
}//constructor
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
private function hookAccessibility(e:Event){
this.removeEventListener(Event.ENTER_FRAME, this.hookAccessibility);
this.init();
}//hookAccessibility
///////////////////////////////////////////////////////////////////////////////////////
private function init():void{
trace(this._test);
}//init
///////////////////////////////////////////////////////////////////////////////////////
}//end of Emitter
}//package
Если же на панели параметров задать значение, отличающееся от дефолтного, то всё норм. Как сделать чтобы нормально подставлялось значение по умолчанию? Дублировать его в теге и ещё где-то в конструкторе не предлагать. По поводу наследования от спрайта: какие ещё методы нужно реализовать и где вообще можно найти их список или интерфейс который должен реализовывать компонент?
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
стервочка (я мужик)
|
|
|
|||||
|
strange mood
|
The class should extend fl.core.UIComponent
The class should extend fl.core.UIComponent The class should extend fl.core.UIComponent Это в лучшем случае. Я создал тему не потому, что мне лень гуглить, а потому что уже неделю не могу найти ничего вразумительного.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
стервочка (я мужик)
|
второй линк в в том месте где Вы умеете гуглить ведёт на мануал от адобы, к которому прилагаются 9 здоровенных ПДФников, в которых всё подробно расписано. чё ещё нужно?
|
|
|||||
|
стервочка (я мужик)
|
перечитал. и что я должен понять? если вы хотите, что бы я сказал Вам, что если нажать правой кнопкой на мувиклип, там есть пункт "Component Definition", то так и скажите. я лично не понимаю, в чём проблема сделать свой компонент. в хелпе всё подробно описано.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 18:47. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| компонент |
|
|