Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-09-2004, 07:52   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 18
spezielle Movies per Actionscript auswählen

Hey hi,

ich habe mir bei Flashstar dieses 3d-Menü (dieses Karussel, mit Buttons, dass sich um einen Ball herum dreht) heruntergeladen und versuche es jetzt in so weit zu verändern, dass die Movies, die sich um diesen Ball drehen, nicht immer aus dem gleichen Bild + Text bestehen, sondern, aus einem individuellen Bild + Text.

Da ich bisher aber nicht wirklich fit in Actionscript bin, bin ich auf eure Hilfe angewiesen.

Der bisherige Code:
Code:
fscommand("allowscale", "false");

// Menüeinträge
links = new Array();
links[1] = ["produkte/0010.php","Artikel Nr. 0010"];
links[2] = ["produkte/0011.php","Artikel Nr. 0011"];
links[3] = ["produkte/0012.php","Artikel Nr. 0012"];
links[4] = ["produkte/0013.php","Artikel Nr. 0013"];
links[5] = ["produkte/0014.php","Artikel Nr. 0014"];
links[6] = ["produkte/0015.php","Artikel Nr. 0015"];

// Bühnen Breite + Höhe
posX = Stage.width / 2;
posY = Stage.height / 2;

// Clips Erzeugen
anzahl = links.length-1;
for (var i = 1; i < anzahl + 1; i++) {
	attachMovie("clip", "clip" + i, i);
}

// Global Signal
_global.signal=true;

// Clips auf Umlaufbahn bringen
this.onEnterFrame = function() {
	if (signal) {
	mausPos += ((_root._xmouse - posX) / 100);
	for (var i = 1; i < anzahl + 1; i++) {
		winkel = ((mausPos + (360 / anzahl * i)) * Math.PI) / 180;
		this["clip" + i]._x = posX + (Math.sin(winkel) * 300);
		this["clip" + i]._y = posY + (Math.cos(winkel) * 50);
		this["clip" + i]._xscale = 100 + (Math.cos(winkel) * 50)
		this["clip" + i]._yscale = 100 + (Math.cos(winkel) * 50);		
		this["clip" + i].swapDepths(1000 + (Math.cos(winkel) * 100));
		this["clip" + i].txtName = links[i][1].toUpperCase();
		this["clip" + i].url = links[i][0];
		this["clip" + i].onRelease = function() {
			getURL(this.url, "_target");
			signal = false;
		};	
		this["clip" + i].onRollOver = function() {
			signal = false;
		};
		this["clip" + i].onRollOut = function() {
			signal = true;
		};
	}
	}
};

// MX (Logo)
planet.swapDepths(999 + 1);
Jetzt hab ich 12 Movies (Beispielname: MenuClip0012). Ziel ist es, irgendwann in der Zeile der Menüeinträge, eine zusätzliche Komponente einzufügen, in der AS entnehmen kann, welches Movie jetzt zu wählen ist.

Zu diesem Hauptproblem, kommen noch zwei kleinere Probleme: Zum ersten wollen die Textfelder nicht "Artikel Nr. 0012" annehmen, sondern machen da "Artikel Nr. 0" draus.
Und zum zweiten möchte ich, dass die Links nicht in einem neuen Fenster, sondern in dem bereits bestehenden geöffnet werden.

Ich hoffe ihr könnt mir da ein wenig helfen!

Danke im Voraus, Tom
Angehängte Dateien
Dateityp: rar 3dmenu.rar (47,4 KB, 11x aufgerufen)

Geändert von TomFresh (01-09-2004 um 07:57 Uhr)
TomFresh ist offline   Mit Zitat antworten
Alt 01-09-2004, 09:12   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
hi,

hier ist die stelle, an der die MCs attacht werden:
ActionScript:
  1. // Clips Erzeugen
  2. anzahl = links.length-1;
  3. for (var i = 1; i < anzahl + 1; i++) {
  4.     attachMovie("MenuClip00" + i, "clip" + i, i);
  5. }


Weiter unten muss es dann aber auch
this["MenuClip00" + i]._x = ... etc heißen.
Im Clip befindet sich ein Textfeld, das vermutlich derzeit einfach zu klein ist für deinen Text.


Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 01-09-2004, 21:31   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 18
hmm, ich bräuchte noch ein bisschen mehr Hilfe. Das genügt mir noch nicht, da ich so gesehen echt nen Newbie bin . Leider.

Also ich hab jetzt 12 MC, mit einem Bezeichner. Der Lautet z.B. Clip0010.

Was genau muss ich da jetzt noch alles ändern? Was bedeutet eigentlich nochmal das i im Script. Und denkt daran, ich will bereits unter dem Punkt Menüeinträge festlegen, welcher MC zu welchem Text und zu welchem Link gehört.

Trotzdem und weiterhin Danke für eure Hilfe, Tom
TomFresh ist offline   Mit Zitat antworten
Alt 02-09-2004, 10:58   #4 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
also, i ist ein Zähler in der Schleife.

for (var i = 1; i < anzahl + 1; i++) bedeutet, dass die Schleife (beginnend mit 1) solange i um eins erhöht (i++), solange die Austrittsbedingung nicht erfüllt ist, i also kleiner anzahl+1 ist. i hat also immer einen anderen Wert.

Wenn du deine Verknüpfungen in der Bibliothek z.B. Clip1, Clip2, ..., Clip12 nennst, kannst du in der Schleife einfach mit:

ActionScript:
  1. anzahl = links.length-1;
  2. for (var i = 1; i < anzahl + 1; i++) {
  3.     attachMovie("Clip" + i, "clip" + i, i);
  4. }

in jedem Durchlauf der Schleife einen anderen MC attachen.

Momentan ist die Verbindung zwischen Clip1, Clip2 etc. und den Texten im Array links nur dadruch gegeben, dass Clip1 ebenso an erster Stelle steht, wie der Inhalt von links[1]. Änderst du im Array die Reihenfolge, verrutschen dir die MCs.

Du kannst aber einfach den Namen des MC auch im Array unterbringen:

ActionScript:
  1. // Menüeinträge
  2. links = new Array();
  3. links[1] = ["produkte/0010.php","Artikel Nr. 0010","Clip1"];
  4. links[2] = ["produkte/0011.php","Artikel Nr. 0011","Clip2"];
  5. links[3] = ["produkte/0012.php","Artikel Nr. 0012","Clip3"];
  6. links[4] = ["produkte/0013.php","Artikel Nr. 0013","Clip4"];
  7. links[5] = ["produkte/0014.php","Artikel Nr. 0014","Clip5"];
  8. links[6] = ["produkte/0015.php","Artikel Nr. 0015","Clip6"];
  9.  
  10. //...
  11.  
  12. // Clips Erzeugen
  13. anzahl = links.length-1;
  14. for (var i = 1; i < anzahl + 1; i++) {
  15.     attachMovie(links[i][2], "clip" + i, i);
  16. }

Jetzt bleiben Text und MC zusammen, egal wie die Reihenfolge des Arrays aussieht.

Hilft das weiter?

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 02-09-2004, 16:06   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 18
Hey super! Habs erstens jetzt mal verstanden und zweitens klappt es so weit astrein. Das einzige was ich jetzt noch bräuchte, wäre nen Befehl, mit dem ich die weiße Fläche der Bilder transparent mache... aber ich werd mich jetzt mal auf die Suche machen und da läßt sich dann hoffentlich was finden.

Falls ihr auch was dazu wissen solltet, könnt ihr gern nochmal posten.

Und nochmal allerbesten DANK an ludabruder! Wirklich klasse!

Bis dann, Tom
TomFresh ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele