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>

デフォルトでは、mxml コンパイラは「ボタン」を生成されたクラスのパブリック フィールドにします。無理やりプライベートフィールドにするのはポリビー?

4

1 に答える 1

1

プレーンな MXML を使用して非公開にすることはできません。

それにもかかわらず、ハックな方法があります。「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 に答える