为什么roll_out事件会在此代码中触发?

时间:2010-05-24 12:44:19

标签: flex

我做了这个简短的例子来说明我遇到的一些问题。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Canvas
        id="buttonCanvas"
        x="100" y="100" opaqueBackground="#000000" width="80%" height="300"
        creationComplete="init(event)">
        <mx:Button x="5" y="5"/>
        <mx:Button x="5" y="50"/>

    </mx:Canvas>


    <mx:Script>
    <![CDATA[
        private function init(event:Event):void{
            buttonCanvas.addEventListener(MouseEvent.ROLL_OUT, function(event:Event):void{
                buttonCanvas.opaqueBackground=(buttonCanvas.opaqueBackground==0)? 0x666666:0;
            });         
        }    
    ]]>
    </mx:Script>
</mx:Application>

我不明白以下内容:

  1. 为什么百分比或绝对尺寸不会影响画布尺寸?
  2. 为什么当鼠标离开按钮时(即使它仍在画布内),roll_out事件会触发。
  3. 我很想解决这个问题。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

也许您想使用backgroundColor样式而不是opaqueBackground属性?

答案 1 :(得分:0)

只是看了一下,我可以告诉你opaqueBackground的默认值是 null ,而不是 0

答案 2 :(得分:0)

检查this帖子!它说明了MouseOut和Roll Out之间的区别。希望这会有所帮助。