Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-11-2004, 21:40   #1 (permalink)
stuertz
Gast
 
Beiträge: n/a
dynamisch erzeugten btns mouseEvents zuordnen

hallo,

weiß jemand, wie ich dynamisch erzeugten buttons verschiedene farbwerte per script zuweisen kann?
ich habe per duplicateMovieCLip eine reihen buttons erzeugt. wenn ich in der duplizier-schleife die onMouse-event-farben festlege, erwische ich nur den letzten.
hier ein teil des scripts:

// buttons vervielfältigen
while (btn_amount>0) {
// für jeden btn die x-koordinate errechnen:
// dies geschieht mit hilfe der werte
// menu_x (abstand zum rand)
// btn_x (dynamische button-breite inkl abstand zum nächsten
// rechten button)
// i (inkrement-operator)
btn_x_new = menu_x+(i*btn_x);
duplicateMovieClip(menu_btn, "menu_btn"+i, i);
setProperty ("menu_btn"+i, _x, btn_x_new);
setProperty ("menu_btn"+i, _width, btn_width);

// btns färben
settingsColor = new Color(["menu_btn"+i]);
_root["menu_btn"+i].onRollOver = _root["menu_btn"+i].onRelease = function() {
settingsColor.setRGB(btn_over_color);
}
_root["menu_btn"+i].onRollOut = _root["menu_btn"+i].onDragOver = _root["menu_btn"+i].onReleaseOutside = function() {
settingsColor.setRGB(btn_up_color);
}
_root["menu_btn"+i].onPress = _root["menu_btn"+i].onDragOver = _root["menu_btn"+i].onDragOut = function() {
settingsColor.setRGB(btn_down_color);
}


i++;
btn_amount--;


}
  Mit Zitat antworten
Alt 29-11-2004, 23:29   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
wo weißt du denn die Farben den Variablen (btn_over_color,btn_up_color,btn_down_color) zu?bzg. wo befinden sich diese variablen?
...und fehlt da nicht irgendwo die zuweisung, bei welchem Button(this....) die Farbe geändert werden soll? schonmal die farben "ausgetraced"?... oder die ButtonEvents getraced?...nein?->machen!

btw: setz [ as] script [ /as] (ohne Leerzeichen) um deine scriptsa.... dann werden sie hier formatiert!
bsp:
ActionScript:
  1. //...
  2. i=4;
  3. this.onEnterFrame = function () {
  4.   i++;
  5.   trace(i);
  6. }
  7. //...
  8.  

grz
pape

Geändert von pape (29-11-2004 um 23:32 Uhr)
pape ist offline   Mit Zitat antworten
Alt 30-11-2004, 09:34   #3 (permalink)
stuertz
Gast
 
Beiträge: n/a
das ganze script

hallo pape (und natürlich auch der rest der flashgemeinde!)

ich hatte nur einen teil des skriptes reingepastet (danke übrigens für den actionscript-darstellungs-tipp!! wahrscheinlich ist es ab dieser länge aber eh ratsamer das fla zu zippen und anzuhängen, deswegen hab ich das auch nochmal getan....)

was meinst du mit button-events tracen? wie?

hier findest du jedenfalls mein ganzes skript inkl. variablen etc, der knackepunkt sind die zeilen 105 - 123, das kann so nicht funktionieren, aber ich weiß auch nicht wie. wäre sehr dankbar, wenn du oder irgendjemand da eine idee hätte - und falls euch sonst noch was am code auffällt - immer her mit den verbesserungsvorschlägen, ich lerne gerne...

