• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-06-2003, 10:47   #1 (permalink)
Chaosbruder
 
Registriert seit: Sep 2001
Ort: Esslingen
Beiträge: 107
Probleme beim Anlegen von Objekten

Hallo Forum!

Ich habe beimAnlegen von Objekten gewisse Probleme und komme einfach nicht weiter. Ich nutze dazu folgende Funktion:

ActionScript:
  1. function makeVisor(name, depth)
  2. {
  3.     duplicateMovieClip(visor,name, depth);
  4. }
  5.  
  6. function parseImport()
  7. {
  8.     var theImport   =  new Array()
  9.     theImport      =  importData.split("|");
  10.     theImport.pop();
  11.     importNum      =  parseInt(theImport.length);
  12.     var data        =   new Array();
  13.     for(index=0;index<parseInt(theImport.length);index++)
  14.     {
  15.         var temp        =   new Array();
  16.         temp            =   theImport[index].split(";"); //subaufsplittung des strings
  17.         makeVisor("data"+(index+1), index);
  18.         setProperty("data"+(index+1), _x, 150+(index*250));
  19.         setProperty("data"+(index+1), _y, 150);
  20.         eval("data"+(index+1)+".minimum=temp[1]");
  21.         eval("data"+(index+1)+".green=temp[2]");
  22.         eval("data"+(index+1)+".yellow=temp[3]");
  23.         eval("data"+(index+1)+".maximum=temp[4]");
  24.         eval("data"+(index+1)+".dataName='"+temp[5]+"'");
  25.         eval("data"+(index+1)+".minimumVal=parseInt(temp[6])");
  26.         eval("data"+(index+1)+".greenVal=parseInt(temp[7])");
  27.         eval("data"+(index+1)+".yellowVal=parseInt(temp[8])");
  28.         eval("data"+(index+1)+".maximumVal=parseInt(temp[9])");
  29.         eval("data"+(index+1)+".actVal=parseInt(temp[10])");
  30.     }
  31.    
  32.     globaldata = theImport.length;
  33. }

Zur Erklärung: theImport ist eine Variable, die per JS an mein swf übergeben wird. Darin sind alle benötigen Daten abgespeichert.
Das aufsplitten des Strings in ein Array funktioniert auch. Mein Problem ist, das die Funktion parseImport zwar alle Instanzen sauber anlegt, jedoch nicht die Variablen der Instanzen füllt.

Wenn ich die Instanzen hart im Code anlege, funktioniert es komischerweise...

ActionScript:
  1. makeVisor("data1", 1);
  2. data1._x = 150;
  3. data1._y = 150;
  4.  
  5. data1.minimum      =  "";
  6. data1.green         =   "0%";
  7. data1.yellow        =   "-5%";
  8. data1.maximum      =  "";
  9. data1.dataName    = "Ist-Buget";
  10. data1.minimumVal    =   0.5
  11. data1.greenVal    = 0;
  12. data1.yellowVal  =    -0.05;
  13. data1.maximumVal    =   -0.5;
  14. data1.actValue    = -0.03;
  15. data1.dataPostfix   =  " %";
  16. data1.multiplicator =    100;
  17. makeVisor("data2", 2);
  18. data2._x = 400;
  19. data2._y = 150;
  20. data2.minimum      =  "";
  21. data2.green         =   "0%";
  22. data2.yellow        =   "-5%";
  23. data2.maximum      =  "";
  24. data2.dataName    = "Ist-Buget 2";
  25. data2.minimumVal    =   0.5
  26. data2.greenVal    = 0;
  27. data2.yellowVal  =    -0.05;
  28. data2.maximumVal    =   -0.5;
  29. data2.actValue    = -0.07;
  30. data2.dataPostfix   =  " %";
  31. data2.multiplicator =    100;
  32. makeVisor("data3", 3);
  33. data3._x = 650;
  34. data3._y = 150;
  35. data3.minimum      =  "";
  36. data3.green         =   "0%";
  37. data3.yellow        =   "-5%";
  38. data3.maximum      =  "";
  39. data3.dataName    = "Ist-Buget 3";
  40. data3.minimumVal    =   0.5
  41. data3.greenVal    = 0;
  42. data3.yellowVal  =    -0.05;
  43. data3.maximumVal    =   -0.5;
  44. data3.actValue    = 0.03;
  45. data3.dataPostfix   =  " %";
  46. data3.multiplicator =    100;

Kann mir da jemand Helfen? Ich bin mit meinem Latein am Ende

Gruss, Pymonte
__________________
Wo ich bin, herrscht Chaos!!!!
...aber man kann ja nicht überall sein
Dr.Pymonte ist offline   Mit Zitat antworten
Alt 18-06-2003, 11:29   #2 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
also deine eval geschichte.. schaut etwas komisch aus...

wo ist den das data object ersellt? auf root?
ActionScript:
  1. _root['data'+(index+1)].minimum = temp[1];
so setzt den pfad dynamisch zusammen....

rest habe ich mir nun nicht angesehen...
müsste ich mich erst mal reindenken in deinen stil

nur eines noch...
function makeVisor(name, depth)
{
duplicateMovieClip(visor,name, depth);
}

wo kommt den 'visor' her?
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)

Geändert von Scrawer (18-06-2003 um 11:32 Uhr)
Scrawer ist offline   Mit Zitat antworten
Alt 18-06-2003, 12:32   #3 (permalink)
Chaosbruder
 
Registriert seit: Sep 2001
Ort: Esslingen
Beiträge: 107
Hi Scrawer!

Danke für deine Hilfe, das war es...


Gruss, Pymonte
__________________
Wo ich bin, herrscht Chaos!!!!
...aber man kann ja nicht überall sein

Geändert von Dr.Pymonte (18-06-2003 um 12:37 Uhr)
Dr.Pymonte ist offline   Mit Zitat antworten
Alt 18-06-2003, 12:52   #4 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
ok... ich habs mal ein wenig umgebaut.. da es sehr eigen ist

ActionScript:
  1. visor  = _root.masterMovieClip; // targetPath zu dem mc
  2.  
  3. function makeVisor(name, depth, x, y, data)
  4. { 
  5.         var target = duplicateMovieClip(visor, name, depth);
  6.        
  7.         with (target)
  8.         {
  9.                 minimum     = data[1];
  10.                 green       = data[2];
  11.                 yellow      = data[3];
  12.                 maximum     = data[4];
  13.                 dataName    = data[5];
  14.                 minimumVal  = parseInt(data[6]);
  15.                 greenVal    = parseInt(data[7]);
  16.                 yellowVal   = parseInt(data[8]);
  17.                 maximumVal  = parseInt(data[9]);
  18.                 actVal      = parseInt(data[10]);
  19.         }
  20. }
  21.  
  22. function parseImport()
  23. {
  24.         var theImport = importData.split("|");
  25.  
  26.         for(i=1; i<theImport.length; i++)
  27.         {
  28.                 var temp = theImport[i].split(";"); //subaufsplittung des strings
  29.                
  30.                 makeVisor("data"+i, i, 150+(i*250), 150, temp);
  31.         }   
  32. }

so wäre es sicher einfacher....
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)

Geändert von Scrawer (18-06-2003 um 12:53 Uhr)
Scrawer 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 01:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele