0

嗨,当我使用 Actionscript 添加新组件时,我希望它平滑淡入,例如这个组件

    var df : DateField = new DateField();   
    df.text = DateField.dateToString(new Date(),stringFormat);
    df.formatString = stringFormat;

我试过这个

    var fade : Fade = new Fade();
    df.setStyle("showEffect", fade);

但这没有用。

有任何想法吗?=)

提前致谢

塞巴斯蒂安

4

2 回答 2

3

showEffect 仅在您更改组件的 .visible 属性时触发 - 您需要在某个地方触发它才能体验淡入淡出的美妙之处。

我很快就把它放在一起,所以你可以明白我的意思(还请注意我使用字符串来定义淡入淡出而不是对象 - 这样看起来总是更容易......希望它有所帮助!)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
                layout="absolute" 
                creationComplete="init()">

    <mx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
            import mx.controls.DateField;

            private function init():void{

                var df:DateField = new DateField();
                df.visible = false;
                df.setStyle("showEffect","Fade");
                this.addChild(df);
                df.addEventListener(FlexEvent.CREATION_COMPLETE,triggerFade);

            }

            private function triggerFade(event:FlexEvent):void{

                var df:DateField = event.currentTarget as DateField;    
                df.visible = true;

            }

        ]]>
    </mx:Script>
</mx:Application>
于 2009-07-02T18:01:58.177 回答
1

需要指出的是,Adobe 的补间库和排序都很慢。我建议 GTween(仍处于测试阶段,但我没有遇到任何问题)、TweenLite/Max(可能有一些许可问题)或 Tweener(易于使用,但比其他两个慢得多),将 alpha 设置为 0然后淡入 1。这并不容易,但这些库提供了更好的性能。

于 2009-07-02T22:10:25.947 回答