Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-04-2006, 12:33   #1 (permalink)
Ganz ohne Titel
 
Registriert seit: Jul 2002
Ort: Marburg
Beiträge: 173
Question zeichnung ausfaden lassen

huhu,

ich habe eine kleine draw engine mit der man mit der maus ein bisschen im film rummalen kann. ihr kennt das sicher

folgender code:
ActionScript:
  1. MovieClip.prototype.applyDrawing = function (mc) {
  2.     this.onMouseMove = function() {
  3.         if (draw) {
  4.             var p = new Object();
  5.             p.x = this._x;
  6.             p.y = this._y;
  7.             mc.lineStyle(1, 0x000033, 100);
  8.             mc.lineTo(p.x, p.y);
  9.         }
  10.     };
  11.     this.onMouseDown = function() {
  12.         draw = true;
  13.         mc.moveTo(_root._xmouse, _root._ymouse);
  14.     };
  15.     this.onMouseUp = function() {
  16.         draw = false;
  17.     };
  18. };

soweit so gut...

ich wünsche mir aber, dass die gezeichneten linien schon nach kurzer zeit wieder ausfaden (bzw. einfach verschwinden).

habe mal ein kleines PREVIEW erstellt, damit ihr alle genau wisst was ich meine



wie könnte man das ganze dynamisch umsetzen?

...vielleicht ist die lösung ganz simpel und ich hab das bekannte brett vorm kopf... bin auf eure ansätze gespannt!


besten dank &
schönen gruß,
felix
here2stay ist offline   Mit Zitat antworten
Alt 20-04-2006, 14:58   #2 (permalink)
Pharao a.D.
 
Benutzerbild von Tut-ench-aton
 
Registriert seit: Jul 2004
Ort: 29°58'33.34'' N, 31°07'49.29'' O
Beiträge: 430
Linien kannst du nicht einzeln ausfaden, da sie alle in einem MC bei dir liegen.

Du müsstest jede neue Linie in einen neuen MC legen, jeder mit einer höheren Tiefe. Den MC musst du dann immer nach einer bestimmten Zeit ausfaden. Für soetwas ist aber ein komplizierteres Script notwendig.
Tut-ench-aton ist offline   Mit Zitat antworten
Alt 20-04-2006, 15:50   #3 (permalink)
Ganz ohne Titel
 
Registriert seit: Jul 2002
Ort: Marburg
Beiträge: 173
ok, ich bin jetzt schon mal ein stück weiter...

das mit dem ausfaden muss nicht sein, scheint ja wirklich nur über einen haufen mcs möglich zu sein... lassen wir das

hier mein neuer ansatz indem die linienpunkte in einem array gespeichert werden und immer die letzten x punkte nachgezeichnet werden.
der zeichenmc wird dabei immer wieder "geleert" indem er neu erstellt wird.

ActionScript:
  1. MovieClip.prototype.applyDrawing = function(sub) {
  2.     this.onMouseMove = function() {
  3.         if (draw) {
  4.             var mc = path.createEmptyMovieClip("drawArea", 10);
  5.             var p = new Object();
  6.             p.x = this._x;
  7.             p.y = this._y;
  8.             this.drawArray.push({x:p.x, y:p.y});
  9.             mc.lineStyle(3, 0x000033, 100);
  10.             for (var i = this.drawArray.length - sub; i < this.drawArray.length; i++) {
  11.                 mc.lineTo(this.drawArray[i].x, this.drawArray[i].y);
  12.             }
  13.         }
  14.     };
  15.     this.onMouseDown = function() {
  16.         draw = true;
  17.         var mc = path.createEmptyMovieClip("drawArea", 10);
  18.         this.drawArray = [{x:this._x, y:this._y}];
  19.         mc.moveTo(this._x, this._y);
  20.     };
  21.     this.onMouseUp = function() {
  22.         draw = false;
  23.     };
  24. };
...ist noch etwas unsauber
aufruf um das ganze zu testen wäre dann zb:

stift_mc.applyDrawing(10);


ich bin damit schon relativ zufrieden, wenn sich nicht ein mir unbegreiflicher fehler aufgetan hätte...

zu sehen HIER...

wer kommt dem auf die schliche? woran liegts?
here2stay ist offline   Mit Zitat antworten
Alt 20-04-2006, 20:06   #4 (permalink)
Ganz ohne Titel
 
Registriert seit: Jul 2002
Ort: Marburg
Beiträge: 173
ok, problem behoben...

weiß zwar nicht warum, aber wenn man moveTo() von onMouseDown nach onMouseMove versetzt klappt es!
here2stay 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 15:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele