import E3DPack.*; import eQueue.*; #include "Ulti.as" #include "gData.as" #include "LSystem.as" /*Core Program Starting*/ kernelStart(); /*Core function definitations*/ function kernelStart():Void { /*debug console*/ if(_root.DEBUG) createDebugMc(); var transXml:XML=new XML(); transXml.load(_root.gFileAddress); transXml.ignoreWhite=true; System.useCodepage = true; transXml.onLoad=function(success):Void { if(success) { mainF(transXml); } else { trace3(String("load news.xml error\n"+"this.status:"+String(this.status)+"\n")); } } } function mainF(inTransXml:XML) { var i:Number=0; var j:Number=0; var queueA:eQueue=new eQueue(1); var queueB:eQueue=new eQueue(1); queueA.deQueue(); queueB.deQueue(); var sign:Number=0; var tmpData:String=new String(); var drawCmdStr:String=new String(); var pationCirN:Number=12; var subStrF:String=new String(); var subStrX:String=new String(); _root.gIteratorLimit=parseInt(inTransXml.firstChild.attributes.iterLimit); _root.gFps=parseInt(inTransXml.firstChild.attributes.fps); _root.gStepLength=parseInt(inTransXml.firstChild.attributes.stepLen); pationCirN=parseInt(inTransXml.firstChild.attributes.pationCirN); _root.gXOffset=parseInt(inTransXml.firstChild.attributes.offsetX); _root.gYOffset=parseInt(inTransXml.firstChild.attributes.offsetY); _root.gInitString=inTransXml.firstChild.attributes.initString; subStrF=inTransXml.firstChild.attributes.SUBF; subStrX=inTransXml.firstChild.attributes.SUBX; _root.ClkWiseArc=2*Math.PI/pationCirN; _root.UnClkWiseArc=-2*Math.PI/pationCirN; //data init //trace(subStrF); //trace(subStrX); for(i=0;i<_root.gInitString.length;i++) queueA.enQueue(String(_root.gInitString.charAt(i))); i=0; sign=_root.SIGN_A; //Produce The Drawing String. while(i<_root.gIteratorLimit) { if(sign==_root.SIGN_A) { //queueA to queueB while(!queueA.isEmpty()) { tmpData=String(queueA.deQueue()); if(tmpData=="F"||tmpData=="f"||tmpData=="G"||tmpData=="g") for(j=0;j