0

我有一个 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;

但我的问题是淡入效果不起作用。我知道我已经正确声明了效果,因为如果我在另一个组件(如面板)中使用它,它可以正常工作。有人可以帮我解决这个问题吗?最好的祝福!

4

3 回答 3

0

确保在 FreeView 子类中调用任何覆盖的 Flex 超级函数。

特别是 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 之一?

于 2009-09-21T06:37:18.467 回答
0

最后我以不同的方式解决了这个问题。相反,在运行时添加组件,我已将组件添加到应用程序中,并将可见属性设置为 false,并在需要时将其更改为 true。

于 2009-09-24T07:46:12.420 回答
0

您可以通过将效果目标设置为新元素来反其道而行之

<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();
于 2014-04-04T14:00:11.450 回答