![]() |
|
||||||||||
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
Я не уверен (не работал с компонентами флэша, все флекс, да флекс...) но я бы попытался сначала бы:
* прописать тип [Inspectable(name="param1", type="Boolean" defaultValue="true")] * и сделать нормальное свойство через getter | setter не уверен что поможет |
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Пробовал - "по нулям".. Не знаю что у того парня на буржуйском форуме заработало, но у меня его код ведет себя так-же как и мой собственный.. то есть никак.
![]() *Могу я во флексе перевести as2 компоненты на as3 и, после этого использовать их для работы в cs3? (иными словами: дружат ли flex и cs3?) |
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Ладно. Пока на работу с XML все перестрою.. Благо не слишком много перестраивать.. Всем большое спасибо.
|
|
|||||
|
Регистрация: May 2010
Сообщений: 43
|
Вообщем возможно зря подымаю старую тему, но сам боролся с проблемой что и у автора: не присваивались значения заданные в component parametrs.
Параметр задается через тег Inspectable и следующий за ним переменой или set функции. Пример: Если наследовать от UIComponent который в свою очередь расширяет Sprite, то все хорошо. Чтобы напрямую расширять Sprite, например и получать параметры заданный через Flash CS, надо повесить слушатель события stage.addEventListener(Event.ADDED,listener_function); и когда private function listener_function(e:Event){ if(getQualifiedClassName(e.target)=="test_fla::MainTimeline"){ trace("tlColor="+tlColor); } } Еще как вариант можно повесить на ENTER_FRAME и как только переменная наша начнет существовать, т.е. по логике при первом срабатывании ENTER_FRAME, то удаляем слушателя и дальше действуем в рамках нужд создаваемого компонента. В UIComponent в некоторый момент времени срабатывает Event.RENDER у stage видно оно всплывает при проверке стиля или иная какая радость, но попытавшись отработать это событие у себя я ничего не добился, сработала на ENTER_FRAME ну я еще взял и поэксперементировал и нашел Event.ADDED у Stage. А у автора пробема решилась бы, если бы он отрабатывал бы изменение параметра в методе draw() или повесил бы обработчик на stage.addEventListener(Event.Render,function(e:Event){}); package classes { import fl.core.UIComponent; public class C extends UIComponent{ private _sel:String=""; public function C() { super(); } [Inspectable(name="param1", defaultValue="Word")] public function set sel(s:String):void{ _sel=s; this.invalidate(); } public function get sel():String{ return _sel; } override protected function draw():void{ // Отрисовка изменений } } } |
|
|||||
|
Modus ponens
|
render не случается сам по себе, его надо форсировать вызвав, например, stage.invalidate().
У меня просто нету Flash CS, но как-то все равно не понятно в чем именно проблема... Неужели сеттер не вызовется, когда свойству с [Inspectable] назначат новое значение? Смысл этой метадаты в том, чтобы программа, которая отображает компоненты в каком-нибудь своем визуальном редакторе знала бы как предложить пользователю способ назначить этим свойствам значения. Собственно и все... Т.е. если у вас есть кнопка, то вы можете создать ей inspectable текст, и в каких-то программах (на самом деле только во Флеше самом, в Флеш Билдере была такая штука, но от нее отказались, в Идее, на сколько знаю - не допилили.) будет создан соответствующий компонент для задания текста. Сказать по правде - люди очень по-разному к этому относятся, есть такие, кому это помогает. Я не пользовался никогда, и смысла особого не видел...
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: May 2010
Сообщений: 43
|
Да, сеттер вызывается, у меня попутно ошибка вылетала и не получалось, а автор set'ом и не пользовался как я понял в этом и была его ошибка, пытался получить свойство прямо из конструктора.
А нужно это для того, чтобы сбацать эффект, которым надо пользоваться дизайнеру. Смысл компонента таков: берется фигура и она заполняется мелкими звездами, которые анимированы и масштабируются, меняются кое-какие параметры для лучшего заполнения фигуры элементами, поэтому и решил сделать как компонент. |
|
|||||
|
сорри, ошибся
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|