1

私の質問を説明するために。次のコード スニペットを想定します。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

<mx:Script>
    <![CDATA[
        import mx.controls.Button;

        private function createButton():void
        {
            var myButton:Button = new Button();
            myButton.label = "Foo";
            this.btncontainer.addChild(myButton);
            trace ("New Button Created [" + myButton.toString() + "]"); 
        }       
    ]]>
</mx:Script>

<mx:Button label="Create Button" click="createButton()" />
<mx:VBox id="btncontainer" />

</mx:Application>

このスクリプトの動作は明らかです。「Create Button」ボタンをクリックするたびに、「Foo」というラベルの付いた新しいボタンが生成されます。コードが何をし、なぜそれが私には理にかなっています。私の質問は、コンソール出力についてです。アプリをデバッグ モードで実行し、[作成ボタン] を 4 回クリックすると、コンソールに次のように表示されます。

New Button Created [main0.btncontainer.Button15]
New Button Created [main0.btncontainer.Button19]
New Button Created [main0.btncontainer.Button23]
New Button Created [main0.btncontainer.Button27]

私の質問は、オブジェクト名に追加された番号はどこから来たのですか? 例: Button15、19、23、27...など? オブジェクトを保持するバックグラウンドにある種の配列があり、これはインデックス値ですか? ある種の内部カウンターですか?これはある種のポインター値ですか? 少なくとも私のテストでは、この場合、毎回同じパターン 15、19、23、27... で区切られているように見えるのはなぜですか?

ここで何が起こっているのかを概念的に理解しています。新しい Button オブジェクトが生成され、メモリが割り当てられます。「Create Button」をクリックするたびに、Button クラスの新しいインスタンスを作成し、VBox オブジェクトに子として追加しています。オブジェクトが作成されたときにオブジェクトに追加された数字の意味や意味は何ですか?

4

1 に答える 1