Border容器创建通用mouseOver函数

时间:2011-12-15 08:18:14

标签: actionscript-3 flex air flash-builder

我尝试创建一个函数来更改边框容器的border属性。 为此,我为MXML上的每个边框容器创建了一个函数。

但我要编写更好的代码并执行泛型函数。

今天我的职能是:

protected function bcContact_mouseOverHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
bcContact.setStyle("borderVisible",true);
bcContact.setStyle("borderWeight",2);
bcContact.setStyle("borderColor",'#000099');
}

bcContact是一个边框容器ID。

我尝试用此替换bcContact但它不起作用。

你能帮我解决这个初学者的错误。

由于

2 个答案:

答案 0 :(得分:2)

你可以使用event.CurrentTraget,然后使用比较功能,与ids比较并进行设置。

答案 1 :(得分:1)

你可以扩展BorderContainer类(在Flash Builder中,在“超类”文本字段中放入BorderContainer)

你的课程看起来像这样:

import flash.events.MouseEvent;
import spark.components.BorderContainer;
package com.extensions.containers {

    class MyBorderContainer {

        function MyBorderContainer() {
            this.addEventListener(MouseEvent.MOUSE_OVER, changeStyle);
            this.addEventListener(MouseEvent.MOUSE_OUT, undoStyle);
        }

        private function changeStyle(e:MouseEvent):void {
            this.setStyle("borderVisible",true);
            this.setStyle("borderWeight",2);
            this.setStyle("borderColor",'#000099');
        }

        private function undoStyle(e:MouseEvent):void {
            this.setStyle("borderVisible",false);
            this.setStyle("borderWeight",0);
            this.setStyle("borderColor",'#000000');
        }
    }
}

此类需要位于文件src/com/extensions/containers/MyBorderContainer.as

然后在你的mxml中使用它作为

<containers:MyBorderContainer>

</containers:MyBorderContainer>

命名空间containers设置为指向com/extensions/containers