4.2. A vonalat rajzoló eszköz
// a vonal eszköz
line_btn.onRelease = function() {
// a rajzlap fellett
az egér bal gombjának lenyomására új, üres mc-t hozunk létre a canvas_mc-n
belül(*11)
canvas_mc.onPress = function() {
drawingID++;
this.createEmptyMovieClip("line"+drawingID,
this.getNextHighestDepth());
// ebbe az új, üres mc-ben fogjuk drawing apival megrajzolni a
vonalunkat(*12)
lineBeginX
= this._xmouse;
lineBeginY
= this._ymouse;
this.onMouseMove
= function() {
this["line"+drawingID].clear();
//a vonaltipus meghatározásakor a szín értékét a globális
penColor változóval adjuk meg(*13)
this["line"+drawingID].lineStyle(2,
penColor);
this["line"+drawingID].moveTo(lineBeginX,
lineBeginY);
this["line"+drawingID].lineTo(this._xmouse,
this._ymouse);
updateAfterEvent();
};
};
// az egérgomb
felengedésre a vonal-rajzolást befejezzük(*14)
canvas_mc.onRelease
=canvas_mc.onReleaseOutside= function() {
delete
this.onMouseMove;
};
};
Nézzük részletesebben:
*11 - az új, üres mc egyedi nevének meghatározásához növeljük a drawingID globális
változó értékét eggyel. Mivel nem adjuk meg, hogy milyen pozícióba kerüljön ez
az mc, így az a canvas_mc bal felső regisztráció pontjába kerül.
*12 - bevezetünk 2 új változót a drawing apival való rajzoláshoz (lineBeginX, lineBeginY)
ezek hivatottak megjegyezni, hogy a felhasználó a kattintás pillanatában mely
pozíciótól kezdi húzni a vonalat.
*13 - vonaltipusok meghatározásához lényegesen több paramétert is használhatunk
Flash8-ban, mint a korábbi verziókban, kezdve az átlátszóságtól a végek
lekerekítési módjának meghatározásán át a végeikkel éritkező vonalak
csatlakozási módjáig.
*14 - hogy elkerüljük a rajzterületen kívül felengedett egérgombból fakadó
esetleges bugokat, a a canvas_mc -nek mind az onRelease, mind az
onReleaseOutside eseményekor töröljük a drawing api vonalrajzolásért felelős onMouseMove eseménykezelőjét.