Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-08-2004, 21:51   #1 (permalink)
TX*
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;
};
TX* ist offline   Mit Zitat antworten
Alt 26-08-2004, 21:55   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Geh mal auf "Suchen" und schau dir die Threads zu "Rubbel" an, vielleicht helfen die ja weiter...
  Mit Zitat antworten
Alt 26-08-2004, 21:59   #3 (permalink)
lernwillig
 
Benutzerbild von 23012
 
Registriert seit: Jan 2002
Ort: auf dem Land
Beiträge: 1.327
Ja - und wenn Du eine Linie als Maske nehmen willst, mußt Du
zuerst "Linien in Füllungen konvertieren", sonst klappts nicht.
Gruss
23012
__________________
[TUTORIAL] Nahtlose Muster erstellen in Photoshop
23012 ist offline   Mit Zitat antworten
Alt 26-08-2004, 22:00   #4 (permalink)
TX*
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...
TX* ist offline   Mit Zitat antworten
Alt 26-08-2004, 22:16   #5 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Setz mal hinter die if-Bedingung in onMouseMove einen updateAfterEvent();

Der bewirkt das Neuzeichnen und damit einen etwas flüssigeren Ablauf.
  Mit Zitat antworten
Alt 26-08-2004, 22:23   #6 (permalink)
TX*
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 18
danke für den tipp, ist aber immer noch nicht flüssig...
kann es sein dass man das besser in java machen würde und
sich flash für so etwas nicht eignet?
TX* ist offline   Mit Zitat antworten
Alt 26-08-2004, 22:46   #7 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
JAVA *kreisch kotz würg* Bin froh, dass es Flash gibt und ich mich nicht mehr mit diesem M... rumärgern muss...

Nimm dies:
Code:
   |
-- | --
   |
   |
   |
  Mit Zitat antworten
Alt 27-08-2004, 06:49   #8 (permalink)
TX*
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 18
TX* ist offline   Mit Zitat antworten
Alt 27-08-2004, 13:36   #9 (permalink)
TX*
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()
}
TX* ist offline   Mit Zitat antworten
Alt 29-08-2004, 00:45   #10 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Ort: mars
Beiträge: 90
schöne variante
__________________
Rendezvous on Champs-Elysees
whiskeycola ist offline   Mit Zitat antworten
Alt 29-08-2004, 09:39   #11 (permalink)
lernwillig
 
Benutzerbild von 23012
 
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
__________________
[TUTORIAL] Nahtlose Muster erstellen in Photoshop
23012 ist offline   Mit Zitat antworten
Alt 28-07-2006, 00:19   #12 (permalink)
aka CYBERHOLIC
 
Benutzerbild von 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
----------------------------------------------
cyberholic 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