Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何处理Flex中的竞争效应?_Apache Flex_Effects - Fatal编程技术网

Apache flex 如何处理Flex中的竞争效应?

Apache flex 如何处理Flex中的竞争效应?,apache-flex,effects,Apache Flex,Effects,我是Flex的初学者,在处理特效方面最困难 现在我正在处理在处理竞争效应时所面临的问题 请看下面的代码。我基本上创建了一个简短的可复制测试样本,它显示了我面临的问题: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="400"> <mx:S

我是Flex的初学者,在处理特效方面最困难

现在我正在处理在处理竞争效应时所面临的问题

请看下面的代码。我基本上创建了一个简短的可复制测试样本,它显示了我面临的问题:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="400">

    <mx:Script>
        <![CDATA[
            private function showmenu():void
            {Menu.visible= true;
            }
            private function hidemenu():void
            {Menu.visible= false;
            }
        ]]>
    </mx:Script>

    <mx:WipeDown id="wipedown" duration="900"/>
    <mx:WipeUp  id="wipeUp" duration="900" />



<mx:Canvas id="main"  width="400" height="400"
    rollOver="showmenu();" rollOut="hidemenu();">
    <mx:Button label="Show Menu" 
         x="100" y="20">
        </mx:Button>

        <mx:Canvas id="Menu" visible="false"
        width="100" height="200"
        backgroundColor="#B8B8B8" x="96" y="35"
        showEffect="{wipedown}" hideEffect="{wipeUp}">

        </mx:Canvas>

</mx:Canvas>    



</mx:Application>

这基本上显示了一个按钮,当你在按钮上滚动时,另一个画布将显示,这将是一种菜单。当您推出时,菜单将消失

菜单也有一些效果,如果你试图在另一个效果结束之前启动一个效果,它会进入一个无限循环

要重现我所说的内容,请滚动按钮,然后滚动,然后再次快速滚动。您将看到菜单效果卡在一个循环中


我该如何处理这个问题?

我无法重现您的问题。无论我在哪里/何时移入或移出鼠标,它都不会进入循环。请注意,我使用的是Flex3.2。也许这取决于你使用的是哪个版本


顺便说一句,您的代码与您的描述不完全匹配:您在画布上有滚动和滚动事件,其中也包含您正在显示和隐藏的画布。只是一个猜测,但我可以想象,效果本身实际上会导致鼠标在画布上或不在画布上,触发滚动/卷展,然后再次导致鼠标移入/移出。。。这就是您正在经历的无限循环吗?

如果您在播放不应该播放的事件时遇到问题,只需将EffectEvent.EFFECT\u启动侦听器添加到您的事件中,并使用它停止任何播放事件。e、 g,

function _handleEffectStart(e:EffectEvent):void {
  if(e.target == wipedown) {
    wipeup.stop();
  } else {
    wipedown.stop();
  }
}

或者类似的东西。

顺便说一句,少就是多。从设计的角度来看,你能做到并不意味着你应该做到。花式效果很好,可以作为区分产品的一种方式,但如果它们太分散注意力,或者像在本例中那样成为问题,最好多关注功能,少关注精彩。我最终做了一些类似于您建议的事情。