Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-06-2005, 19:04   #1 (permalink)
Neuer User
 
Benutzerbild von henrik.wagner
 
Registriert seit: May 2005
Beiträge: 5
Keine Array Werte in Funktion

Hallo Flasher, hoffe mir kann jemand helfen,
ich möchte eine For-Schleife erstellen, die aus einem Array Werte ausliest und damit RollOver-Funktionen erstellt. Hier die Schleife soweit sie momentan ist, in gekürzter Fassung:
ActionScript:
  1. state_array =["schleswigholstein","mecklenburg"];
  2.  
  3. for(i=0;i<state_array.length;i++){
  4.  
  5. this[state_array[i]+"_mask"].onRollOver = function() {         
  6. this[state_array[i]+"_mask_over"]._alpha = 100; //Hier ist das Problem, das Array ist undefined an der Stelle. "schleswigholstein_mask_over" ist der name des movies der geändert werden soll
  7. }
  8. this[state_array[i]+"_mask"].onRollOut = function() {
  9. this[state_array[i]+"_mask_over"]._alpha = 90//Hier ist das Problem, das Array ist undefined an der Stelle
  10. }
  11.  
  12. }
Es geht um eine Karte in der die Bundesländer mouseover-Effekte (alpha) bekommen. Wenn ich innerhalb der "OnRollOver"-Funktion eine Variable wie zum Beispiel x benutze, wird leider immer nur die letzte Schleife in x gespeichert und somit der letzte Wert des Arrays für die Funktion benutzt.
Hoffe das Problem ist klar erläutert, vielleicht kann jemand helfen?!

Henrik

Geändert von henrik.wagner (11-06-2005 um 19:05 Uhr)
henrik.wagner ist offline   Mit Zitat antworten
Alt 11-06-2005, 19:09   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Dat muss so...
PHP-Code:
var state_array = [ "schleswigholstein""mecklenburg" ];
for (var 
0state_array.lengthi++) { 
    var 
mc thisstate_array] + "_mask" ];
    
mc.onRollOver = function() {     
         eval( 
this._name "_over" )._alpha 100
    }; 
    
mc.onRollOut = function() { 
         eval( 
this._name "_over" )._alpha 90
    }; 

__________________
ERROR: Signature is too large

