Changeset 15821

Show
Ignore:
Timestamp:
07/15/08 04:45:09 (5 years ago)
Author:
gyuque
Message:

updated demo

Location:
lang/actionscript/ascss/src
Files:
15 added
3 modified

Legend:

Unmodified
Added
Removed
  • lang/actionscript/ascss/src/KyotoDemo.as

    r15820 r15821  
    99        import cssdom.*; 
    1010        import kyotodemo.*; 
     11 
     12        import org.libspark.thread.*; 
     13 
    1114        public class KyotoDemo extends STDOUT 
    1215        { 
     
    4245                private var mStyleSheet:StyleList; 
    4346 
     47                private var mEntireAnimation:EntireAnimationThread; 
     48                private var mPrevEdgesCount:int = -1; 
     49 
    4450                function KyotoDemo() 
    4551                { 
     52                        Thread.initialize(new EnterFrameThreadExecutor()); 
     53 
    4654                        var logo:Bitmap = new LogoEmbed(); 
    4755                        logo.x = 210; 
     
    93101                        mSelectorEdgeLayer = new EdgeLayer(); 
    94102                        addChild(mSelectorEdgeLayer); 
     103                        mEntireAnimation = new EntireAnimationThread(mSelectorEdgeLayer); 
     104                        mEntireAnimation.start(); 
    95105 
    96106                        mMarkerLayer = new Sprite(); 
     
    267277                private function doMatching():void 
    268278                { 
    269                         STDOUT.cls(); 
     279//                      STDOUT.cls(); 
    270280                        mSelectorEdgeLayer.clear(); 
    271281                        if (!mDocument || !mStyleSheet) return; 
     
    302312                                } 
    303313                        } 
     314 
     315                        if (mPrevEdgesCount != mSelectorEdgeLayer.count) 
     316                                mEntireAnimation.startAnimation(); 
     317 
     318                        mPrevEdgesCount = mSelectorEdgeLayer.count; 
    304319                } 
    305320        } 
     
    347362        } 
    348363} 
     364 
     365 
     366class EntireAnimationThread extends org.libspark.thread.Thread 
     367{ 
     368        import flash.display.*; 
     369 
     370        private var mTarget:Sprite; 
     371        private var mCount:int = -1; 
     372        function EntireAnimationThread(s:Sprite) 
     373        { 
     374                mTarget = s; 
     375        } 
     376 
     377        protected override function run():void 
     378        { 
     379                if (mCount < 0) 
     380                { 
     381                        wait(0); 
     382                        next(animate); 
     383                } 
     384                else 
     385                        next(animate); 
     386        } 
     387 
     388        public function startAnimation():void 
     389        { 
     390                mCount = 0; 
     391                notify(); 
     392        } 
     393 
     394        protected function animate():void 
     395        { 
     396                if (++mCount > 5) 
     397                { 
     398                        wait(0); 
     399                        next(animate); 
     400                        return; 
     401                } 
     402 
     403                mTarget.alpha = mCount/5.0; 
     404 
     405                next(animate); 
     406        } 
     407} 
  • lang/actionscript/ascss/src/kyotodemo/EdgeLayer.as

    r15820 r15821  
    44        public class EdgeLayer extends Sprite 
    55        { 
    6                 private var mLayer1:Sprite = new Sprite; 
    7                 private var mLayer2:Sprite = new Sprite; 
    8  
     6                private var mCount:uint = 0; 
    97                function EdgeLayer() 
    108                { 
    11                         mLayer1.blendMode = BlendMode.ADD; 
    12                         mLayer2.blendMode = BlendMode.ADD; 
    139 
    14                         addChild(mLayer1); 
    15                         addChild(mLayer2); 
     10                } 
     11 
     12                public function get count():uint 
     13                { 
     14                        return mCount; 
     15                } 
     16 
     17                public function addEdge(x1:int, y1:int, x2:int, y2:int):Edge 
     18                { 
     19                        mCount++; 
     20                        var eg:Edge = new Edge(); 
     21                        eg.drawEdge(x1, y1, x2, y2); 
     22                        addChild(eg); 
     23 
     24                        return eg; 
    1625                } 
    1726 
    1827                public function clear():void 
    1928                { 
    20                         mLayer1.graphics.clear(); 
    21                         mLayer2.graphics.clear(); 
    22                 } 
    23  
    24                 public function addEdge(x1:int, y1:int, x2:int, y2:int):void 
    25                 { 
    26                         var g:Graphics = mLayer1.graphics; 
    27                         g.lineStyle(5, 0x112266); 
    28                         drawPath(x1, y1, x2, y2, g) 
    29                         g.lineStyle(3, 0x2244aa); 
    30                         drawPath(x1, y1, x2, y2, g) 
    31  
    32                         g = mLayer2.graphics; 
    33                         g.lineStyle(1, 0x55aaff); 
    34                         drawPath(x1, y1, x2, y2, g) 
    35                 } 
    36  
    37                 private function drawPath(x1:int, y1:int, x2:int, y2:int, g:Graphics):void 
    38                 { 
    39                         var cy:int = (y1+y2)/2 - 10; 
    40                         var cx:int = (x1+x2)/2; 
    41  
    42                         g.moveTo(x1, y1); 
    43                         g.curveTo(x1*0.6+cx*0.4, cy, cx, cy); 
    44                         g.curveTo(x2*0.6+cx*0.4, cy, x2, y2); 
     29                        mCount = 0; 
     30                        var len:uint = numChildren; 
     31                        for (var i:uint = 0;i < len;i++) 
     32                                removeChildAt(0); 
    4533                } 
    4634        }