.flash filename="sprite.swf" bbox=700x700 version=9 fps=12 background=#FFBB66 .edittext log width=400 height=600 color=black multiline wordwrap .put log x=0 y=0 .action: package { import flash.display.*; import flash.events.*; import flash.text.* ; import flash.net.* ; public dynamic class Main extends MovieClip { private var sprites:Array=new Array (Sprite) ; private var cp :Number=0 ; private var tr :Number=0 ; private var lx :Number=15 ; //last private var ly :Number=15 ; private var qb:URLRequest ; private var qr:URLRequest ; private var qv:URLRequest ; private var qj:URLRequest ; private var qo:URLRequest ; private var qf:URLRequest ; private var qc:URLRequest ; private var qx:URLRequest ; private var lb:Loader ; private var lc:Loader ; private var lf:Loader ; private var lj:Loader ; private var lo:Loader ; private var lr:Loader ; private var lv:Loader ; private var hi =22; // espace haut private var h =37; // inter ligne private var lg =23; // espace entre pion private var lgg=69; // espace gauche private var ltg:Sprite; // espace gauche private var last:String; // espace gauche private var cur : Array; private function trace (s:String) { var bottom=(this.log.scrollV==this.log.maxScrollV); this.log.htmlText+=s+"\n"; if ( bottom ) this.log.scrollV=this.log.maxScrollV; } private function overm(evt){ //var tf=new TextField(); var name=evt.currentTarget.name; var a=name.split("_"); trace(cur[a[1]]+" "+name); } private function clic(e):void { var plx,ply,x,y:Number; var ctg=e.currentTarget; if ( ctg.x==15 ) { trace ("cliquez sur la boule correspondante à votre couleur "); return ; } trace("cur "+ctg.name); var a=ctg.name.split("_"); var i=a[0];var j=a[1]; var tmp=cur[j][i]; plx=ctg.x ; ply=ctg.y ;// store prov cur xy if ( cp == 0 ) { last='o'; } a=ltg.name.split("_"); // ltg is initialized in the last cercle call for the first shot i=a[0]; j=a[1]; x=(i*lg)+lgg-15; y=(j*h)+hi-15; cur[j][i]=last; // update map ctg.x=x ; ctg.y=y ; // move cur to old //lx=plx ; ly=ply; trace("cur "+i+" "+j); ltg.x=plx; ltg.y=ply ;// replace current by old one cp++; ltg=ctg ;// last target = current last=tmp; } /* private function mouseDown(evt){ this.startDrag(); } private function mouseRel(evt){ this.stopDrag(); } */ private function cercle(l:String,x,y,px,py) { var req:URLRequest; switch (l) { case 'r': req=qr;break; case 'v': req=qv;break; case 'f': req=qf;break; case 'c': req=qc;break; case 'j': req=qj;break; case 'b': req=qb;break; case 'o': req=qo;break; case 'x': req=qx;break; } // trace(x+" "+y); var lod=new Loader() lod.load(req); var sp=new Sprite(); ltg=sp; sp.x=x-15;sp.y=y-15; sp.name=px+"_"+py; sp.addEventListener(MouseEvent.CLICK, clic); sp.addEventListener(MouseEvent.MOUSE_OVER, overm); addChild(sp); sp.addChild(lod); } private function ready(evt){ trace("ready "+evt.type); } private function initmap() { var j=0,p=0; var haut=hi; // ecart initial bord supérieur var l,larg ; while (j < cur.length) { var str=cur[j]; var i=0; larg=lgg; // espace gauche while ( i < str.length ) { l=str[i]; if ( l != ' ' ) { cercle(l,larg,haut,i,j); p++; } larg+=lg; i++; } haut+=h; trace(j+" ") j++; } } private function conv(arr) { var b=new Array(); for ( var i in arr ) b[i]=arr[i].split(""); return b; } public function Main() { this.log.backgroundColor = 0xffcccc; trace("star"); var star2 = new Array( " r ", " r r ", " r r r ", " r r r r ", "o o o o o o o o o o o o o", " o o o o o o o o o o o o ", " o o o o o o o o o o o ", " o o o o o o o o o o ", " o o o o o o o o o ", " o o o o o o o o o o ", " o o o o o o o o o o o ", " o o o o o o o o o o o o ", "o o o o o o o o o o o o o", " v v v v ", " v v v ", " v v ", " v " ); var star6 =new Array( " r ", " r r ", " r r r ", " r r r r ", "c c c c o o o o o b b b b", " c c c o o o o o o b b b ", " c c o o o o o o o b b ", " c o o o o o o o o b ", " o o o o o o o o o ", " j o o o o o o o o f ", " j j o o o o o o o f f ", " j j j o o o o o o f f f ", "j j j j o o o o o f f f f", " v v v v ", " v v v ", " v v ", " v "); cur=conv(star6);// array(string) -> array(array) qb=new URLRequest("pion/b.png"); qc=new URLRequest("pion/c.png"); qr=new URLRequest("pion/r.png"); qv=new URLRequest("pion/v.png"); qj=new URLRequest("pion/j.png"); qo=new URLRequest("pion/o.png");// transparent qf=new URLRequest("pion/f.png"); qx=new URLRequest("pion/x.png"); /* lb=new Loader(); lb.load(qb); addChild (lb); lc=new Loader(); lc.load(qc); lr=new Loader(); lr.load(qr); lv=new Loader(); lv.load(qv); lj=new Loader(); lj.load(qj); lo=new Loader(); lo.load(qo); lf=new Loader(); lf.load(qf); */ initmap(); cercle('x',30,30,0,0); } } } .end # action .end # .flash