0

私は2つのクラスで同じことをしました。何か違うことをしたとは思えませんが、しなければなりません。別のクラスで取得した Spritename の代わりに trace(event.target) を使用すると、クリック後に「Instance54」または何かが取得されるためです。今、私は回避策を作成しましたが、イベントリスナーがスプライト名の代わりにインスタンス名を取得するタイミングを誰かが説明できますか?

private var fly:Sprite = new Sprite;
private var flyArea:Sprite = new Sprite;

...

public function()
{
fly.addChild(new R.fly);
flyArea.addChild(new R.bg);
flyArea.addChild(fly);
fly.addEventListener(MouseEvent.CLICK,flyClick, false, 0, true);

...

private function changeFlikOrder(event:MouseEvent):void
trace (event.target);
4

2 に答える 2

0

作成後にオブジェクトに「name」プロパティを指定しない場合、オブジェクトは自動生成された名前「インスタンス」+番号を受け取ります。ほとんどの場合getChildByName()、その特定の名前を持つ子供は 1 人だけであることを確認するために作られています。Flash CS のグラフィカル デザイナでインスタンスの属性を編集するときに暗黙的にインスタンスに名前を付けるので、"Sprite-name" を返すオブジェクトは事前に配置されたオブジェクトであると予想されます。

于 2013-02-14T08:17:16.853 に答える