Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-10-2003, 21:53   #1 (permalink)
NIXXER
 
Benutzerbild von Flashbekloppter
 
Registriert seit: May 2002
Beiträge: 73
Question Dynamische Bewegung

gudn abend profis...
hab mal ne frage.
hab mal ein kleines movie gebaut, indem es drei schaltflächen gibt, die beeinflussen jeweils 9 MCs auf der bühne. Also wenn man auf einen button klickt, dann verschieben sich die 9 MCs zu einer bestimmten x und y position. Das gilt für alle buttons. das geschieht aber ziemlich abrupt. also wenn ich auf einen button klicke, dann sind die MCs schon auf der zugewiesenen position. kann man das auch so umscripten, dass man sieht, wie sich die 9 MCs zu ihren positionen bewegen???

könnt euch mal die fla saugen und mal reinschauen.
das actionscript liegt in einer externen datei, die über #include ins fla geladen wird.

bitte hilfe.
Angehängte Dateien
Dateityp: zip dynamische bewegung.zip (3,5 KB, 22x aufgerufen)
Flashbekloppter ist offline   Mit Zitat antworten
Alt 17-10-2003, 21:59   #2 (permalink)
idi
Neuer User
 
Benutzerbild von idi
 
Registriert seit: Jun 2003
Ort: Bitburg
Beiträge: 89
du willst also praktisch den weg anzeigen den die kästchen zurücklegen um an den neuen platz zu kommen?
__________________
werbefuchs
idi ist offline   Mit Zitat antworten
Alt 18-10-2003, 00:39   #3 (permalink)
NIXXER
 
Benutzerbild von Flashbekloppter
 
Registriert seit: May 2002
Beiträge: 73
Cool

@idi
jepp ganz genau so.
ist das sehr codelastig?


@alle
eine frage hätte ich da noch: wer sich die fla gesaugt hat, der sieht dass auf knopfdruck den MCs eine feste position zugewiesen wird. kann man auch den MCs auch nach dem zufallsprinzip je eine position zuweisen??? so wirkt das ganze etwas dynamischer.




ich tu meine fla hier nochmal zum download hin, aber diesmal mit dem actionscript in der fla. hab gemerkt, dass das bei so kleinen filmen ziemlich unpraktisch ist, weil es doch etwas umständlich mit film testen und so ist.
Angehängte Dateien
Dateityp: zip dynamische bewegung.zip (3,3 KB, 9x aufgerufen)
Flashbekloppter ist offline   Mit Zitat antworten
Alt 18-10-2003, 11:47   #4 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
mach einen button auf die bühne instanzname=form
mach einen mc auf die bühne instanzname=quadrat1 (w40*h40)
ActionScript:
  1. // bewegung der einzelnen mc.erst in x und dann in y richtung
  2. MovieClip.prototype.move=function(xp,yp){
  3.             this.flag=0
  4.             this.wertx =xp<this._x ? -5 : 5 //schrittweite x
  5.             this.werty =yp<this._y ? -5 : 5 //schrittweite y
  6.             this.onEnterFrame = function() {
  7.                 if(this.flag==0){
  8.                 this._x==xp ? this.flag=1 : this._x+=this.wertx
  9.                 }
  10.                 if(this.flag==1){
  11.                 this._y==yp ? delete this.onEnterFrame : this._y+=this.werty
  12.                 }
  13.                 }
  14. }
  15. // array wird mit möglichen x und y positionen gefüllt
  16. function init(){
  17. posArray=[]
  18. xpos=0    // x anfangs wert
  19. ypos=80 // y anfangs wert
  20. for(var j=0;j<4;j++){      //zeilen anzahl
  21. for(var i=0;i<7;i++){      //spalten anzah
  22. posArray.push(xpos+i*40)// mc weite
  23. posArray.push(ypos+j*40);   //mc höhe
  24. }}}
  25. // zufallswerte holen und aus dem array löschen(keine gleichen pos.)
  26. function werte_holen(){
  27.     var l=random(posArray.length/2)
  28.      xpos=posArray[l*2]
  29.      ypos=posArray[l*2+1]
  30.     posArray.splice(l*2,2);
  31.     return xpos,ypos    // zurück geben
  32. }
  33. //-----------------
  34. init()
  35. // mc duplizieren
  36. for(var i=2;i<10;i++){
  37. this.quadrat1.duplicateMovieClip("quadrat"+i,i);
  38. }
  39. //-----------------
  40. //Button neue form
  41. form.onPress = function() {
  42.     for(var i=1;i<10;i++){
  43.     werte_holen()
  44.     _root["quadrat"+i].move(xpos,ypos)
  45.     }
  46.     init()
  47. }
