Show
Ignore:
Timestamp:
12/20/07 15:17:43 (13 months ago)
Author:
gyuque
Message:

lang/legacy-actionscript/as2draw: stroking

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/legacy-actionscript/as2draw/Drawable.as

    r3338 r3346  
    4848                mDragData.dragging = false; 
    4949        } 
     50         
     51        private static var PEN_OFFSET_1:Array = [0,-1, 1,0, 0,1, -1,0]; 
     52         
     53        private static var PEN_OFFSET_2:Array = [ 
     54                        -1, -2,  0, -2,  1, -2, 
     55                -2, -1, -1, -1,  0, -1,  1, -1, 2, -1, 
     56                -2,  0, -1,  0,  0,  0,  1,  0, 2,  0, 
     57                -2,  1, -1,  1,  0,  1,  1,  1, 2,  1, 
     58                        -1,  2,  0,  2,  1,  2 
     59        ]; 
     60        private function renderLine(x1:Number, y1:Number, x2:Number, y2:Number) 
     61        { 
     62                var ofs:Array = PEN_OFFSET_2; 
     63                var l:Number = ofs.length>>1; 
     64                var dx:Number = 0; 
     65                var dy:Number = 0; 
     66                 
     67                mMC.lineStyle(undefined, 0, 0, true); 
     68                for (var i:Number = -1;i < l;i++) 
     69                { 
     70                        if (i >= 0) 
     71                        { 
     72                                dx = ofs[i<<1]; 
     73                                dy = ofs[(i<<1)+1]; 
     74                        } 
     75                        mMC.beginFill(mCurrentPen.color); 
     76                        mPixBuf.drawLine( 
     77                                x1 +dx, y1 +dy, 
     78                                x2 +dx, y2 +dy); 
     79                        mMC.endFill(); 
     80                } 
     81        } 
    5082 
    5183        public function onMouseMove() 
     
    5385                if (mDragData.dragging) 
    5486                { 
    55                         mMC.lineStyle(undefined, 0, 0, true); 
    56                         mMC.beginFill(0xff0000); 
    57                         mPixBuf.drawLine( 
    58                                 mDragData.prevX, mDragData.prevY, 
    59                                 mMC._xmouse, mMC._ymouse); 
    60                         mMC.endFill(); 
     87                        renderLine(mDragData.prevX, mDragData.prevY, mMC._xmouse, mMC._ymouse); 
    6188                         
    6289                        mDragData.prevX = mMC._xmouse;