Добавление эффектов к гибкому пользовательскому компоненту - PullRequest
0 голосов
/ 19 сентября 2009

У меня есть приложение flex, и я хочу добавить новый пользовательский компонент со сценарием действия во время выполнения. Это отлично работает. Я создал свой пользовательский компонент и добавил следующий код:

var freeView:FreeView=new FreeView();
freeView.setStyle("showEffect",this.fadeIn);
freeView.setStyle("hideEffect",this.fadeOut);
freeView.visible=false;
this.addChild(freeView);
freeView.visible=true;

Но моя проблема в том, что эффект затухания не работает. Я знаю, что правильно объявил эффект, потому что, если я использую его в другом компоненте (например, на панели), он работает нормально. Кто-нибудь может мне помочь с этим вопросом? С наилучшими пожеланиями!

Ответы [ 3 ]

0 голосов
/ 24 сентября 2009

Наконец я решаю проблему другим способом. Вместо этого добавляя компонент во время выполнения, я добавил компонент в приложение с видимым свойством, установленным в false, и меняю его на true, когда мне нужно.

0 голосов
/ 04 апреля 2014

вы можете сделать это наоборот, установив цель эффектов для вашего нового элемента

<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();
0 голосов
/ 21 сентября 2009

Убедитесь, что вы вызываете любые переопределенные суперфункции Flex в своем подклассе FreeView.

Особенности updateDisplayList и commitProperties:

override protected function updateDisplayList(w:Number, h:Number)
{
    super.updateDisplayList(w, h);

    // Your code here.
}


override protected function commitProperties()
{
    super.commitProperties();

    // Your code here.
}

Вы переопределяете один из классов контейнеров высокого уровня (например, Canvas или HBox) или UIComponent?

...