【问题标题】:How can i set hideEffect attribute to the GridRow using actionscript in flex?如何在 flex 中使用 actionscript 将 hideEffect 属性设置为 GridRow?
【发布时间】:2009-12-15 06:13:34
【问题描述】:

我想在使用 removeChld() 函数删除 GridRow 时为其设置淡入淡出效果

请告诉我解决方案...

【问题讨论】:

    标签: apache-flex


    【解决方案1】:

    你可以这样做:

    <?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 没有被覆盖,因此使用它不会产生淡入淡出效果。

    【讨论】:

    • 这看起来不错,虽然我还没有尝试过。 Tushar,我假设您有一个按钮来触发 removeChild() 函数。我将通过使用该按钮调用如图所示的淡入淡出效果并在事件侦听器 EffectEvent.EFFECT_END 上调用 removeChild() 函数来实现这一点,然后您不必覆盖任何内容。
    • 是的,你可以有一个按钮来调用 removeChild()。当然,您必须知道要删除哪一行,以便可以将行本身作为参数传递。这段代码不适用于 removeChildAt(),因为它没有被覆盖。您可以按照您描述的方式实现此效果,但是将行为包装到一个新类中可以在其他地方重用它。真正需要的是创建一个 .mxml 文件并将代码放入其中 - 覆盖可能令人生畏,但如果您想做自定义事情,它们实际上非常有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    相关资源
    最近更新 更多