Flashnavigationsleiste erstellen

spifi

Grünschnabel
Moinsens,

Ich möchte meine Page mit einer Flashnavigation bereichern weil die HTML-Navi nach der Zeit langweilig wird und ich möchte mich auch mal mit dem Programm befassen und was neues lernen =).

Also ich habe ein Prototyp Design. In diesem Design befindet sich da wo die Navigation sein soll ein "Display" in diesem Display ist mein logo und unter diesem Display sind kleine grüne Glaskugeln die als Buttons dienen sollen. Meine Vision ist wenn jemand mit der Maus über diese Glaskugeln gleitet, das In dem Display das Logo verschwindet und es anzeigt wo man hingelangt wenn man auf die Kugel klickt. Wenn man jetzt geklickt hat oder einfach nur die Maus wieder runterbewegt soll das Logo wieder Erscheinen.

Das Prototypdesign:
2.jpg


Ich habe das Design jetzt in 20 Teile zerteilt damit ich die Buttons einbinden kann und die Einblendungen im Display einblenden kann. Ist das notwendig oder kann man einfach button Schaltflächen über die Grafik setzten ? Meine versuche haben bis jetzt zu keinem funktionalen Ergebnis geführt =(

Ich habe noch fast keine Erfahrung mit Flash (abgesehen von ein paar mini Einsteiger Tuts die ich mal gemacht habe) und habe mich auch schon nach einem Tutorial Todgesucht aber ich finde fast keins das sich mit einer Navileiste beschäftigt, abgesehen von einem das ich gefunden habe aber das ist für die aller erste flash version denke ich weil die tastenkombies die im Tut beschrieben sind stimmen einfach nicht und z.B. das Effektfenster ist nich da wo es der Autor beschrieben hat. =(

Da ihr ja schon länger in dieser "Scene" tätig seid, dachte ich das ich einfach mal frage vielleicht weiß ja jemand wo es sowas gibt oder kann mir weiterhelfen =).

Freue mich über eine Antwort wie ein kleines Kind über Naschies ^^

MfG sP!F!
 
Zuletzt bearbeitet:
Hi,

da heute Wochenende ist, habe ich grad keine Lust, das alles zu erklären. Statt dessen habe ich mal schnell ein kleines Beispiel angefertigt, in der Hoffnung, dass eine Datei mehr sagt, als viele Worte. ;)

Generell kannst Du bei Flash vorgehen, wie in Photoshop: Zerlegungen (also Slices und dergleichen) brauchst Du nicht, sondern Du hast am besten alles, was sich irgendwie bewegen soll, als einzelnes Element (Bild) vorliegen. Das wäre bei Deinem Beispiel:

- der Hintergrund
- so ein grünes Dings (Button)
- Dein Logo

Ich habe Deine Bilddatei jetzt nicht verändert, sondern einfach alles, was im Weg war, verdeckt. ;)

Gruß

P.S.: übrigens: findest Du diese kleinen grünen Dinger nicht ein wenig zu klein, um als Hauptnavigation zu dienen? Da muss man ja mit der Maus ganz schön zielen.

P.P.S.: Bitte stosse Dich nicht an meinen "satirischen" Titelbezeichnungen; heute ist wie gesagt Wochenende.
.
 

Anhänge

  • justso.zip
    53,9 KB · Aufrufe: 46
Das ist extrem Nett von dir! köntest du mir das auch noch mal für MX abspeichern ? ich kann die fla nämlich nicht öffnen ?!

Danke

MfG sP!F!
 
Danke Danke !

Gefällt mir sehr gut =) =) =) genau so wollte ich das haben !

P.S. ich finde die butons nicht so extrem klein ^^ kommt ja drauf an was für ne auflösung du hast ... ich habe 640x480 (^^) ...... ne hab ich nich (1152x864) aber trotzdem sind die gut zu erreichen finde ich... naja ...

Echt nett =) MfG sP!F!
 
Eine Frage hätte ich noch ... wo baue ich die Hyperlinks ein ? ... das muss ich doch so machen
Code:
getURL("home.htm", "_self");
oder (?) nur wo soll das hin und wie mach ich das er das in meinem späteren iFrame_top lädt und nicht anfängt das als "blank" oda so zu machen ?!
 
Hi,

Du machst Dir ein zweites Array analog zu dem Array "titles", das die Dateinamen Deiner Seiten enthält:
PHP:
var links = new Array("about.htm", "downloads.htm", "impressum.htm");
// Das schreibst Du einfach unter das Array "titles". Die Anzahl der Einträge muss die gleiche sein.

Zum Aufrufen dient dann die Funktion "clicked":
PHP:
function clicked(obj) {
	logoGo();
	display.out();
	var num = parseInt(obj._name.substr(obj._name.length - 1, 1), 10) - 1;
	getURL(links[num], "iFrame_top");
        // statt "_self" oder "_blank" schreibst Du hier einfach "iFrame_top":
        // das ist das Ziel für die neue Seite!
}