Geändert von rendner[i] (11-06-2005 um 19:30 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 11-06-2005, 19:23   #3 (permalink)
Neuer User
 
Benutzerbild von henrik.wagner
 
Registriert seit: May 2005
Beiträge: 5
Isch werd bekloppt, der geht!

Jaaaaaaa vielen Dank, das hat mir sehr weitergeholfen, funktioniert einwandfrei!

Toll, die schnelle Antwort!!
henrik.wagner ist offline   Mit Zitat antworten
Alt 11-06-2005, 23:06   #4 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
liegt daran dass this[state_array[i]+"_mask_over"] dann bei jedem rollOver geparst wird, und i dann immer am schluss ist...

mit eval() wird das ganze dann fix in der function gespeichert...

seh ich das richtig?
__________________
Some Flash Worx
Alphanimal ist offline   Mit Zitat antworten
Alt 12-06-2005, 00:19   #5 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Servus.
Ihr könntet auch das "i" aus der for-schleife in den Buttons speichern!
PHP-Code:
var mcAry = ['eins''zwei''drei'];
for (var 
0i<mcAry.lengthi++) {
    var 
mc=_root[mcAry[i]+'_mask'];
    
mc.mem i;
    
mc.onRollOver=function(){
        
trace(mcAry[this.mem]+"_over")
    }

__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 12-06-2005, 10:13   #6 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Zitat:
Zitat von Alphanimal
liegt daran dass this[state_array[i]+"_mask_over"] dann bei jedem rollOver geparst wird, und i dann immer am schluss ist...

mit eval() wird das ganze dann fix in der function gespeichert...

seh ich das richtig?
eval(ausdruck)

Parameter
ausdruck Ein String, der den Namen der abzurufenden Variablen oder Eigenschaft bzw. des abzurufenden Objekts oder Movieclips enthält.

Rückgaben
Ein Wert, eine Referenz auf ein Objekt bzw. einen Movieclip oder undefined.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 12-06-2005, 20:13   #7 (permalink)
Neuer User
 
Benutzerbild von henrik.wagner
 
Registriert seit: May 2005
Beiträge: 5
Koordinaten aus einem Array in Funktion

Ich bin's noch mal mit meinem Array-Werte Problem. Das erste Problem mit den Namen und der RollOver-Funktion wurde ja wunderbar gelöst. Nun will ich allerdings noch Koordinaten aus einem anderen Array dynamisch in eine Funktion einbauen, und da ist wieder das Problem mit dem "Undefined". Vielleicht hat jemand ne Antwort:
ActionScript:
  1. AnderesArray = [...];
  2. state_zoom_coords =["-2.9","2.7","1.451","2.764"];
  3.  
  4. for(i=0;i<AnderesArray.length;i++){
  5.  
  6.  
  7. this[state_array[i]+"_mask"].onRelease = function()
  8. {       
  9.    
  10.             _root.move_in._x = _root.move_in._x*-2.9; // <- hier würde ich gerne die Zahlen z.B. "-2.9" durch soetwas wie "this[state_zoom_coords[i]]" ersetzen
  11.         _root.move_in._y = _root.move_in._y*2.7;   
  12. }
  13. }

Vielleicht hat noch jemand ne Idee, danke schon mal
ps: Hallo RustyCake, ich habe Deine Variante ausprobiert, doch diese bezieht sich sicher nur auf den mc-Namen?!

Geändert von henrik.wagner (12-06-2005 um 20:15 Uhr)
henrik.wagner ist offline   Mit Zitat antworten
Alt 12-06-2005, 20:20   #8 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Nein eigentlich nicht, man könnte auch dieses Problem damit lösen!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 12-06-2005, 21:12   #9 (permalink)
Neuer User
 
Benutzerbild von henrik.wagner
 
Registriert seit: May 2005
Beiträge: 5
Trotzdem Danke

Hallo RustyCake, hab nun fast alles versucht mit den paar Zeilen Code, ich probier das später noch mal, trotzdem Danke für Deine Antwort, Gruß Henrik
henrik.wagner ist offline   Mit Zitat antworten
Alt 12-06-2005, 21:36   #10 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
So in der richtung würde ich des machen!
Um genaueres zu schreiben müßte man die genauen anforderungen kennen.
PHP-Code:
var mcAry = [['eins'1010], ['zwei'1515], ['drei'2020]];
for (var 
0i<mcAry.lengthi++) {
    var 
mc _root[mcAry[i][0]+'_mask'];
    
mc.mem i;
    
mc.onRollOver = function() {
        var 
mc_u _root[this._name+'_over'];
        
mc_u._x += mcAry[this.mem][1];
        
mc_u._y += mcAry[this.mem][2];
        
mc_u._alpha 50;
    };

Angehängte Dateien
Dateityp: zip ary_cord.zip (2,3 KB, 3x aufgerufen)
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 13-06-2005, 15:02   #11 (permalink)
Neuer User
 
Benutzerbild von henrik.wagner
 
Registriert seit: May 2005
Beiträge: 5
Array in For Schleife geht wunderbar

Oh, vielen Dank RustyCake! Sogar eine Fla auf die Schnelle, hat mir sehr gut weitergeholfen.
Hier ist der link zum Stand der Dinge meiner Karte, nur für den Fall, dass Du mal schauen willst:

http://web82.cyberwebserver-08.de/wdw/map/map_1.html

Die mouseOver-Effekte funzen nun aus der for-Schleife, nun müssen noch die Koordinaten für die restlichen Bundesländer in das Array, und und und...

Also dann,
schöne Grüße aus Oslo

Henrik
henrik.wagner ist offline   Mit Zitat antworten
Alt 13-06-2005, 15:23   #12 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Sieht doch schon ganz gut aus, wenn Du hilfe brauchst melde Dich
Gruß aus Minga
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake 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 18:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele