появление добавленного компонента с помощью Actionscript
-
21-08-2019 - |
Вопрос
Привет, когда я добавляю новый компонент с помощью 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);
но это не сработало.
Любые идеи?"="
заранее спасибо
Себастьян
Решение
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>
Другие советы
Следует отметить, что библиотеки анимации Adobe и тому подобное работают очень медленно.Я бы предложил GTween (все еще в бета-версии, но у меня не было никаких проблем), TweenLite/Max (могут возникнуть проблемы с лицензированием) или Tweener (простой в использовании, но гораздо медленнее, чем два других), установив альфу на 0. а затем постепенно исчезает до 1.Это не так просто, но эти библиотеки обеспечивают гораздо лучшую производительность.