Changeset 15769 for lang/actionscript

Show
Ignore:
Timestamp:
07/14/08 04:04:31 (4 months ago)
Author:
gyuque
Message:

demo(in progress)

Location:
lang/actionscript/ascss/src
Files:
4 modified

Legend:

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

    r15768 r15769  
    1313                private var LogoEmbed:Class; 
    1414 
     15                public static const LINEHEIGHT:int = 35; 
    1516                public static const GRAD_COLORS:Array = [0x111111, 0x333333, 0x555555]; 
    1617                public static const GRAD_ALPHAS:Array = [1, 1, 1]; 
     
    3132                private var mSelectorMarkers:Array; 
    3233                private var mMarkerLayer:Sprite; 
     34                private var mElementMarkerLayer:Sprite; 
    3335 
    3436                private var mDocument:XMLDocument; 
     
    5355                        mXMLField = new TextField(); 
    5456                        mXMLField.defaultTextFormat = mEFormat; 
    55                         mXMLField.x = 20; 
     57                        mXMLField.x = 40; 
    5658                        mXMLField.y = 80; 
    5759                        mXMLField.text = "<cho45>\n</cho45>"; 
     
    7274 
    7375                        mXMLErrorField = new TextField(); 
    74                         mXMLErrorField.x = 20; 
     76                        mXMLErrorField.x = 40; 
    7577                        mXMLErrorField.y = 660; 
    7678                        addChild(mXMLErrorField); 
     
    8688                        addChild(mMarkerLayer); 
    8789 
     90                        mElementMarkerLayer = new Sprite(); 
     91                        addChild(mElementMarkerLayer); 
     92 
    8893                        drawBase(); 
    8994 
     
    9196                        addChild(tx); 
    9297                        tx.textColor = 0xffffff; 
     98                        onXMLChanged(null); 
    9399                } 
    94100 
     
    138144                { 
    139145                        clearXMLError(); 
     146                        mDocument = null; 
    140147                        try{ 
    141148                                mDocument = new XMLDocument(mXMLField.text); 
     
    143150                                outXMLError(e.toString()); 
    144151                        } 
     152 
     153                        showElementMarkers(); 
    145154                } 
    146155 
     
    189198                } 
    190199 
     200                private function showElementMarkers():void 
     201                { 
     202                        var len:int = mElementMarkerLayer.numChildren; 
     203                        for (var i:int = 0;i < len;i++) 
     204                                mElementMarkerLayer.removeChildAt(0); 
     205 
     206 
     207                        if (!mDocument) 
     208                                return; 
     209 
     210                        var list:Array = mDocument.elementMetadatas; 
     211                        var m:Marker; 
     212                        for each(var md:ElementData in list) 
     213                        { 
     214                                m = new Marker(0, (md.end_lineno - md.lineno) * LINEHEIGHT); 
     215                                md.mx = 30 + md.nest*12; 
     216                                md.my = 98 + md.lineno * LINEHEIGHT; 
     217                                m.x = md.mx; 
     218                                m.y = md.my; 
     219                                mElementMarkerLayer.addChild(m); 
     220                        } 
     221                } 
     222 
    191223                private function showSelectorMarkers():void 
    192224                { 
     
    202234                                md = mSelectorMarkers[i] as SelectorMarker; 
    203235 
    204                                 m = new Marker(); 
    205                                 md.mx = 520; 
    206                                 md.my = 98 + md.lineno*35; 
     236                                m = new Marker(1); 
     237                                md.mx = 530; 
     238                                md.my = 98 + md.lineno * LINEHEIGHT; 
    207239 
    208240                                m.x = md.mx; 
     
    237269        { 
    238270                if (e.keyCode == 9) { 
    239                         mTx.replaceSelectedText("       "); 
    240                 } 
     271                        mTx.replaceSelectedText("  "); 
     272                } 
     273                e.updateAfterEvent(); 
    241274        } 
    242275} 
  • lang/actionscript/ascss/src/kyotodemo/Marker.as

    r15768 r15769  
    55        public class Marker extends Sprite 
    66        { 
    7                 public static const GRAD_COLORS:Array = [0xffaa33, 0xdd9922]; 
     7                public static const GRAD_COLORS:Array = [0xffba43, 0xdd9922]; 
    88                public static const GRAD_ALPHAS:Array = [1, 1]; 
    99                public static const GRAD_RATIOS:Array = [0, 255]; 
     10 
     11                public static const GRAD_COLORS2:Array = [0x5588ff, 0x334499]; 
     12                public static const GRAD_ALPHAS2:Array = [1, 1]; 
     13                public static const GRAD_RATIOS2:Array = [0, 255]; 
     14 
    1015                private var mGradTrans:Matrix = new Matrix(); 
     16                private var mType:uint; 
    1117 
    12                 function Marker() 
     18                function Marker(t:uint = 0, barlen:int = 0) 
    1319                { 
     20                        mouseEnabled = false; 
     21                        mType = t; 
    1422                        mGradTrans.createGradientBox(20, 20, Math.PI/2, -10, -10); 
    15                         draw(graphics); 
     23                        draw(graphics, barlen); 
    1624                } 
    1725 
    18                 private function draw(g:Graphics):void 
     26                private function draw(g:Graphics, barlen:int):void 
    1927                { 
    2028                        g.clear(); 
     29 
    2130                        g.lineStyle(3, 0, 0.3); 
    22                         g.beginGradientFill(GradientType.LINEAR, GRAD_COLORS, GRAD_ALPHAS, GRAD_RATIOS, mGradTrans); 
     31                        if (mType == 0) 
     32                                g.beginGradientFill(GradientType.LINEAR, GRAD_COLORS, GRAD_ALPHAS, GRAD_RATIOS, mGradTrans); 
     33                        else 
     34                                g.beginGradientFill(GradientType.LINEAR, GRAD_COLORS2, GRAD_ALPHAS2, GRAD_RATIOS2, mGradTrans); 
    2335                        g.drawCircle(0, 0, 10); 
     36 
     37                        if (barlen > 10) 
     38                        { 
     39                                g.lineStyle(2, mType ? GRAD_COLORS2[0] : GRAD_COLORS[0]); 
     40                                g.beginFill(0,0); 
     41                                g.moveTo(0, 10); 
     42                                g.lineTo(0, barlen); 
     43                                g.lineTo(10, barlen); 
     44                                g.lineStyle(); 
     45                                g.endFill(); 
     46                        } 
     47 
    2448                } 
    2549        } 
  • lang/actionscript/ascss/src/kyotodemo/XMLDocument.as

    r15768 r15769  
    33        public class XMLDocument 
    44        { 
     5                private var mMetadatas:Array; 
    56                private var mXML:XML; 
    67                private var mSource:String; 
     
    910                { 
    1011                        mSource = src; 
     12                        mMetadatas = []; 
    1113                        XML.ignoreComments = false; 
    1214                        XML.ignoreProcessingInstructions = false; 
     
    1517 
    1618                        STDOUT.cls(); 
    17                         STDOUT.puts("xml:"); 
    1819 
    19                         mLineNo = 0; 
     20                        var pre:Object = /^[^<]+/.exec(src); 
     21                        mLineNo = pre ? countBreaks(pre[0]) : 0; 
    2022                        checkLineno(mXML); 
    2123                } 
    2224 
    23                 private function checkLineno(x:XML):void 
     25                public function get elementMetadatas():Array 
    2426                { 
     27                        return mMetadatas; 
     28                } 
     29 
     30                private function checkLineno(x:XML, nest:int = 0):void 
     31                { 
     32                        var md:ElementData = null; 
    2533                        if (x.nodeKind() == "text") 
    2634                        { 
    27                                 STDOUT.puts("lns: "+countBreaks(x.toString())); 
     35                                mLineNo += countBreaks(x.toString()); 
     36                        } 
     37                        else if (x.nodeKind() == "element") 
     38                        { 
     39                                md = new ElementData(); 
     40                                md.x = x; 
     41                                md.nest = nest; 
     42                                md.lineno = mLineNo; 
     43                                mMetadatas.push(md); 
    2844                        } 
    2945 
     
    3147                        for each(var ch:XML in list) 
    3248                        { 
    33                                 checkLineno(ch); 
     49                                checkLineno(ch, nest + 1); 
    3450                        } 
     51 
     52                        if (md) 
     53                                md.end_lineno = mLineNo; 
    3554                } 
    3655