Flex - mxml-更改已识别对象的可见性

时间:2012-09-21 07:54:06

标签: flex4 mxml

让我们考虑一个例子

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:local="*">

<s:Button id="button""/>    
</s:WindowedApplication>

通过详细说明,mxml编译器使“button”成为生成的类的公共字段。 强迫它把它变成私人领域是不是很有用?

1 个答案:

答案 0 :(得分:1)

您无法使用普通MXML将其设为私有。

然而,有一种hacky方式 - 删除“id”属性将有效地使其私有化。如果仍然需要引用该对象,则应添加“creationComplete”处理程序并保留对事件目标的引用。

<fx:Script>
<![CDATA[
    [Bindable] private var button:Button;

    private function onMyButtonCreationComplete(event:Event):void {
        button = Button(event.target);
    }
]]> 
</fx:Script>

...

<s:Button creationComplete="onMyButtonCreationComplete(event)"/>

这实际上与您示例中的私人“按钮”相同。