Drop-down-menu hat kein zugriff auf seiten

hallo

ich habe ein dropdown menu erstellt…nun möchte ich meine seiten hiermit anwählen jedoch funktioniert es nicht … ich hoffe ihr könnt mir dabei helfen!

die datei habe ich hier hochgeladen:

http://www.mediafire.com/?oy15aald1a24t1e

vielen dank im voraus.
liebste grüße

Deine Datei scheint unvollständig zu sein. Beim Kompilieren des swf erhalte ich nur eine schwarze Seite und sehe keine Dropdowns…

und wenn du diese fla datei runterlädst?

http://www.mediafire.com/?01ac9e4ngog9qti

Hey hallo,
ich hab grad nicht viel Zeit aber beim ersten drüberschauen gibts eh ne Fehlermeldung:

Szene 1, Layer ‚AS‘, Frame 1, Line 5 1120: Access of undefined property lebenslauf_btn.

Der Button Lebenslauf fehlt bei mir. Hast Du auch die aktuellste Version hochgeladen? Ich werds mir später nochmal genauer anschauen, aber das ist mir jetzt so auf den Sprung schon mal aufgefallen.
Schau bitte einfach nochmal nach.
Danke,
Tobias

P.S. Oder habe ich Dreine Frage falsch verstanden? Willst Du wissen, wie man nen Button macht? Sorry, dass ich nochmal nachfrage…

ne hast es ein wenig falsch verstanden…ich hoffe ich erklär es mal nen bisschen verständlich:

ich habe nen dropdown menu erstellt…dieses liegt auf einem layer (menu)
die anderen layer sind (pages) wo die einzelnen seiten erstellt werden sollen
und das action script als layer (AS)

in (menu) liegt das dropdown menu als movieclip…dieser heisst „navbar_mc“ und ist wie folgt aufgebaut:
erster layer (AS)

zweiter layer (buttons) die buttons welche jederzeit angewählt werden können -> Home,Wer,Was,Wie und Wo

dritter layer (submenu) hier habe ich keyframes angelegt und die seiten benannt:
homemenu,wermenu,wasmenu,wiemenu,womenu und hidemenu
spule ich die timeline nun vor droppen neue buttons aus!

vierter layer(hide) beinhaltet eine weitere schaltfläche: hidemenu_btn ,um das menu wieder einzufahren

meine programmierung sieht so aus:
AS (im MovieClip navbar_mc)
stop();

home_btn.addEventListener(MouseEvent.ROLL_OVER,showhome);

function showhome(event:MouseEvent){
gotoAndStop(„homemenu“)

}

wer_btn.addEventListener(MouseEvent.ROLL_OVER,showwer);

function showwer(event:MouseEvent){
gotoAndStop(„wermenu“)

}

was_btn.addEventListener(MouseEvent.ROLL_OVER,showwas);

function showwas(event:MouseEvent){
gotoAndStop(„wasmenu“)

}

wie_btn.addEventListener(MouseEvent.ROLL_OVER,showwie);

function showwie(event:MouseEvent){
gotoAndStop(„wiemenu“)

}

wo_btn.addEventListener(MouseEvent.ROLL_OVER,showwo);

function showwo(event:MouseEvent){
gotoAndStop(„womenu“)

}

hidemenu_btn.addEventListener(MouseEvent.ROLL_OUT,hidemenu);

function hidemenu(event:MouseEvent){
gotoAndStop(„hidemenu“)

}

ich verlasse nun den MovieClip und gehe in meine Szene1

hier gebe ich in das ActionScript (AS) folgendes ein:

stop();

navbar_mc.lebenslauf_btn.addEventListener(MouseEvent.CLICK,clickedlebenslauf);

function clickedlebenslauf(event:MouseEvent){
gotoAndStop(„page2“)

}

dieses funktionier nicht und er gibt mir einen fehler aus :
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.

ich hoffe es war verständlich für dich und vllt kommst du ja auf ne lösung.

Ahh, okay, jetzt glaub ich, habe ich es verstanden. Ja, da war einfach im Code auf der Main das navbar_mc. nicht vorhanden.
Wie dem auch sei, der Fehler liegt wohl daran, dass da Objekt
lebenslauf_btn
ja zum Zeitpunkt an dem Du den Listener schreibst noch gar nicht existiert. Der Lebenslaufbutton wird ja erst initialisiert, wenn der Abspielkopf der navbar_mc an die Stelle fährt. Da dur den navbar_mc aber gleich am Anfang stoppst, wo es den Button noch gar nicht gibt, kann er den Listener nicht registrieren.

Du siehst das beispielsweise, wenn Du in der Zeile darüber mal
trace(navbar_mc.lebenslauf_btn);
schreibst.
Wenn der Button existieren würde, gäbe es den Namen wieder. So steht da nur null, was bedeutet, das Objekt ist nicht initialisiert - sprich, es existiert noch gar nicht.

