سؤال

ومرحبا عندما أضيف عنصر جديد باستخدام أكشن أريد أن تتلاشى في بسلاسة، على سبيل المثال هذا العنصر

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

وحاولت هذه

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

ولكن ذلك لم ينجح.

وأي أفكار؟ =)

وشكرا مقدما

وسيباستيان

هل كانت مفيدة؟

المحلول

ويتم تشغيل 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>

نصائح أخرى

وتجدر الإشارة إلى أن المكتبات tweening ومن أدوبي وهذا النوع بطيئة جدا. أود أن أقترح GTween (لا يزال في مرحلة تجريبية، ولكن لم تتح لي أي مشاكل)، TweenLite / ماكس (قد يكون لها بعض القضايا الترخيص)، أو Tweener (سهلة الاستخدام، ولكن بوتيرة أبطأ بكثير من اثنين آخرين)، ووضع ألفا إلى 0 ثم يتلاشى في ل1.      انها ليست سهلة كما، ولكن توفر هذه المكتبات أداء أفضل من ذلك بكثير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top