Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-06-2006, 15:52   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 18
Unhappy Flash Syntaxproblem bei Funktionsaufruf mit Variable

Hi Leute,

ich brauche mal fix Hilfe und zwar möchte ich eine Funktion aufrufen, die ich mit
Code:
this.thumbHolder.click = function(zahl) {
trace("blah");
}
in einer Instanz erstellt habe und diese möchte ich jetzt aufrufen mit
Code:
eval ("_level0.thumbnails.thumbnail"+act_number+".click()");
wobei act_number eine Variable ist, allerdings funktioniert es so irgendwie nicht.
Code:
_level0[".thumbnails.thumbnail"+act_number].click();
geht leider auch nicht und
Code:
_level0[".thumbnails.thumbnail"+act_number+".click()"];
auch nicht.
Ein Aufruf mit
Code:
_level0.thumbnails.thumbnail1.click();
an dieser Stelle funktioniert aber und act_number habe ich bereits erfolgreich getraced, also muss es ein Syntaxproblem sein,
BITTE BITTE HELFT MIR, mein Kopf raucht und ich komm einfach nicht weiter!!!

Danke schonmal
Kai.S ist offline   Mit Zitat antworten
Alt 06-06-2006, 16:12   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
mal so als bsp script:
PHP-Code:
var deineNumber 2;

this.createEmptyMovieClip("thumbHolder1" 1);
this.createEmptyMovieClip("thumbHolder2" 2);
this.createEmptyMovieClip("thumbHolder3" 3);

this.thumbHolder1.Click = function(zahl) {
    
    
trace("blah1 " zahl);
    
}

this.thumbHolder2.Click = function(zahl) {
    
    
trace("blah2 " zahl);
    
}

this.thumbHolder3.Click = function(zahl) {
    
    
trace("blah3 " zahl);
    
}


this["thumbHolder" deineNumber].Click(666); 
cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 06-06-2006, 16:13   #3 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
hier nochmal in actionscript2:
PHP-Code:
var deineNumber:Number 2;

this.createEmptyMovieClip("thumbHolder1" this.getNextHighestDepth());
this.createEmptyMovieClip("thumbHolder2" this.getNextHighestDepth());
this.createEmptyMovieClip("thumbHolder3" this.getNextHighestDepth());

this.thumbHolder1.Click = function(zahl:Number):Void {
    
    
trace("blah1 " zahl);
    
}

this.thumbHolder2.Click = function(zahl:Number):Void {
    
    
trace("blah2 " zahl);
    
}

this.thumbHolder3.Click = function(zahl:Number):Void {
    
    
trace("blah3 " zahl);
    
}


this["thumbHolder" deineNumber].Click(666); 
cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 06-06-2006, 16:22   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 18
Hmm also ich glaube du hast mich falsch verstanden.
Jeder MC den ich erstellt habe, besitzt die Funktion click();
Und ich möchte wenn muh = 3 ist
_level0.thumbnails.thumbnail3.click(); aufrufen.

Zum besseren Verständnis hier mal der gesamte AS-Code

Und schonmal ein dickes Dankeschön für deine Mühen!