Da gibts nun mehrere Möglichkeiten.
Die Einfachste wäre, Du machst alle Buttons schon vorher ins erste Bild nur „unsichtbar“ z.B. außerhalb des Screens oder visible=false etc.
Ansonsten bliebe Dir auch ein etwas komplexerer aber dafür dynamischer Ansatz.
Hast Du schon ein wenig Erfahrung mit eigenen Events bzw. Eventhandling?
Du könntest beispielsweise einfach nur einen einzigen Listener auf die navBar setzen, der auf MouseEvent.CLICK hört.
In der Methode fragst Du dann direkt nach dem name des Eventtargets.
Das wäre dann etwa so was:

if target.name == „lebenslauf_btn“
gotoAndStop(xyz);
else if target…

Damit hättest Du alles in einer dynamischen Methode untergebracht, bräuchtest Dich aber nicht um noch nicht existierende Buttons kümmern, da diese Events ja erst zustande kommen, wenn man geklickt hat (und folglich die Objekte existieren).

Naja, ich hoffe, das hat irgendwie geholfen. Wenn nicht, lass es mich einfach wissen.

Gruß,
Tobias

danke schonmal…
variante 1 geht nur mit modifikation:
die buttons doppelt belegen geht nicht, sprich ich kann die selben buttons nicht auf die erste seite machen.
hätte mir also im ersten schritt sparen können die buttons ins menu einzuarbeiten.
wenn ich nun aber nen „unsichtbaren button mache“ sprich …neuer button „lebenslaufinvisible_btn“ und diesen auf aktiv stelle so dass er nicht zu sehen ist und ihn nun über die eigentliche schaltfläche platziere, geht es!

fange gerade erst an mit flash…dies ist nen sehr leichter weg wobei profis wahrscheinlich sich die tastatur vor den kopf hauen werden :smiley:

„viele wege führen nach rom“ trifft hier wohl bestens zu!

und daher verstehe ich leider auch nicht deine zweite lösung, was ich jedoch gerne würde!!
könntest du sie mir noch mehr erläutern mit einem code den ich nur noch einfügen müsste?

lg

Freut mich, dass Du voran kommst.
Ja, wenn Du die Buttons „nochmal“ erstellst, sind es logisch gesehen 2 verschiedene Objekte, das klappt soweit leider nicht. (oder vielleicht ganz gut so manchmal).
Wenn Du hingegen den selben Button erstellst und nur verschiebst, geht es.
Das führt leider dazu, dass Du nun demnach alle Buttons ausschneiden und im 1. Frame einfügen müsstest. Dann verschiebst Du sie „raus“ und im entsprechenden Frame rein ins Bild.
Denke übrigens daran, wenn Du die Buttons über Alpha unsichtbar machst, kann man sie immernoch drücken. Daher der Unterschied visible=false statt alpha=0

Für das Zweite Problem habe ich Dir mal einen kleinen Beispielcode erzeugt. Ich hoffe, das hilft besser als es zu erklären.
http://dl.dropbox.com/u/13527005/EventListening.fla
Da hast Du halt eine Methode, die für alle Buttons gleich funktioniert, nur eben nach dem Namen des Objekts, das als Quelle (wird leider target genannt) des MouseClicks dient, entscheided.
So in etwa könntest Du es auch für Deine Menubar machen. Und dann halt nach den Namen der Buttons fragen. Diese müssen dann noch nicht einmal existieren (so wie Button3 erst im 2. Frame bei mir).
Na, schaus Dir mal an, vielleicht ist das verständlich.
Sag bescheid, falls nicht,
Tobias

sorry ich muss dich leider noch nen bisschen weiter nerven :frowning:

leider ist es nicht ganz das was ich gesucht habe
hab hier nochmal meine fla datei

http://dl.dropbox.com/u/74265484/page1.fla

ich möchte ja in meinem actionscript auf der „mainpage“ so nenn ich es mal auf buttons zugreifen die in einem untergeordneten movieclip liegen und das will nicht so recht funktionieren.
in deinem beispiel liegen alle buttons auf der „mainpage“.

lg

Hallo
Gehe mal auf diese Seite
www.on-design.de/tutor/flash_actionscript3
Dort ist es sehr gut beschrieben und
mit beispielen.
Ich hoffe das hielft dir weiter.
Gruss hurni

Hey sorry für die späte Antwort.
Im Grunde ists egal, ob die Ebene die selbe ist oder nicht. Ließ Dir mal was zum Thema „Event Bubbling“ durch.
Google bietet da sicher viel Stoff.
Hier
http://dl.dropbox.com/u/13527005/neu.xfl
ist mal, wie ichs machen würde. Hoffe, Du verstehst, was ich da zeigen wollte. Wenn nicht, meld Dich einfach mal.
Gruß,
Tobias