Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-08-2003, 15:59   #1 (permalink)
searching...
 
Benutzerbild von Thomas Greinke
 
Registriert seit: Nov 2002
Ort: Fishtown
Beiträge: 134
dynamische Buttons positionieren

Hallo Leute,

versuche gerade ein Menü mit attachMovie zu generieren.
Das Problem ist, dass die Bezeichnungen der Buttons unterschiedlich lang sind. Daraus resultiert natürlich, dass ich nicht mit einem festen Wert arbeiten kann.

Hab es mit folgendem Scipt versucht:
ActionScript:
  1. for (i=0; i<navigation_anzahl; i++) {
  2.     laenge = length(navigation[i-1]);
  3.     trace ("laenge "+laenge);
  4.     attachMovie("button", "button" add i, i+1);
  5.     attachMovie("label", "label" add i, i+10);
  6.  
  7.    
  8.     a = this["button" + i];
  9.     b = this["label" + i];
  10.     a._width = laenge*20;
  11.     n += a._width;
  12.     trace("n "+n);
  13.     trace ("Breite "+a._width);
  14.     a._x = n;
  15.     b._x = n;
  16.     trace ("x-Wert "+a._x);
  17.     b._y = 100;
  18.     a._y = 100;
  19.     b.txt = navigation[i];
  20.     a.i = i;
  21. }

leider stimmt da etwas nicht :-(

Kann sich das jemand mal ansehen?
Thomas Greinke ist offline   Mit Zitat antworten
Alt 05-08-2003, 16:01   #2 (permalink)
searching...
 
Benutzerbild von Thomas Greinke
 
Registriert seit: Nov 2002
Ort: Fishtown
Beiträge: 134
Hier nochmal ne FLA dazu:
Angehängte Dateien
Dateityp: zip menu tom.zip (15,6 KB, 10x aufgerufen)
Thomas Greinke ist offline   Mit Zitat antworten
Alt 05-08-2003, 18:10   #3 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
ActionScript:
  1. stop();
  2. // -- db:output --
  3. navigation = new Array("Information", "Service", "Kunden", "Portfolio","Kontakt");
  4. // -- ini --
  5. navigation_anzahl = navigation.length;
  6. // ---
  7.  
  8.  
  9. for (i=0; i<navigation_anzahl; i++) {
  10.     laenge = length(navigation[i]);
  11.     trace ("laenge "+laenge);
  12.     this.attachMovie("button", "button"+i, i+1);
  13.     this.attachMovie("label", "label"+i, i+10);
  14.     but = this["button" + i];
  15.     lab = this["label" + i];
  16.     but._width = lab._width = laenge*20;//ungenau
  17.     but._x = lab._x = n;
  18.     but._y = lab._y = 100;
  19.     n = but._x+but._width;
  20.     lab.txt = navigation[i];
  21.     but.i = i;
  22.     lab.i = i;
  23. }

mfg geo

Edit: file gelöscht
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker

Geändert von _geo_ (05-08-2003 um 22:53 Uhr)
_geo_ ist offline   Mit Zitat antworten
Alt 05-08-2003, 18:59   #4 (permalink)
searching...
 
Benutzerbild von Thomas Greinke
 
Registriert seit: Nov 2002
Ort: Fishtown
Beiträge: 134
Hallo _geo_,

danke für deine Mühen.

Leider konnte ich deinen Anhang nicht öffnen -> crc-fehler.
Habe den geposteten code in meine Fla eingesetzt und festgestellt, dass es zwar passt, aber die Labels skaliert werden

ActionScript:
  1. but._width = lab._width = laenge*20;//ungenau
  2.  

hab lab._width = rausgenommen

ActionScript:
  1. but._width =  laenge*20;//ungenau
  2.  

jetzt stimmen die Abstände aber wieder nicht :-(
Thomas Greinke ist offline   Mit Zitat antworten
Alt 05-08-2003, 22:52   #5 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
ActionScript:
  1. stop();
  2. // -- db:output --
  3. navigation = new Array("Information", "Service", "Kunden", "Portfolio","Kontakt");
  4. // -- ini --
  5. navigation_anzahl = navigation.length;
  6. // ---
  7.  
  8.  
  9. for (i=0; i<navigation_anzahl; i++) {
  10.     laenge = length(navigation[i]);
  11.     trace ("laenge "+laenge);
  12.     this.attachMovie("button", "button"+i, i+1);
  13.     this.attachMovie("label", "label"+i, i+10);
  14.     but = this["button" + i];
  15.     lab = this["label" + i];
  16.     but._width = laenge*20;//ungenau
  17.     but._x = n;
  18.     lab._x = but._x+but._width/2-lab._width/2;
  19.     but._y = lab._y = 100;
  20.     n = but._x+but._width;
  21.     lab.txt = navigation[i];
  22.     but.i = i;
  23.     lab.i = i;
  24. }

so jetzt funktionierts, hoffe das file geht auch.
Angehängte Dateien
Dateityp: zip menutom.zip (15,7 KB, 15x aufgerufen)
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 06-08-2003, 09:27   #6 (permalink)
searching...
 
Benutzerbild von Thomas Greinke
 
Registriert seit: Nov 2002
Ort: Fishtown
Beiträge: 134
ActionScript:
  1. but._width = laenge*10;//ungenau
  2.  

Danke! Soweit funktioniert es jetzt. Was leider stört, ist das der o. g. Code die Buttons nicht wirklich richtig vergrößert.
Wie du schon geschrieben hast...
Gibt es eine bessere Möglichkeit, die Breite der Label zu bestimmen?

Gruß,
Thomas
Angehängte Dateien
Dateityp: zip menutom.zip (16,1 KB, 13x aufgerufen)
__________________
Der Clevere gibt solange nach bis er der Dümmere ist
Thomas Greinke ist offline   Mit Zitat antworten
Alt 06-08-2003, 10:26   #7 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
da müsstest du die zeichen breite wissen (win W ist eben breiter als ein i) aslo die zeichen in kategorien einteilen und dann den zeichen für zeichen berechnen wie breit der im label vorhanden Text ist.

(Hab da irgendwo nocch ein script, ich schau mal nach)

mfg geo !

[edit]habs nichtmehr auf rechner sorry, aber so geht`s[edit]
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker

Geändert von _geo_ (06-08-2003 um 10:38 Uhr)
_geo_ ist offline   Mit Zitat antworten
Alt 06-08-2003, 12:17   #8 (permalink)
searching...
 
Benutzerbild von Thomas Greinke
 
Registriert seit: Nov 2002
Ort: Fishtown
Beiträge: 134
Habe folgenden Link gefunden.
Die hier besprochene Lösung funktioniert prächtig, ist aber leider zum Nachvollziehen viel zu hoch...
Vielleicht rall ich sowas ja mal eines Tages ;-)

Danke
__________________
Der Clevere gibt solange nach bis er der Dümmere ist
Thomas Greinke 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 04:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele