Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-04-2004, 09:09   #1 (permalink)
---
 
Benutzerbild von kakktus
 
Registriert seit: Apr 2002
Beiträge: 2.054
Red face dynamische Bewegung...Hilfee!!

Hallo!
Habe volgendes Problem:
Ich möchte auf der Bühne mehrere mc's dynamisch bewegen bzw. scalieren.
Das geht auch ohne Probleme...nur ist meine CPU-Auslastung ständig bei 100% :-((
Hat vielleicht irgendwer eine Idee wie man es besser machen könnte??

Hier der Code
ActionScript:
  1. sp = 7;
  2. Movieclip.prototype.maske = function(x, w, speed) {
  3.     this.onEnterFrame = function() {
  4.         delta_x = x-this._parent._x;
  5.         this._parent._x += delta_x/speed;
  6.         //
  7.         delta_w = w-this._width;
  8.         this._width += delta_w/speed;
  9.         updateAfterEvent();
  10.     };
  11. };
  12. //--------------------------------->>>>
  13. // Roll Over
  14. mc_x.mc_1.but.onRollOver = function() {
  15.     mc_x.mc_1.mask.maske(400, 500, sp);
  16.     mc_x.mc_2.mask.maske(112.5, 75, sp);
  17.     mc_x.mc_3.mask.maske(686.5, 75, sp);
  18. };
  19. mc_x.mc_1.but.onRollOut = function() {
  20.     mc_x.mc_1.mask.maske(400, 160, sp);
  21.     mc_x.mc_2.mask.maske(240, 160, sp);
  22.     mc_x.mc_3.mask.maske(560, 160, sp);
  23. };
  24. //----------------------------->>
  25. mc_x.mc_2.but.onRollOver = function() {
  26.     mc_x.mc_2.mask.maske(325, 500, sp);
  27.     mc_x.mc_1.mask.maske(612.5, 75, sp);
  28.     mc_x.mc_3.mask.maske(687.5, 75, sp);
  29. };
  30. mc_x.mc_2.but.onRollOut = function() {
  31.     mc_x.mc_2.mask.maske(240, 160, sp);
  32.     mc_x.mc_1.mask.maske(400, 160, sp);
  33.     mc_x.mc_3.mask.maske(560, 160, sp);
  34. };
  35. //----------------------------->>
  36. mc_x.mc_3.but.onRollOver = function() {
  37.     mc_x.mc_3.mask.maske(475, 500, sp);
  38.     mc_x.mc_1.mask.maske(187.5, 75, sp);
  39.     mc_x.mc_2.mask.maske(112.5, 75, sp);
  40. };
  41. mc_x.mc_3.but.onRollOut = function() {
  42.     mc_x.mc_3.mask.maske(560, 160, sp);
  43.     mc_x.mc_2.mask.maske(240.2, 160, sp);
  44.     mc_x.mc_1.mask.maske(400, 160, sp);
  45. };
  46. //----------------------------->>
  47. mc_x.mc_4.but.onRollOver = function() {
  48.     mc_x.mc_4.mask.maske(0, 1000, sp);
  49.     mc_x.mc_2.mask.maske(535, 75, sp);
  50.     mc_x.mc_1.mask.maske(610, 75, sp);
  51.     mc_x.mc_3.mask.maske(685, 75, sp);
  52. };
  53. mc_x.mc_4.but.onRollOut = function() {
  54.     mc_x.mc_4.mask.maske(0, 160, sp);
  55.     mc_x.mc_2.mask.maske(240, 160, sp);
  56.     mc_x.mc_1.mask.maske(400, 160, sp);
  57.     mc_x.mc_3.mask.maske(560, 160, sp);
  58. };
  59. //----------------------------->>
  60. mc_x.mc_5.but.onRollOver = function() {
  61.     mc_x.mc_5.mask.maske(800, 1000, sp);
  62.     mc_x.mc_2.mask.maske(112.5, 75, sp);
  63.     mc_x.mc_1.mask.maske(187.5, 75, sp);
  64.     mc_x.mc_3.mask.maske(262.5, 75, sp);
  65. };
  66. mc_x.mc_5.but.onRollOut = function() {
  67.     mc_x.mc_5.mask.maske(800, 160, sp);
  68.     mc_x.mc_2.mask.maske(240, 160, sp);
  69.     mc_x.mc_1.mask.maske(400, 160, sp);
  70.     mc_x.mc_3.mask.maske(560, 160, sp);
  71. };

Daanke!!
kakktus ist offline   Mit Zitat antworten
Alt 15-04-2004, 10:28   #2 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Hi,

soweit ich das sehe, brauchst Du das "updateAfterEvent" garnicht, dass übernimmt ja bereits Dein onEnterFrame.

Dein onEnterFrame solltest Du auch löschen, wenn Du es nicht mehr benötigst...z.B. wenn Dein MC am Ziel angekommen ist.

ActionScript:
  1. delete this.onEnterFrame

Deine onRollOver Funktionen...würde ich in eine zusammengefasste prototype funktion auslagern.

ActionScript:
  1. MovieClip.prototype.roller = function(){
  2. this.onRollOver = function(mc,wert1,wert2,wert3){
  3.         this["mc_x."+mc].mask.maske(wert1,wert2,wert3);
  4. }
  5. }
  6.  
  7. // zuweisung der funktion auf deine buttons:
  8. mc_x.mc_1.but.roller(this,500,500,1);

Das ist nur eine Idee von mir, funktion ist nicht getestet.
Vielleicht hilft es Dir ja ein weiter.
__________________
Gruß
PIXIX
PIXIX ist offline   Mit Zitat antworten
Alt 15-04-2004, 11:20   #3 (permalink)
---
 
Benutzerbild von kakktus
 
Registriert seit: Apr 2002
Beiträge: 2.054
Danke :-)
Mit dem update.. stimmt das ist echt überflüssig.
Mit dem delete hat auch geklapt.
aber was bringt mir das auslagern der RollOver function??

Geändert von kakktus (15-04-2004 um 11:24 Uhr)
kakktus ist offline   Mit Zitat antworten
Alt 15-04-2004, 11:45   #4 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
an erster Stelle natürlich weniger Script und an zweiter performance optimierung.

Ist denn Deine CPU jetzt nicht mehr zu 100% ausgelastet? Nach den veränderungen?
__________________
Gruß
PIXIX
PIXIX ist offline   Mit Zitat antworten
Alt 15-04-2004, 12:23   #5 (permalink)
---
 
Benutzerbild von kakktus
 
Registriert seit: Apr 2002
Beiträge: 2.054
Also mit der delete.this.onEnterFrame geht die CPU auslastung nach erreichen des zielwertes ca. auf 4% zurück. Ich denke das ist ok :-)...oder??
kakktus ist offline   Mit Zitat antworten
Alt 15-04-2004, 12:50   #6 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Das ist ok.

Aber dieses Ergebnis kannst Du natürlich nicht verallgemeinern, nicht jeder User wird so einen schnellen?! Rechner wie Du haben.
__________________
Gruß
PIXIX
PIXIX ist offline   Mit Zitat antworten
Alt 15-04-2004, 13:21   #7 (permalink)
---
 
Benutzerbild von kakktus
 
Registriert seit: Apr 2002
Beiträge: 2.054
Naja 795Mhz ist jetzt nicht gerade superschnell. Und wer da noch drunter liegt hat sowieso keine Daseinsberechtigung...lach
nein aber ich denke der Standart ist etwas höher;-) also hoffe ich das es geht :-))
Und vielen Dank für die Hilfe :-))
kakktus ist offline   Mit Zitat antworten
Alt 15-04-2004, 15:13   #8 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Wenn es geholfen hat, bitte
__________________
Gruß
PIXIX
PIXIX 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