【发布时间】:2009-12-15 06:13:34
【问题描述】:
我想在使用 removeChld() 函数删除 GridRow 时为其设置淡入淡出效果
请告诉我解决方案...
【问题讨论】:
标签: apache-flex
我想在使用 removeChld() 函数删除 GridRow 时为其设置淡入淡出效果
请告诉我解决方案...
【问题讨论】:
标签: apache-flex
你可以这样做:
<?xml version="1.0" encoding="utf-8"?>
<mx:Grid xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import flash.display.DisplayObject;
import mx.containers.GridRow;
import mx.effects.Effect;
import mx.effects.Fade;
import mx.events.EffectEvent;
override public function removeChild(child:DisplayObject):DisplayObject {
if(child is GridRow) {
var fade:Fade = new Fade;
fade.alphaFrom = 1;
fade.alphaTo = 0;
fade.addEventListener(EffectEvent.EFFECT_END, fadeEndHandler);
fade.play([child]);
} else {
super.removeChild(child);
}
return child;
}
private function fadeEndHandler(e:EffectEvent):void {
super.removeChild(GridRow(e.effectInstance.target));
}
]]>
</mx:Script>
</mx:Grid>
将此作为新的 MXML 组件,如 FadingGrid,并正常使用。但是,现在 removeChildAt 没有被覆盖,因此使用它不会产生淡入淡出效果。
【讨论】: