Ich habe eine Reihe von Menüfenstern, die ich auf separaten Frames platziert habe (zum Beispiel das Hauptmenü auf Frame 1, das Optionsmenü auf Frame 2, das Kapitelmenü auf Frame 3, das Zeichenmenü) auf Rahmen 4, usw.). In jedem Menü gibt es eine Reihe von Textlinks (MovieClip-Instanzen). Wenn Sie darauf klicken, gelangen Sie zu einer anderen Menüseite. Einige dieser Links (gleiche Instanz) werden auf mehreren Seiten dupliziert, da sie dieselbe Funktion ausführen. Wenn Sie zum Beispiel auf die "backToMain" -Instanz klicken, wird unabhängig von der Seite, auf die Sie geklickt haben, wieder Frame 1 angezeigt, also das Hauptmenü.Erstellen von Menüverknüpfungen, die miteinander verbunden sind
Hat jemand eine Idee, wie ich das bauen könnte? Bis jetzt habe ich versucht, jedem einzelnen Link Listener hinzuzufügen, aber da sich viele Links auf anderen Frames als Frame 1 befinden, kann ich ihnen keine Listener hinzufügen, bis ich ActionScript befehle, zu diesem Frame zu blättern. Ich will es tun. Ich möchte die Zuhörer auf einmal für alle Links am Anfang global hinzufügen:
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
}
Der obige Code funktioniert nicht, weil, wie erwähnt ich nicht Hörern Instanzen hinzufügen können, die auf anderen Frames bestehen. Der Code sagt grundsätzlich, was zu tun ist, wenn auf einen Link geklickt wird, unabhängig davon, auf welchem Frame ich bin oder auf welche Instanz des Links geklickt wurde. Danke.
Also, was ist das Problem? – Torious
Bitte lesen Sie die Frage, das Problem ist, dass der Code nicht funktioniert. Ich kann keine Listener zu Instanzen in anderen Frames hinzufügen. – Windbrand
Sie könnten versuchen, Ihren Ereignis-Listener zu 'stage' hinzuzufügen; alle "CLICK" -Ereignisse * sollten * schließlich dazu führen, denke ich. Verwenden Sie dann etwas wie den 'onClick'-Handler, den Sie oben beschreiben. – Torious