تتلاشى في عنصر واضاف مع أكشن
-
21-08-2019 - |
سؤال
ومرحبا عندما أضيف عنصر جديد باستخدام أكشن أريد أن تتلاشى في بسلاسة، على سبيل المثال هذا العنصر
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. انها ليست سهلة كما، ولكن توفر هذه المكتبات أداء أفضل من ذلك بكثير.