Code:
txt_mc._visible = false;
loader_mc._visible = false;
txt_mc.descr_txt.multiline = true;
txt_mc.descr_txt.wordWrap = true;
xmlpath="ohrringe.xml"; //Wo liegt die XML-File
myPhoto = new XML();
myPhoto.ignoreWhite = true;
myPhoto.onLoad = function(success) {
	numimages = this.firstChild.childNodes.length;
	x_spacing = 150; //Breite
	y_spacing = 150; //Höhe
	itemsinarow = 4; //Wieviele sollen in eine Zeile
	for (i=0; i<numimages; i++) {
			//trace("i"+i);
			rowCounter = i;
			//trace("Bildnummer = "+rowCounter);
			rowNumber = rowCounter % itemsinarow; //Rest bilden um Pos. zu bekommen
			//trace("Platz in der Zeile"+rowNumber);
			colNumber = i / itemsinarow; //Wieviele Zeilen sind es?
			colNumber = math.floor(colNumber); //Das Ganze abrunden
			//trace("Aktuelle Zeile = "+colNumber);
			this.picHolder = this.firstChild.childNodes[i];
			this.thumbHolder = thumbnails.createEmptyMovieClip("thumbnail"+i, i);
			this.thumbHolder._x = rowNumber*x_spacing;
			this.thumbHolder._y = colNumber*y_spacing;
			this.thumbLoader = this.thumbHolder.createEmptyMovieClip("thumbnail_image", 0);
			this.thumbLoader.loadMovie(this.picHolder.attributes.thmb);
			this.thumbHolder.title = this.picHolder.attributes.title;
			this.thumbHolder.desc = this.picHolder.attributes.desc;
			this.thumbHolder.modell = this.picHolder.attributes.modell;
			this.thumbHolder.main = this.picHolder.attributes.main;
			this.thumbHolder.pic_nr = i+1; //Bildnummer für Identifizierung :)
			//trace(this.thumbHolder);
			this.thumbHolder.click = function(zahl) {
			//trace(zahl);
			// PRODUKTUNTERSEITEN-GENERIERUNG
			for (i=0; i<numimages; i++) {
				//_level0["thumbnails.thumbnail" + i + ".thumbnail_image"].enabled = false;
				//_level0["thumbnails.thumbnail" + i].enabled = false;
				set ("_level0.thumbnails.thumbnail" + i + ".enabled", false);
				_level0.up.enabled = false;
				_level0.down.enabled = false;
				_level0.up._visible = false;
				_level0.down._visible = false;
				_level0.thumbnails._visible = false;
				//set ("_level0.thumbnails.thumbnail" + i + "thumbnail_image.enabled", false);
			} //end for
				//Geklicktes ITEM global machen
				_global.act_pic_nr = this.pic_nr;
				//VOR UND ZURÜCK EINSTELLEN!
				if (_global.act_pic_nr == numimages) {
						txt_mc.vor_button.enabled = false;
						txt_mc.vor_button._alpha = 50;
				} else {
					txt_mc.vor_button.enabled = true;
					txt_mc.vor_button._alpha = 100;
					} //end if
				
				if (_global.act_pic_nr == 1) {
						txt_mc.back_button.enabled = false;
						txt_mc.back_button._alpha = 50;
				} else {
					txt_mc.back_button.enabled = true;
					txt_mc.back_button._alpha = 100;
					} //end if
				txt_mc._visible = true; // CONTAINER MC anzeigen
				loader_mc._visible = true;
				// HAUPTMENÜ BUTTON BLENDET EBENE WIEDER AUS!
				txt_mc.overview_button.onPress = function() {
					_root.txt_mc._visible = false;
					_root.loader_mc._visible = false;
					_level0.up.enabled = true;
					_level0.down.enabled = true;
					_level0.up._visible = true;
					_level0.down._visible = true;
					_level0.thumbnails._visible = true;
					for (i=0; i<numimages; i++) {
						set ("_level0.thumbnails.thumbnail" + i + ".enabled", true);
					}
				}
				// ZURÜCK BUTTON GEHT ZUM VORIGEN PRODUKT
				txt_mc.back_button.onPress = function() {
					muh = _global.act_pic_nr-1;
					//trace(muh);
					_level0["thumbnails.thumbnail" + muh].click(muh);  
				}
				// WEITER BUTTON GEHT ZUM NÄCHSTEN PRODUKT
				txt_mc.vor_button.onPress = function() {
					muh = _global.act_pic_nr-1;
					//trace(muh);
					_level0["thumbnails.thumbnail" + muh].click(muh);  
				}
				// PRODUKTTITEL WIRD EINGETRAGEN
				//trace("Titel "+ this.title);
				txt_mc.title_txt.text = this.title;
				// MODELL NR WIRD EINGETRAGEN
				//trace("Modell "+ this.modell);
				txt_mc.modell_txt.text = this.modell;
				// DESCRIPTION WIRD EINGETRAGEN
				//trace("Descr. "+ this.desc);
				txt_mc.descr_txt.text = this.desc;
				// X VON X WIRD GEHOLT UND DANN EINGETRAGEN
				txt_mc.xvonx_txt.text = this.pic_nr + " von " + numimages;
				// GROSSES BILD WIRD GEZEIGT!
				loader_mc.loadMovie(this.main);
			}
			this.thumbHolder.onPress = function() {
				this.click(this.pic_nr);
			}; // end onPress
	} //end for
};//end onLoad
myPhoto.load(xmlpath);

//Scrollfunktion
	thumbnails.setMask(maske);
	thumbnails.speed = 20;
	up.onPress = function() {
		thumbnails.onEnterFrame = function() {
			if (this._y <= 0) {
				this._y += this.speed;
			}
		}
	}
	
	up.onRelease = function() {
		delete thumbnails.onEnterFrame;
	}
	
	up.onReleaseOutside = function() {
		delete thumbnails.onEnterFrame;
	}
	
	down.onPress = function() {
		thumbnails.onEnterFrame = function() {
			if (this._y >= -1*this._height+maske._height) {
				this._y -= this.speed;
			}
		}
	}
	
	down.onRelease = function() {
		delete thumbnails.onEnterFrame;
	}
Kai.S ist offline   Mit Zitat antworten
Alt 06-06-2006, 16:28   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 18
Code:
_level0.thumbnails.thumbnail7.click();
an dieser Stelle funktioniert bereits, aber die 7 soll eben durch den Inhalt der Variable muh ersetzt werden, welche bereits erfolgreich getraced wurde!
Kai.S ist offline   Mit Zitat antworten
Alt 06-06-2006, 16:49   #6 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
es war nur ein bsp zum besseren verständis dort oben
mußt das jetzt schon ein bissal für dich selber weiterspinnen.. da du aber nicht drauf zu kommen scheinst probier es mal wie folgt:

PHP-Code:
_level0.thumbnails["thumbnail" muh].click(); 
und klick als begirff, also als name für eine function ist nicht gut da der begriff schon von flash verwendet wird..

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 06-06-2006, 17:00   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 18
YEEEEEEEEEEEEEEEEEEEEEEEAAAAAAAAAAAAAAAH!!!!!!!!!! !


Fettes fettes Dankeschön

So funzt es! Prima!
Kai.S ist offline   Mit Zitat antworten
Alt 06-06-2006, 23:56   #8 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
ja büddeschön
cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar 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 15:52 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele