Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-07-2006, 19:58   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 3
movieclip Name in Array

Hallo Forum,

ich hoffe ich habe nicht etwas überlesen und belästige euch mit einem wiederkehrenden Thema, aber folgendes:
Ich speichere Namen von Movieclips in einem Array:
Code:
 menue = ["eins", "zwei"];
Nun würde ich gerne in der Hauptszene, im ersten Frame, den Clips Rollover effekte zuweisen und zwar mache ich das so:
Code:
for(i=0; i < menue.length; i++){
	this[menue[i]].gotoAndStop(1);
	this[menue[i]].onRollOver = function() {
		if(opened != menue[i]){
			this[menue[i]].gotoAndPlay(1);
		}
	}
	this[menue[i]].onRollOut = function() {
		if(opened != menue[i]){
			this[menue[i]].gotoAndPlay(5);
		}
	}
	this[menue[i]].onPress = function() {
		if(opened != menue[i]){
			this[menue[i]].gotoAndPlay(10);
		opened = menue[i];
		}
	};
}
Nur leider will er mir das so nicht ausführen, die Namen im Array stimmen mit den Instanzennamen überein. Beim Abspielen (testen) passiert allerdings gar nichts. Seht ihr vielleicht woran das liegen könnte?

Danke für eure Hilfe!
haSta84 ist offline   Mit Zitat antworten
Alt 11-07-2006, 20:12   #2 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
hallo
das war schon fast gut so (wenn ich mich jetzt nicht komplett irre) - bis auf die sache, dass in den onRollOver-, onRollOut- und onPress-Handlern das this schon jeweils auf den movieclip selbst zeigt. das heißt, der index "i" aus der for-schleife ist da schon längst verfallen!

so sollte es gehen:
ActionScript:
  1. for(i=0; i < menue.length; i++){
  2.     this[menue[i]].gotoAndStop(1);
  3.     this[menue[i]].onRollOver = function() {
  4.         if(opened != this){
  5.             this.gotoAndPlay(1);
  6.         }
  7.     }
  8.     this[menue[i]].onRollOut = function() {
  9.         if(opened != this){
  10.             this.gotoAndPlay(5);
  11.         }
  12.     }
  13.     this[menue[i]].onPress = function() {
  14.         if(opened != this){
  15.             this.gotoAndPlay(10);
  16.         opened = this;
  17.         }
  18.     }
  19. }
gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 11-07-2006, 20:12   #3 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
So vielleicht?
PHP-Code:
for(i=0menue.lengthi++){
             var 
mc thismenue[i] ];
             
tracemc );
    
mc.gotoAndStop(1);
    
mc.onRollOver = function() {
        if(
opened != this){
            
this.gotoAndPlay(1);
        }
    }
//...

__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 11-07-2006, 20:35   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 3
Wow! Danke euch beiden. habs so umgesetzt wie Janosh meinte und funktioniert prima, sehr logisch das ganze, hoffe ich hab das jetzt richtig verstanden.
Leider wird beim RollOut der Clip nicht richtig abgespielt, wenn ich mit der Maus nicht so lange "Over bleib" bis der Clip fertig abgespielt ist. Kann ich da was machen? Entschuldigt wenn ich gleich mit der nächsten Frage anrücke...
haSta84 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 02:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele