別々のフレームに配置したメニューウィンドウがたくさんあります(たとえば、メインメニューはフレーム1にあり、オプションメニューはフレーム2にあり、チャプターメニューはフレーム3にあり、文字メニューはフレーム4にあります)。各メニューには、クリックすると別のメニューページに移動する一連のテキストリンク(ムービークリップインスタンス)があります。これらの同じリンク(同じインスタンス)の一部は、同じ機能を実行するため、複数のページに複製されます。たとえば、「backToMain」インスタンスをクリックすると、クリックされたページに関係なく、メインメニューであるフレーム1に戻ります。
誰かが私がこれをどのように構築するかについての考えを持っていますか?これまで、すべてのリンクにリスナーを追加しようとしましたが、多くのリンクがフレーム1以外の異なるフレームにあるため、actionscriptにそのフレームに切り替えるように指示するまで、リスナーを追加できません。やりたい。最初に、すべてのリンクにリスナーを一度にグローバルに追加したいと思います。
var linksArray:Array = [newStory, continueStory, options, characters, backToMain, backToOptions, ... etc];
for each (var link:MovieClip in linksArray) {
link.addEventListener(MouseEvent.CLICK, onClick);
}
function onClick(e:MouseEvent):void
{
if (e.target.name == "newStoryLink") {
delegate.beginStory();
} else if (e.target.name == "continueStory") {
// do something else
} else if (e.target.name == "chapters") {
// do something else
} else if (e.target.name == "options") {
// do something else
}
前述のように、他のフレームに存在するインスタンスにリスナーを追加できないため、上記のコードは機能しません。基本的に、どのフレームにいるか、そのリンクのどのインスタンスがクリックされたかに関係なく、リンクがクリックされたときに何をするかをASに指示するコード。ありがとう。