ActionScript:
  1. ///////////////////////\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////
  2. ////////////////////////\ DYNAMISCHES MENÜ 0.8 \///////////////////////
  3. /////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////
  4.  
  5. // inkrement operator
  6. var i= 0;
  7.  
  8. // NAMEN der buttons
  9. var btn_names = ["HOME", "NEWS", "MUSIK", "PHOTOS", "TRASH", "MAIL"];
  10.  
  11. // anzahl der buttons - ergibt sich aus der menge des NAMEN-arrays
  12. var btn_amount = btn_names.length;
  13.  
  14. // diese Variable wird aus der btn-amount erzeugt,
  15. // damit die dynamisch erzeugten textfields eigene levels bekommen
  16. var btn_amount_global = btn_amount*2;
  17.  
  18. // farbobjekt der buttons
  19. var btn_color;
  20.  
  21. // colorcode für die buttons
  22. var btn_color_code = "0x"+"ff2233";
  23. var typo_color_code = "0x"+"00FFee";
  24.  
  25.  
  26. // btns färben
  27. var btn_over_color = "0x"+"446655";
  28. var btn_up_color = "0x"+"000000";
  29. var btn_down_color = "0x"+"003322";
  30.    
  31. // Typ, Größe und Farbe der btn-Schrift
  32. var formatObj = new TextFormat();
  33. formatObj.size = 18;
  34. formatObj.color = typo_color_code;
  35. formatObj.font = "Arial Black";
  36. formatObj.align = "center";
  37.  
  38. // breite des movies
  39. var mov_width = 600;
  40.  
  41. // höhe der buttons
  42. var btn_height = 30;
  43.  
  44. // größe der spaces zwischen den buttons
  45. var btn_space = 5;
  46.  
  47. // x - und y- koordinaten des menues
  48. var menu_x = 3;
  49. var menu_y = 370;
  50.  
  51. // die anzahl der lücken zwischen den buttons ist immer um eins weniger als
  52. // die anzahl der buttons selber.
  53. var btn_space_amount = btn_amount-1;
  54.  
  55. // um die breite der Buttons zu ermitteln
  56. // addiert man erstmal alle lücken und erhält die gesamtbreite der SPACES:
  57. var btn_space_total = btn_space_amount * btn_space
  58. // von der gesamtbreite des menüs zieht man diese summe ab.
  59. // was übrig bleibt steht den buttons zur verfügung und muss nur noch durch die
  60. // anzahl der buttons geteilt werden:
  61. var btn_width = ((mov_width - btn_space_total)/ btn_amount);
  62. // abstand der x_koordinaten (linke obere ecke) der btns zueinander
  63. var btn_x = btn_width+btn_space;
  64.  
  65. // ausrichtung des menus (ist noch nicht fertig, nur 'm' funktioniert)
  66. // m = mittig (abstand links und rechts ist gleich)
  67. // r = rechtsbündig (abstand rechts ist festgelegt,
  68. // l = linksbündig
  69. var ausrichtung = "m"
  70. switch (ausrichtung) {
  71.     case "m":
  72.     // wie breit soll der abstand zu beiden rändern sein?
  73.     var menu_abstand_rand = 1;
  74.     var menu_width = (mov_width-(2*menu_abstand_rand));
  75.     var menu_x = menu_abstand_rand;
  76.     break;
  77.     case "l":
  78.     // noch nicht erstellt
  79.     break;
  80.     case "r":
  81.     // noch nicht erstellt
  82.     break;
  83. }
  84.  
  85. // buttons vervielfältigen
  86. while (btn_amount>0) {
  87.     // für jeden btn die x-koordinate errechnen:
  88.     // dies geschieht mit hilfe der werte
  89.     // menu_x   (abstand zum rand)
  90.     // btn_x    (dynamische button-breite inkl abstand zum nächsten
  91.     //        rechten button)
  92.     // i       (inkrement-operator)
  93.     btn_x_new = menu_x+(i*btn_x);
  94.     duplicateMovieClip(menu_btn, "menu_btn"+i, i);
  95.         setProperty ("menu_btn"+i, _x, btn_x_new);
  96.         setProperty ("menu_btn"+i, _y, menu_y);
  97.         setProperty ("menu_btn"+i, _width, btn_width);
  98.         setProperty ("menu_btn"+i, _height, btn_height);
  99.        
  100.         // textfelder erstellen
  101.         this.createTextField("btn_txt"+i, btn_amount_global+i, btn_x_new, menu_y+2, btn_width,btn_height);
  102.         this["btn_txt"+i].text = btn_names[i];
  103.         this["btn_txt"+i].selectable = false;
  104.        
  105.         // btns färben (funktioniert nicht - bzw nur für den letzten)
  106.         settingsColor = new Color(["menu_btn"+i]);
  107.         this["menu_btn"+i].onRollOver =
  108.         this["menu_btn"+i].onRelease =
  109.         function() {
  110.             settingsColor.setRGB(btn_over_color);
  111.         }
  112.         this["menu_btn"+i].onRollOut =
  113.         this["menu_btn"+i].onDragOver =
  114.         this["menu_btn"+i].onReleaseOutside =
  115.         function() {
  116.         settingsColor.setRGB(btn_up_color);
  117.         }
  118.         this["menu_btn"+i].onPress =
  119.         this["menu_btn"+i].onDragOver =
  120.         this["menu_btn"+i].onDragOut =
  121.         function() {
  122.           settingsColor.setRGB(btn_down_color);
  123.         }
  124.  
  125.         // inkrementieren
  126.         i++;
  127.         btn_amount--;
  128. }
  129.  
  130. // textformat für alle generierten textfelder setzen
  131. var e=0;
  132. while (e < btn_names.length) {
  133.     this["btn_txt"+e].setTextFormat (formatObj);
  134.     e++;
  135. }
Angehängte Dateien
Dateityp: zip dynamic_menue8.zip (4,6 KB, 29x aufgerufen)
  Mit Zitat antworten
Alt 30-11-2004, 19:25   #4 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hi!

du musst für jeden mc ein eigenes settinColor mit geben:
ActionScript:
  1. this["menu_btn"+i].settingsColor = new Color(["menu_btn"+i]);
  2. this["menu_btn"+i].onRollOver =
  3. this["menu_btn"+i].onRelease =
  4.   function() {
  5.     this.settingsColor.setRGB(btn_over_color);
  6.   }
  7. //...usw...
  8.  

sonst würde die variable settingColor einmal existieren und würde als ziel den letzten mc haben... aber du willst ja für jeden mc die farbe ändern können.. also gibste jedem nen color objekt mit und sprichst es dann im Mausereigniss mit this.settingColor an!

grz
pape
pape ist offline   Mit Zitat antworten
Alt 13-12-2004, 18:27   #5 (permalink)
Aushilfsflasher
 
Registriert seit: Aug 2004
Beiträge: 123
Jetzt hab ich aber auch mal was... ;)

Könnt ihr mir mal nen Tipp geben wie ich dynamisch Button-MCs erstellen kann?

So in der Art der Button mit dem Namen in dem MC mit der Position und dem onRelease-Event...

Wäre echt super wenn Ihr mir mal ein kleines Tut oder so empfehlen könntet.

Oder vielleicht nen Beispielcode

Danke schon mal!!!

Gruß,

X-Hale

Anhang: Danke, aber habs mittlerweile selber hinbekommen ;-)

Geändert von djx-hale (13-12-2004 um 21:11 Uhr)
djx-hale 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 08:08 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele