Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-08-2003, 18:35   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 12
Flash Draw Api

Hallo Leutz !

Habe folgendes Problem:

Ich erstelle per AS ein Quadrat, welches mit einem Farbverlauf gefüllt wird. Funktioniert soweit auch alles. ABER: Nun will ich den Farbverlauf dynamisch über ne Schleife verändern, was rein technisch gesehen auch zu funktionieren scheint, aber der Film wird erst angezeigt, wenn der Zähler auf seinem Endwert steht (also 255)... Was ist das Problem ??

var farben = new Array(0x6699FF,0x0656AB,0x6699FF);
var farbAlpha = new Array(100,100,100);
var matrix = new Object();
matrix.matrixType = "box";

matrix.x = 100;
matrix.y = 100;
matrix.w = 200;
matrix.h = 200;
matrix.r = Math.PI/2;

for(a=0;a<255;a++)
{
verhaeltnis = new Array(0,a,255);
this.beginGradientFill("linear",farben,farbAlpha,v erhaeltnis,matrix);
this.moveTo(100,100);
this.lineTo(300,100);
this.lineTo(300,300);
this.lineTo(100,300);
this.lineTo(100,100);
this.endFill();
}

Wie gesagt, rein technisch scheint es soweit zu funktionieren, nur die Ausgabe erfolgt erst, wenn a auf 255 steht... Kapiert net...

Gruß
Mark
markmn3 ist offline   Mit Zitat antworten
Alt 16-08-2003, 18:48   #2 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
...ist ja auch logish, deir For-Schleife wird ja auch in einem Frame abgearbeitet, natürlich siehst Du dan nur das Endergebnis. Das musst Du so machen:
ActionScript:
  1. var farben = new Array(0x6699FF,0x0656AB,0x6699FF);
  2. var farbAlpha = new Array(100,100,100);
  3. var matrix = new Object();
  4. matrix.matrixType = "box";
  5.  
  6. matrix.x = 100;
  7. matrix.y = 100;
  8. matrix.w = 200;
  9. matrix.h = 200;
  10. matrix.r = Math.PI/2;
  11. a=0;
  12. this.onEnterFrame=function(){
  13.     if(a<=255){
  14. verhaeltnis = new Array(0,a,255);
  15. this.clear();
  16. this.beginGradientFill("linear",farben,farbAlpha,verhaeltnis,matrix);
  17. this.moveTo(100,100);
  18. this.lineTo(300,100);
  19. this.lineTo(300,300);
  20. this.lineTo(100,300);
  21. this.lineTo(100,100);
  22. this.endFill();
  23. a++
  24. }else{
  25.     delete(this.onEnterFrame);
  26. }
  27. }

Gruß

Alois

Edit: this.clear() eingefügt, das spart ressourcen
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-

Geändert von Alois (16-08-2003 um 18:50 Uhr)
Alois ist offline   Mit Zitat antworten
Alt 18-08-2003, 10:37   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2003
Beiträge: 12
Jo !

Cool, besten Dank !
markmn3 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 10:08 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele