Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-01-2006, 18:06   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Lausanne
Beiträge: 133
Red face debug: jeder button gleicher link (bin am verzweifeln..)

Hallo,liebe Flashbenutzer
ich habe einen code, der buttons erstellt, also das eine sind überschriften für die buttons darunter... aus einer textdatei wird ausgelesen wieviele menus, und jeweils darunter wiviele buttons, welche dann mit einem Link belegt werden. DAS PROBLEM: JEDER button hat am schluss den gleichen link darauf, und zwar den vom letzten erstellten Button! Ich begreife nicht wieso, weil jeder button ja einzeln kreiert wird. Optisch funktioniert alles, auf jedem button ist der richtige text... (und ZR ist zwischenraum)

Kann jemand mir sagen ob da doch irgendwas im code falsch ist, bitte, ich bim mir da am Haare ausraufen..... wäre super wenn man sich das schnell ankuken könnte und tipps geben

gruss
dM


Code:
tiefe = 0;

//leiste auf der dann die menu-buttons angeordnet werden (anfang, ende, länge)
leiste_a = 200;
leiste_e = 1200;
leiste_b = leiste_e - leiste_a;
i = 1;

//do soviel wie es menu-buttons hat.
//die variablen für die buttons, die aus der txt-datei gelesen werden sind: 
//menu1, menu2, .. für menu-buttons
//m1_b1_name, m1_b2_name, ... für buttons unter halb des menu1-buttons
//m1_b1_link, .. sind die links für die entsprechenden buttons
do {
	x = leiste_a + (i-1)*(leiste_b/menus);
	y = 100;
	y_txt = y - 2;
	
	name_text = "mtext"+i;
	var_menu = "menu"+i;
	name_menu = "menu_b"+i;
	///men_but hingergrund
	_root.attachMovie("menu", name_menu, tiefe);
	this[name_menu]._x = x;
	this[name_menu]._y = y;
	
	tiefe += 1;	
	///men_but text
	_root.createTextField(name_text, tiefe, x, y_txt, 117, 20);
	this[name_text].setNewTextFormat(fm_men);
	this[name_text].variable = var_menu;
	this[name_text].selectable = false;
	this[name_text].background = false;
	this[name_text].border = false;
	
	tiefe += 1;
	
	this.dummy.variable = "menu"+i+"_anzahl";
	anz_b = this.dummy.text;
	
	k = Number(1);
	y_but = 30;
	y_but_txt = y_but - 2;
	if (anz_b != 0){
		//mc für buttons kreieren (jeweils einen unterhalb eines menu-buttons)
		mc_name	 = "mc_"+var_menu;
		_root.attachMovie("mc", mc_name, tiefe);
		this[mc_name]._x = x;
		this[mc_name]._y = y;
		tiefe += 1;

		//do soviel buttons unter dem jeweiligen menu-buttons hat
		do {
			name_but = "butn"+i+"_"+k;
			name_btext = "txt"+i+"_"+k;
			var_but = "m"+i+"_b"+k+"_name";
			var_link = "m"+i+"_b"+k+"_link";

			this.dummy.variable = var_but;
			if(this.dummy.text=="ZR"){
				k += 1;
				y_but += 10;
				y_but_txt += 10;
				tiefe += 1;	
			}else{						
				//buttonhingergrund
				this[mc_name].attachMovie("button", name_but, tiefe);
				this[mc_name][name_but]._y = y_but;
				this[mc_name][name_but]._visible = true;
				
				//buttonaktion
				butname = name_but;
				this.dummy.variable = var_link;
				var_link2=this.dummy.text;
				this[mc_name][butname].onRelease = function(){
					getURL(var_link2, "_blank");
				}
		
				tiefe += 1;	
				//buttontext
				this[mc_name].createTextField(name_btext, tiefe, 0, y_but_txt, 117, 20);
				this[mc_name][name_btext].setNewTextFormat(fm_but);
				this.dummy.variable = var_but;
				this[mc_name][name_btext].text = this.dummy.text;
				this[mc_name][name_btext].selectable = false;
				this[mc_name][name_btext].background = false;
				this[mc_name][name_btext].border = false;
				k += 1;
				y_but += 20;
				y_but_txt += 20;
				tiefe += 1;	
			}
		} while (k <= anz_b)
	}
	i += 1;
	tiefe += 1;
	
} while (i <= 4)
__________________
nevermind - just drink cuba libre

Geändert von don_miguel (30-01-2006 um 20:14 Uhr)
don_miguel ist offline   Mit Zitat antworten
Alt 30-01-2006, 19:36   #2 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Vielleicht könntest du die Zeilen und deren Aufgaben etwas
kommentieren, dann tut man sich leichter beim Fehler finden.
Ist ja einiges dabei, das nicht zum Problem gehört.

Als ersten Ansatz würde ich ein paar Trace-Aktionen z.B. im Bereich
der Button-Aktionen einbauen. Da kannst du dann sehen, was korrekt
ankommt und was nicht.

Gruß
Rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 30-01-2006, 19:56   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Lausanne
Beiträge: 133
oh, das tönt interessant.. ich hab mich schon immmer geärgert, dass es kaum möglichkeiten gibt, übergaben zu kontrollieren... ich werds mal mit diesem trace versuchen mal schauen wies funktioniert.
__________________
nevermind - just drink cuba libre
don_miguel ist offline   Mit Zitat antworten
Alt 30-01-2006, 20:08   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Lausanne
Beiträge: 133
ja also,

grundsätzlich geht es ja ume den Teil //buttonaktion...

Code:
//buttonaktion
				butname = name_but;
				this.dummy.variable = var_link;
				var_link2=this.dummy.text;
				this[mc_name][butname].onRelease = function(){
					getURL(var_link2, "_blank");
				}
ich habs also getestet ob die variablen [mc_name] & [butname] korrekt übergeben werden... und das werden sie! mit dem link muss ichs ein bisschen kompliziert machen, da er aus einer textdatei eingelesen wird, sonst funzts nicht...
und der link wird an sich richtig übergeben, nur das problem ist,dass auf ALLEN buttons der Link vom letzten button liegt.... ich bin echt ratlos...

gruss
dm, eú
__________________
nevermind - just drink cuba libre
don_miguel ist offline   Mit Zitat antworten
Alt 30-01-2006, 21:16   #5 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
Zitat:
Zitat von don_miguel
und der link wird an sich richtig übergeben, nur das problem ist,dass auf ALLEN buttons der Link vom letzten button liegt....
...tja, und das ist absolut logisch...
.... denk doch mal einfach mal darüber nach, welchen Wert die variable var_link2 nach dem Durchlauf Deiner do/while-Schleife hat und dann schau nochmal welche onRelease-Aktion Du 'allen' Buttons zugewiesen hast, das ist nämlich immer die absolut gleiche Aktion:
ActionScript:
  1. this.mc_x.butnx_y.onRelease = function(){
  2.                     getURL(var_link2, "_blank");
  3.                 }
...so sollte es gehen:
ActionScript:
  1. butname = name_but;//der Sinn dieser variablen-Schiebereien...
  2.                 this.dummy.variable = var_link; //...bleibt mir allerdings auch verschlossen
  3. this[mc_name][butname].link=this.dummy.text;
  4.                 this[mc_name][butname].onRelease = function(){
  5.                     getURL(this.link, "_blank");
  6.                 }

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-

Geändert von Alois (30-01-2006 um 21:18 Uhr)
Alois ist offline   Mit Zitat antworten
Alt 30-01-2006, 22:03   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Lausanne
Beiträge: 133
ja das mit den variabeln ist ein bisschen umständlich, aber sonst hats einfach nciht gefunzt.

natürlich hat die variable name_but, bei jedem durchlauf einen anderen Wert

immer noch logisch? find ich nicht

gruss
__________________
nevermind - just drink cuba libre
don_miguel ist offline   Mit Zitat antworten
Alt 30-01-2006, 22:46   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Lausanne
Beiträge: 133
so, habs rausbekommen, und zwar hab ichs im thema nebenan abgekukt ( dupliziertem MC / button eine individuelle action hinzufügen? )

PHP-Code:
//buttonaktion
                
this.dummy.variable var_link;
                
var_link2=this.dummy.text;
                
this[mc_name][name_but].var_link2;
                
this[mc_name][name_but].onRelease = function(){
                    
getURL(this.z"_blank");
                } 
so siehts jetyt aus
__________________
nevermind - just drink cuba libre
don_miguel ist offline   Mit Zitat antworten
Alt 01-02-2006, 10:57   #8 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
...und das ist nichts anderes als das was ich gepostet habe....und natürlich ist das logisch!!!!!
Wer lesen kann ist, klar im Vorteil!!!

Edit: ....sorry, daß ich ein wenig sauer reagiere, aber mir ging mir im ersten Teil meines vorherigen postings darum Dir Deinen Fehler vor Augen zu halten und einen gewissen Lerneffekt zu erreichen, aber offensichtlich scheint das 'Flash lernen wollen' hier im Forum immer seltener zu werden
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-

Geändert von Alois (01-02-2006 um 11:15 Uhr)
Alois ist offline   Mit Zitat antworten
Alt 01-02-2006, 11:00   #9 (permalink)
Banned
 
Benutzerbild von _level0
 
Registriert seit: Jan 2006
Beiträge: 849
Zitat:
Zitat von Alois
...und das ist nichts anderes als das was ich gepostet habe....und natürlich ist das logisch!!!!!
Wer lesen kann ist, klar im Vorteil!!!
_level0 ist offline   Mit Zitat antworten
Alt 23-02-2006, 10:28   #10 (permalink)
Neuer User
 
Registriert seit: Mar 2003
Beiträge: 17
Hallo,

kann mir zum Schluß noch jemand dieses Konstrukt erklären :

this[mc_name][name_but] ??

Ist das ein 2dimensionales Array ?
Und wenn, worauf bezieht sich dann this ?


gruß
dalailama ist offline   Mit Zitat antworten
Alt 23-02-2006, 14:19   #11 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Zitat:
Zitat von Alois
aber offensichtlich scheint das 'Flash lernen wollen' hier im Forum immer seltener zu werden
full ack!
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 23-02-2006, 14:51   #12 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Zitat:
Zitat von dalailama
Ist das ein 2dimensionales Array ?
Und wenn, worauf bezieht sich dann this?
Ne... ist nicht wirklich ein Array
Grundsätzlich:

du kannst auf alle Objekt in einem anderen Objekt wie auf ein assoziatives Array zugreifen. Dies ermöglicht es, zusammengesetzte Strings als Index zu verwenden.
PHP-Code:
this.test_mc.var1 1;
--->
var 
test "var"+1;
trace(this.test_mc.test) => undefined
trace
(this.test_mc[test]) => 1
trace
(this.test_mc["var"+1]) => 1
trace
(this["test_mc"]["var1"]) => //Du siehst also, this["test_mc"]["var1"] ist das selbe wie this.test_mc.var1 
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 24-02-2006, 09:29   #13 (permalink)
Neuer User
 
Registriert seit: Mar 2003
Beiträge: 17
danke bamboocha !!

da habe ich was dazugelernt !!!
dalailama 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 03:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele