在Flex,Air,AS3中对窗口应用效果

时间:2012-08-13 19:01:10

标签: actionscript-3 flex air window effect

我希望使用 效果为弹出窗口设置动画。

问题是效果是应用于弹出窗口的内容,而不是弹出窗口本身(包括标题栏,最小化,最大化按钮等)

在这里查看结果..

Result of the animation

我的代码非常简单且逻辑上,如果可以为窗口设置动画,它应该可以工作。

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        <![CDATA[
            import comps.MyWin;

            [Bindable]
            private var _win:MyWin;

            protected function openPopup():void
            {
                _win = new MyWin();
                _win.width = 300;
                _win.height = 300;
                _win.open();    
            }

            protected function animatepopup():void
            {
                MyEffect.play();
            }

        ]]>
    </fx:Script>


    <fx:Declarations>
        <s:Move id="MyEffect" xFrom="{_win.x}" xTo="{_win.x + 150}" target="{_win}"/>
    </fx:Declarations>

    <s:layout>
        <s:VerticalLayout/>
    </s:layout>

    <s:Button label="Open" click="openPopup()"/>

    <s:Button label="Animate" click="animatepopup()"/>

</s:WindowedApplication>

1 个答案:

答案 0 :(得分:1)

我认为您需要定位对象的NativeWindow实例,以便移动对象并调整其大小。

因此,请将_win.myProperty替换为_win.stage.nativeWindow.myProperty

<s:Move id="MyEffect" xFrom="{_win.stage.nativeWindow.x}" xTo="{_win.stage.nativeWindow.x + 150}" target="{_win.stage.nativeWindow}"/>

然后,动画将影响NativeWindow而不影响窗口的内部。