4.2. A vonalat rajzoló eszköz

iDevice ikon

// 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.