wenn fragen, fragen
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 18-10-2003, 11:52   #5 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
sorry fla vergessen.
Angehängte Dateien
Dateityp: zip dynamische bewegung.zip (3,8 KB, 51x aufgerufen)
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 18-10-2003, 13:45   #6 (permalink)
NIXXER
 
Benutzerbild von Flashbekloppter
 
Registriert seit: May 2002
Beiträge: 73
@HAY
das sieht ziemlich genial aus, ist aber nicht das was ich eigentlich gemeint habe (hab in den threads nicht richtig mein problem geschildert...großes sorry ) dass sich die buttons in einem raster bewegen ist zwar schon richtig genial (nicht dass du dir umsionst so viel mühe gemacht hast - werde das noch mal aufgreifen und irgendwo nochmal einbinden und deinen namen drunter schreiben ), aber ich hatte eigentlich eine einfache von A nach B bewegung im sinn. aber zum verständnis nochmal, wenn es dir nicht so viel ausmacht, könntest du mir mal den teil von deinem script einmal schritt für schritt erklären??? wäre echt nett, damit ich das mal verstehe.
ActionScript:
  1. // bewegung der einzelnen mc.erst in x und dann in y richtung
  2. MovieClip.prototype.move=function(xp,yp){
  3.         this.flag=0
  4.         this.wertx =xp<this._x ? -5 : 5 //schrittweite x
  5.         this.werty =yp<this._y ? -5 : 5 //schrittweite y
  6.         this.onEnterFrame = function() {
  7.                 if(this.flag==0){
  8.                         this._x==xp ? this.flag=1 : this._x+=this.wertx
  9.                 }
  10.                 if(this.flag==1){
  11.                         this._y==yp ? delete this.onEnterFrame : this._y+=this.werty
  12.                 }
  13.         }
  14. }

dass den quadraten zufällig irgeneine positione zugewiesen wird ist zwar toll, aber nicht dass was ich gemeint habe (dass ich mich nicht richtig ausdrücken kann... ). die formen, die aus den quadraten erzeugt werden sollen beibehalten werden.
ich hab mir das so vorgestellt.
man könnte doch mal zwei "Variablen-Pools" definieren. einen "Pool" für die X positionen und einen für die Y positionen. aus diesen "Pools" soll sich dann flash per zufallsprinzip (geht das mit Math.random()???) für jedes quadrat eine X un eine Y position heraussuchen.

anstatt so:
ActionScript:
  1. //Button "basisform"
  2. basisform.onPress = function() {
  3.     quadrat1._x = 0;
  4.     quadrat1._y = 160;
  5.     quadrat2._x = 0;
  6.     quadrat2._y = 200;
  7.     quadrat3._x = 40;
  8.     quadrat3._y = 200;
  9.     quadrat4._x = 80;
  10.     quadrat4._y = 200;
  11.     quadrat5._x = 120;
  12.     quadrat5._y = 200;
  13.     quadrat6._x = 160;
  14.     quadrat6._y = 200;
  15.     quadrat7._x = 200;
  16.     quadrat7._y = 200;
  17.     quadrat8._x = 240;
  18.     quadrat8._y = 200;
  19.     quadrat9._x = 240;
  20.     quadrat9._y = 160;
  21. };

dann vielleicht so:
ActionScript:
  1. //Button "basisform"
  2. basisform.onPress = function() {
  3. //Jetzt werden die "Variablen-Pools" definiert
  4.     PoolX = 0, 40, 80, 120, 160, 200, 240;
  5.     PoolY = 160, 200;
  6.    
  7.     quadrat1._x = Math.random (PoolX);
  8.     quadrat1._y = Math.random (PoolY);
  9.     quadrat2._x = Math.random (PoolX);
  10.     quadrat2._y = Math.random (PoolY);
  11.     quadrat3._x = Math.random (PoolX);
  12.     quadrat3._y = Math.random (PoolY);
  13.     quadrat4._x = Math.random (PoolX);
  14.     quadrat4._y = Math.random (PoolY);
  15.     quadrat5._x = Math.random (PoolX);
  16.     quadrat5._y = Math.random (PoolY);
  17.     quadrat6._x = Math.random (PoolX);
  18.     quadrat6._y = Math.random (PoolY);
  19.     quadrat7._x = Math.random (PoolX);
  20.     quadrat7._y = Math.random (PoolY);
  21.     quadrat8._x = Math.random (PoolX);
  22.     quadrat8._y = Math.random (PoolY);
  23.     quadrat9._x = Math.random (PoolX);
  24.     quadrat9._y = Math.random (PoolY);
  25. };
ich habe das script aber nicht getstet. es könnte fehler haben oder nicht funktionieren.
außerdem sollte jedes quadrat in seinen X und Y positionen ein unikat sein. also kein quadrat darf die selben koordinaten wie ein anderes quadrat haben.

