| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Nov 2003
Beiträge: 18
| zeichenstift als maske benutzen
hi, ich habe hier ein kleines "zeichenprogramm" -script (siehe unten).nun will ich, dass mein zeichenstrift ein darunterliegendes bild freilegt, also als maske funktioniert. ich hab leider gerade keine ahnung wie ich das mache. könne ihr mir da helfen? this.onMouseMove = function() { if (draw) { _root.lineStyle(5, 0x000000, 100); _root.lineTo(_root._xmouse, _root._ymouse); } }; this.onMouseDown = function() { draw = true; _root.moveTo(_root._xmouse, _root._ymouse); }; this.onMouseUp = function() { draw = false; }; |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Nov 2003
Beiträge: 18
|
naja, eigentlich hab ich ja schon ne lösung: this.createEmptyMovieClip("maske",1); bild.setMask(maske); this.onMouseDown = function() { rubbeln = true; } this.onMouseUp = function() { rubbeln = false; } this.onMouseMove = function() { if (rubbeln) { i++; maske.attachMovie("kreis", "kreis"+i, i); maske["kreis"+i]._y = maske._ymouse; maske["kreis"+i]._x = maske._xmouse; bild.setMask(maske); } }; das problem ist, dass das teil immer kleine aussetzer hat, also nicht "leicht" und flüssig läuft... |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Nov 2003
Beiträge: 18
|
ok, falls es jemanden interessiert, hier eine flüssige variante. stift mit maskierfunktion. jetzt will ich noch abfragen wann genau das ganze bild bzw. wieviel davon maskiert (sichtbar) ist. any ideas? danke schonmal. hier das script: onMouseDown = function () { posx1 = 0 sub = true } onMouseUp = function () { sub = false } stiftbreite = 6 createEmptyMovieClip("mask", 1) _root.mc.setMask(mask) onMouseMove = function () { if (sub) { if (posx1 == 0) { posx1 = _xmouse posy1 = _ymouse } else { x = _xmouse y = _ymouse if (((x-posx1)*(x-posx1))>5 || ((y-posy1)*(y-posy1))>5) { dx = x-posx1 dy = y-posy1 posx1 = x posy1 = y te = Math.atan2(dy, dx) px = x+Math.sin(-te)*stiftbreite py = y+Math.cos(-te)*stiftbreite pposx1 = 2*x-px pposy1 = 2*y-py with (mask) { beginFill(0) moveTo(sposx1, sposy1) lineTo(sx, sy) lineTo(px, py) lineTo(pposx1, pposy1) endFill() } sx = px sy = py sposx1 = pposx1 sposy1 = pposy1 } } } else { sx = _xmouse sy = _ymouse sposx1 = sx sposy1 = sy } updateAfterEvent() } |
| | |
| | #11 (permalink) |
| lernwillig Registriert seit: Jan 2002 Ort: auf dem Land
Beiträge: 1.327
|
Prima @ TX*- das nenne ich flottes Zeichnen! Schönes Skript! Zu Deiner Frage (wann alles maskiert ist) weiß ich leider nichts. Du müßtest praktisch abfragen, ob es auf der Fläche einen Pixel gibt, der noch nicht vom Stift berührt wurde... Gruss 23012 |
| | |
| | #12 (permalink) |
| aka CYBERHOLIC Registriert seit: Jan 2002 Ort: hamburg
Beiträge: 591
|
Ich komme gerade auf eine Idee, aber das bedarf bestimmt so einiges an Performance! Nämlich das man seine Bühne in zum Beispiel 20 Quadratische-MCs einteilt und wenn die Bedingung MAUS GEDRÜCKT + THIS HIT eintrifft, dann setze eine Variable von 0 auf 1 Von all diesen Variablen laesst man eine Summe ermitteln. Bei 20 Quadraten wäre dies 20. Und dann nur eine Abfrage wenn 20=20 dann ende. Damit das ganze aber schön wird, muss man mehr als 20 Quadrate nehmen. Und wie gesagt, weiss ich net wie da die Performance drauf flöten geht. Ist nur eine Idee.
__________________ ---------------------------------------------- --// www.endorphinum.de --// beta.endorphinum.de ---------------------------------------------- |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |