1

让我们考虑一个例子

<?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>

通过 detault mxml 编译器使“按钮”成为生成类的公共字段。强迫它成为私有领域是不是很糟糕?

4

1 回答 1

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)"/>

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

于 2012-09-21T08:02:56.910 回答