让我们考虑一个例子
<?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”成为生成的类的公共字段。 强迫它把它变成私人领域是不是很有用?
答案 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)"/>
这实际上与您示例中的私人“按钮”相同。