いらっしゃいませ、
私は単純なFLAプロジェクト(iOS用のAIR 3.6-ソース)を作成しました:
var k1:kloc1 = new kloc1();
var k2:kloc2 = new kloc2();
k1.x = 0;
k1.y = 0;
k2.x = 150;
k2.y = 150;
addChild(k1);
addChild(k2);
trace("k2 name main timeline: " + k2.name);
trace("k2 demo_tekst before: " + MovieClip(root).k2.demo_tekst);
k2.demo_tekst = 'podmieniony tekst';
trace("k2 demo_tekst after: " + MovieClip(root).k2.demo_tekst);
kloc2はライブラリにあり、MovieClipから継承し、demo_tekst変数のみを含みます。
var demo_tekst:String = "oryginalny tekst";
kloc1もライブラリにあり、MovieClipから継承し、リスナーとトレース命令のみが含まれています。
addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent):void {
trace("k2 name from k1 obj: " + MovieClip(root).k2.name);
trace(MovieClip(root).k2.demo_tekst);
}
上記のコードをテストすると、k1をクリックして、コンソールでの結果は次のようになります。
k2 name main timeline: instance3
k2 demo_tekst before: null
k2 demo_tekst after: podmieniony tekst
k2 name from k1 obj: instance3
oryginalny tekst
最終結果は、私が期待するように、「podmieniony tekst」ではなく、「oryginalnytekst」です。また、クレアチンk2オブジェクトの後、new()によって、demo_tekstはnull(?!)になります。デバッグモードでチェックしましたが、k2は作成中、および結果のトレース中に同じインスタンスを持っています。オブジェクト名は両方の場所で同じです。誰かが私に何が起こっているのか説明できますか?