ich hoffe, dass jeder versteht, was ich hier geschrieben habe
__________________
einen schönen tag wünsch ich noch
Flashbekloppter ist offline   Mit Zitat antworten
Alt 18-10-2003, 14:01   #7 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
wenn ich dich jetzt richtig verstanden habe willst du mit denn
kästchen eine beliebigen anzahl von vorgefertigten formen zusammenstellen.
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 18-10-2003, 14:09   #8 (permalink)
NIXXER
 
Benutzerbild von Flashbekloppter
 
Registriert seit: May 2002
Beiträge: 73
Zitat:
Geschrieben von HAY

wenn ich dich jetzt richtig verstanden habe willst du mit denn
kästchen eine beliebigen anzahl von vorgefertigten formen zusammenstellen.
das was ich mir vorstelle könnte man auch zufallsbewegung nach parametern nennen. ich habe eine variable für meine X werte und meine Y werte. aus dieser variable zieht sich flash dann nach dem zufallsprinzip dann die koordinaten. die formen bleiben jedoch immer gleich, weil ich ja die x und y werte in den variablen definiert habe. und wie gesagt, die quadrate dürfen halt nicht die selben koordinaten haben. also wenn man auf die buttons klickt, sollen sich nur die positionen der quadrate verändern, aber dass sich immernoch die selbe form ergibt.

ist jetzt alles verständlich?
__________________
einen schönen tag wünsch ich noch
Flashbekloppter ist offline   Mit Zitat antworten
Alt 18-10-2003, 14:45   #9 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
so vieleicht
ActionScript:
  1. formen=[]
  2. formen[0]=[0,160,0,200,40,200,80,200,120,200,160,200,200,200,240,200,240,160]
  3. formen[1]=[40,80,40,120,40,160,40,200,80,120,120,80,120,120,120,160,120,200]
  4. formen[2]=[0,120,40,120,80,120,120,120,160,120,120,80,120,160,120,200,200,120]
  5. // bewegung der einzelnen mc.erst in x und dann in y richtung
  6. MovieClip.prototype.move=function(xp,yp){
  7.             this.flag=0
  8.             this.wertx =xp<this._x ? -5 : 5 //schrittweite x
  9.             this.werty =yp<this._y ? -5 : 5 //schrittweite y
  10.             this.onEnterFrame = function() {
  11.                 if(this.flag==0){
  12.                 this._x==xp ? this.flag=1 : this._x+=this.wertx
  13.                 }
  14.                 if(this.flag==1){
  15.                 this._y==yp ? delete this.onEnterFrame : this._y+=this.werty
  16.                 }
  17.                 }
  18. }
  19. // zufallswerte holen
  20. function werte_holen(){
  21.     var l=random(formen.length)
  22.     trace("Form "+l+" wird dargestellt")
  23.     for(var i=0;i<9;i++){
  24.      xpos=formen[l][i*2]
  25.      ypos=formen[l][i*2+1]
  26.     _root["quadrat"+(i+1)].move(xpos,ypos)
  27.     }
  28. }
  29. //-----------------
  30. // mc duplizieren
  31. for(var i=2;i<10;i++){
  32. this.quadrat1.duplicateMovieClip("quadrat"+i,i);
  33. }
  34. //-----------------
  35. //Button neue form
  36. form.onPress = function() {
  37.     werte_holen()
  38. }
__________________
gruß Harry

Geändert von HAY (18-10-2003 um 14:47 Uhr)
HAY ist offline   Mit Zitat antworten
Alt 18-10-2003, 15:28   #10 (permalink)
NIXXER
 
Benutzerbild von Flashbekloppter
 
Registriert seit: May 2002
Beiträge: 73
hab diese fehlermeldung gekriegt:

Szene=Szene 1, Ebene=Ebene 1, Bild=1: Zeile 3: ]' oder ',' erwartet
00,200,200,240,200,240,160]

hab ich korrigiert, aber es passiert jetzt gar nichts mehr.
auf was muss ich jetzt eigentlich das script legen? auf die buttons, in den ersten frame der zeitleiste oder auf die quadrate?
__________________
einen schönen tag wünsch ich noch
Flashbekloppter ist offline   Mit Zitat antworten
Alt 18-10-2003, 15:37   #11 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
in deinem editor muß
formen[0]=[..........................................] in einer zeile
formen[1]=[..........................................] in einer zeile
formen[2]=[..........................................] in einer zeile

das script in den ersten frame der HZL.
button und ein mc drauf.
__________________
gruß Harry

Geändert von HAY (18-10-2003 um 15:39 Uhr)
HAY 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:21 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele