Добавление эффектов к пользовательскому компоненту flex
-
11-09-2019 - |
Вопрос
У меня есть гибкое приложение, и я хочу добавить новый пользовательский компонент со сценарием действия во время выполнения.Это работает нормально.Я создал свой пользовательский компонент и добавил следующий код:
var freeView:FreeView=new FreeView();
freeView.setStyle("showEffect",this.fadeIn);
freeView.setStyle("hideEffect",this.fadeOut);
freeView.visible=false;
this.addChild(freeView);
freeView.visible=true;
Но моя проблема в том, что эффект затухания не работает.Я знаю, что правильно объявил эффект, потому что, если я использую его в другом компоненте (например, панели), он работает нормально.Кто-нибудь может помочь мне с этой проблемой?С наилучшими пожеланиями!
Решение 2
Наконец-то я решаю проблему по-другому.Вместо добавления компонента во время выполнения я добавил компонент в приложение со свойством visible, установленным в false, и я меняю его на true, когда мне нужно.
Другие советы
Убедитесь, что вы вызываете любые переопределенные суперфункции Flex в вашем подклассе FreeView.
Особенно обновленный список воспроизведения и свойства фиксации:
override protected function updateDisplayList(w:Number, h:Number)
{
super.updateDisplayList(w, h);
// Your code here.
}
override protected function commitProperties()
{
super.commitProperties();
// Your code here.
}
Переопределяете ли вы один из классов контейнеров высокого уровня (напримерХолст или HBox) или UIComponent?
вы можете сделать это наоборот, установив целевые эффекты для вашего нового элемента
<mx:Fade id="showFlag" alphaFrom="0" alphaTo="1" duration="5000"/>
var flag:Image = new Image;
flag.source = flagSource;
something.addElement(flag);
showFlag.target = flag;
showFlag.play();