向 Flex 自定义组件添加效果

发布于 2024-08-05 19:29:09 字数 388 浏览 3 评论 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;

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

I have a flex application and I want to add a new custom component with action script at runtime.
This works fine. I have created my custom component and added the following code:

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

But my problem is the fade in effecto is not working. I know I've declared the effect correctly because if I use it in another component (like a panel) it works fine.
Can anybody help me with this issue?
Best regards!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无风消散 2024-08-12 19:29:09

确保在 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 之一?

Ensure that you call any overridden Flex super-functions in your FreeView subclass.

Especially updateDisplayList and 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.
}

Are you overriding one of the high-level container classes (e.g. Canvas or HBox) or UIComponent?

请你别敷衍 2024-08-12 19:29:09

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

Finally I solve the problem in a different way.
Instead adding the component at run time I have added the component to the application with visible property set to false and I change it to true when I need.

拔了角的鹿 2024-08-12 19:29:09

您可以通过将效果目标设置为新元素来实现相反的效果

<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();

you can do it the other way around by setting effects target to your new element

<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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文