1

as3 コードを含む 2 つのフレームがあります。

// frame1:
gotoAndPlay("show controls");

// frame2 - have movieclip with name slide0
// create menu items click listeners
for (var i:int = 0; i < slides.items.length; i++) // slides.items.length = 1
    this["menu_item"+i].addEventListener(MouseEvent.CLICK, menu_item_click);

// click on the first menu item
this["menu_item0"].dispatchEvent(new MouseEvent(MouseEvent.CLICK));

// menu item click handler
function menu_item_click(e:MouseEvent):void {
    this["slide0"].gotoAndPlay("show");
}

// in movieclip slide0 on frame with label "show"
trace("slide0 show begin");

そして、「slide0 show begin」という 2 つのメッセージが表示されます。しかし、menu_item0 をクリックすると、1 つのメッセージが表示されます。

助けてください - どこが間違っていますか?

4

2 に答える 2

1
MovieClip(this)["menu_item"+i].addEventListener(MouseEvent.CLICK, menu_item_click);
MovieClip(this)["menu_item"+i].dispatchEvent(new MouseEvent(MouseEvent.CLICK));

あなたもそれを試すことができます(slides.items.length)あなたが使うことができるyeine番号。

于 2011-06-07T11:10:08.740 に答える
0

うーん、dispatchEvent を frame3 に移動したところ、問題なく動作しています。

// frame3
this["menu_item0"].dispatchEvent(new MouseEvent(MouseEvent.CLICK));

しかし、そのような行動の理由は明らかではありません...

于 2010-08-29T11:37:13.493 に答える