Gruß
.
 
oh man is das kompliziert :(
also ich habe jetzt deinen code so verändert

Code:
 var titles = new Array("Home", "News", "Friends", "Unternehmen", "FunPic", "Art", "Links", "Downloads");
var links = new Array("home.html", "news.html", "friends.html", "unternehmen.html", "funpic.html", "art.html", "links.html", "downloads.html");
var iv1 = 0;
var iv2 = 0;
function out() {
clearInterval(iv2);
logoGo();
display.out();
}
function over(obj) {
clearInterval(iv2);
logo.hold();
showTitle(titles[parseInt(obj._name.substr(obj._name.length-1, 1), 10)-1]);
}
function clicked(obj) {
logoGo();
display.out();
}
function logoGo() {
clearInterval(iv2);
iv2 = setInterval(function () {
realLogoGo();
}, 200);
}
function realLogoGo() {
logo.go();
}
function showTitle(txt) {
clearInterval(iv1);
iv1 = setInterval(function () {
realShow(txt);
}, 200);
}
function realShow(txt) {
clearInterval(iv1);
display.showTitle(txt);
}
function clicked(obj) { 
	logoGo(); 
	display.out(); 
	var num = parseInt(obj._name.substr(obj._name.length - 1, 1), 10) - 1; 
	getURL(home[num], "iframe_top"); 
}

und da geht gar nix :( ... ich hab mich auch schon wiedermal Todgesucht doch nirgends gibts mal eine Beschreibung der Funktionen in Flash :( ... Da war der Einstieg in HTML und PHP doch einfacher :( .... Tut mir leid das ich jetzt nochmal Frage aber ich glaube man muss bei obj._name.substr(obj._name.length - 1, 1), 10) - 1; noch irgendetwas verändern oda :confused:. Und ich muss das bestimmt auch für jeden button wiederholen ?!
 
nene, das stimmt schon. ;) - aber du solltest die Funktion "clicked" (die es schon gab) einfach ändern, und nicht eine zweite inzuschreiben. Schau mal:
PHP:
function clicked(obj) {
    logoGo();
    display.out();
}
und:
PHP:
function clicked(obj) { 
	logoGo(); 
	display.out(); 
	var num = parseInt(obj._name.substr(obj._name.length - 1, 1), 10) - 1; 
	getURL(links[num], "iframe_top"); 
}
Woher soll Flash denn nun wissen, welche Version gemeint ist? Nimm die erste Funktion also heraus.

Übrigens: Diese Zeile mit "substr" usw. entnimmt aus dem Instanznamen des Buttons einfach das letzte Zeichen als Nummer: Da die Buttons "but1" - "but8" benannt sind, bekommst Du eine Zahl zwischen 0 und 7 zurückgeliefert, die als Index für das Array verwendet wird. ;)

Gruß

P.S.: Flash verfügt über eine sehr (zumindest relativ) ausführliche und gut verständliche Referenz. Drücke F1 und schau mal ins "ActionScript-Lexikon".
.
 
Zuletzt bearbeitet:
Gut... aber wenn dass jetzt so stimmt warum funktioniert das denn nicht ? Ich habe das jetzt noch mal ganz von Forne gemacht und deine "abstrackten" Namen ertsmal so gelassen und auch auf z.B. p0rn.html in dem var links = new Array verwiesen ... aber das geht auch net ... also so langsam bekomm ich kopfschmerzen ... getURL(******[num], "iframe_top"); was soll man denn da ****** angeben ? is das egal ?

PHP:
 var titles = new Array("About", "Pr0n", "WareZ", "mp3Z", "Katzensaft", "ClanwarZ", "Alcopops", "RingtoneZ");
var links = new Array("About.html", "Pr0n.html", "WareZ.html", "mp3Z.html", "Katzensaft.html", "ClanwarZ.html", "Alcopops.html", "RingtoneZ.html");
var iv1 = 0;
var iv2 = 0;
function out() {
clearInterval(iv2);
logoGo();
display.out();
}
function over(obj) {
clearInterval(iv2);
logo.hold();
showTitle(titles[parseInt(obj._name.substr(obj._name.length-1, 1), 10)-1]);
}
function clicked(obj) { 
	logoGo(); 
	display.out(); 
	var num = parseInt(obj._name.substr(obj._name.length - 1, 1), 10) - 1; 
	getURL(about[num], "iframe_top"); 
}
function logoGo() {
clearInterval(iv2);
iv2 = setInterval(function () { realLogoGo();}, 200);
}
function realLogoGo() {
logo.go();
}
function showTitle(txt) {
clearInterval(iv1);
iv1 = setInterval(function () { realShow(txt);}, 200);
}
function realShow(txt) {
clearInterval(iv1);
display.showTitle(txt);
}
 
Zurück