package { import flash.display.MovieClip; import flash.display.Graphics; import flash.events.MouseEvent; import flash.events.TextEvent; import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.Event; import flash.text.StyleSheet; import fereas; import Fdb; import Contur; import Campie; import flash.text.TextField; import flash.text.TextFormat; import nor; import Oaia; import orange; import rosu; import Soare; import violet; import yellow; import albastru; import backgr; import Autor; import penita; /** * ... * @author Radu */ public class Exercitiu4 { public var trece:Number = 0; private var rut:MovieClip = new MovieClip(); private var Scena:MovieClip = new MovieClip(); private var nr_hint:Number; private var st:StyleSheet = new StyleSheet(); private var pune_fdb:Fdb = new Fdb(); private var lfdb:URLLoader = new URLLoader; //private var Norisor:nor = new nor(); private var Sorisor:Soare = new Soare(); private var Back:backgr = new backgr(); private var este_fdb:Number = 0; private var Frosie:rosu = new rosu(); private var Fgalbena:yellow = new yellow(); private var Falbastra:albastru = new albastru(); private var Forange:orange = new orange(); private var Fmov:violet = new violet(); private var Enunt:TextField = new TextField; private var NrVar:Number; private var l:URLLoader=new URLLoader(); private var cr, penult, ult:Number; private var posibilitati:Array=new Array(); private var variante:Array=new Array(); private var Xp:Array=new Array(); private var Yp:Array=new Array(); private var cvnt:Array=new Array(); private var answr: Array = new Array(); private var s: Array=new Array(); private var sol:Array=new Array(); private var fstr:TextFormat=new TextFormat(); private var fevid:TextFormat=new TextFormat(); private var ftip:TextFormat=new TextFormat(); private var i, j, cnt:Number; private var X, Y, Xprim:Number=0; private var sa_facut_evaluare:Number=0; private var de_cat:Number=1; private var txt:TextField; private var nr_cv, nr_inpt:Number; private var autor:Array=new Array(); private var penc:Array=new Array(); private var gunoi:Array=new Array(); private var Sl:Array=new Array(); private var nrv:Array=new Array(); private var tabel:Array=new Array(); private var Timpuri:Array=new Array(); private var curent:MovieClip; private var M:Array = new Array(); private var pen:penita=new penita(); private var fpen:Autor=new Autor(); private var o:Object = new Object(); private var len:URLLoader = new URLLoader; public function Exercitiu4 (mc:MovieClip, mc1:MovieClip, nrh:Number) { rut = mc; nr_hint = nrh; Scena = mc1; pun_css(); pun_fdb(); grafica(); o[fpen]=new Object(); fpen.aut_bara_sus.addEventListener (MouseEvent.MOUSE_DOWN, pornejte_pen); fpen.aut_bara_sus.addEventListener (MouseEvent.MOUSE_UP, oprejte_pen); fpen.aut_bara_sus.Inchide.addEventListener (MouseEvent.CLICK, scoate_pen); fpen.aut_bara_sus.Inchide.buttonMode = true; fstr.font="Verdana"; fstr.size=13; fstr.color=0x000099; fevid.font="Verdana"; fevid.size=12; fevid.color=0x990000; fevid.bold=true; ftip.align="center"; ftip.font="Verdana"; ftip.size=10; ftip.bold=true; ftip.color=0x990000; } private function grafica ():void { Back.x = 0; Back.y = 0; Back.height = 499; rut.addChild (Back); //Norisor.x = 436.9; Norisor.y = 63.0; Norisor.width = 185.3; Norisor.height = 65.8; rut.addChild (Norisor); Sorisor.x = 578.0; Sorisor.y = 2.8; Sorisor.width = 118.1; Sorisor.height = 124.6; rut.addChild (Sorisor); var campie:Campie = new Campie(); campie.y = 437.6; campie.x = 0.0; rut.addChild (campie); var oaie:Oaia = new Oaia(); oaie.x = 7; oaie.y = 457.3; oaie.width = 103.8; oaie.height = 135.8; rut.addChild (oaie); var cont:Contur = new Contur(); cont.x = 1.5; cont.y = 436.7; rut.addChild (cont); Frosie.x = 146; Frosie.y = 443; Frosie.width = 19; Frosie.height = 24; Fmov.x = 289; Fmov.y = 463; Fmov.width = 19; Fmov.height = 24; Forange.x = 398; Forange.y = 457; Forange.width = 19; Forange.height = 24; Falbastra.x = 507; Falbastra.y = 448; Falbastra.width = 19; Falbastra.height = 24; Fgalbena.x = 609; Fgalbena.y = 462; Fgalbena.width = 19; Fgalbena.height = 24; Enunt.x = 146; Enunt.y = 504.6; Enunt.width = 516; Enunt.height = 59.1; rut.addChild (Enunt); Enunt.wordWrap=true; Enunt.styleSheet=st; Enunt.addEventListener (TextEvent.LINK, ataseaza); len.load (new URLRequest("exercitiu/enunt/e4.txt")); len.addEventListener(Event.COMPLETE, incarc_enunt); } private function incarc_enunt (e:Event):void { Enunt.htmlText = e.currentTarget.data; } private function ataseaza(e:TextEvent):void { var xe:fereas=new fereas(); xe.bara_sus.Gresit.addEventListener (MouseEvent.CLICK, scoate); rut.addChild (xe); var lx:URLLoader=new URLLoader(); xe.texte.styleSheet=st; xe.texte.autoSize="left"; xe.bara_sus.Titlu_obiective.text=fa_litera_mare(e.text); lx.load (new URLRequest("explicatii/"+e.text+".html")); lx.addEventListener(Event.COMPLETE, incarcx); function incarcx(e:Event):void { xe.texte.text=e.currentTarget.data; xe.Tablou.height=xe.texte.height+30; xe.x=85; xe.y=150; } function scoate (e:MouseEvent):void { rut.removeChild (xe); } } private function fa_litera_mare(cuvant:String):String { var primal:String=cuvant.substr(0, 1); var rest_cuv:String=cuvant.substr(1); return (primal.toUpperCase()+rest_cuv); } public function start_game (vr:Number):void { NrVar = vr; Frosie.addEventListener(MouseEvent.CLICK, go_hint); Frosie.buttonMode=true; Falbastra.addEventListener(MouseEvent.CLICK, go_hint); Falbastra.buttonMode=true; Forange.addEventListener(MouseEvent.CLICK, go_hint); Forange.buttonMode=true; Fmov.addEventListener(MouseEvent.CLICK, go_hint); Fmov.buttonMode=true; Fgalbena.addEventListener(MouseEvent.CLICK, go_hint); Fgalbena.buttonMode = true; Sorisor.buttonMode = true; Sorisor.addEventListener (MouseEvent.CLICK, go_evaluare); //Norisor.addEventListener (MouseEvent.CLICK, go_reluare); Norisor.buttonMode = true; if (nr_hint>0&&nr_hint>=1) rut.addChild (Frosie); if (nr_hint>0&&nr_hint>=2) rut.addChild (Falbastra); if (nr_hint>0&&nr_hint>=3) rut.addChild (Forange); if (nr_hint>0&&nr_hint>=4) rut.addChild (Fmov); if (nr_hint > 0 && nr_hint >= 5) rut.addChild (Fgalbena); for (i=0; i<=10; i++) M[i]=new Array(); Timpuri[0]="Acţiuni trecute"; Timpuri[1]="Acţiuni prezente"; Timpuri[2]="Acţiuni viitoare"; l.load (new URLRequest ("exercitiu/texte/t4.txt")); l.addEventListener(Event.COMPLETE, incarc_ex); de_cat=1; function incarc_ex (e:Event):void { l.removeEventListener (Event.COMPLETE, incarc_ex); if (de_cat==1) { posibilitati=e.currentTarget.data.split("VaRiAnTa"); for (i=0; i<=10; i++) for (j=0; j<=10; j++) M[i][j]=-1; cr = NrVar; gunoi = posibilitati[cr].split ("TAB"); trace (gunoi[1]); tabel=gunoi[1].split (","); variante=gunoi[0].split ("VAR"); Tabelu (tabel.length); X=40; Y = 228; nr_cv = 0; nr_inpt = 0; for (cnt=0; cnt695||TF.text=="NL") { if (TF.text!="NL") X=40; else X=40+Xprim; Y=Y+17; } if (TF.text!="NL" && !npt) {TF.x=X; TF.y=Y; rut.addChild (TF); X+=lg+1; } if (npt) { ref=new MovieClip; txt=new TextField(); ref.addEventListener(MouseEvent.MOUSE_DOWN, start_drag); ref.addEventListener(MouseEvent.MOUSE_UP, stop_drag); txt.type="dynamic"; txt.text=TF.text; txt.autoSize="left"; txt.selectable=false; ref.name="Input"+nr_inpt; txt.setTextFormat (fevid); ref.x=Xp[nr_inpt]=X; ref.y=Yp[nr_inpt]=Y; nr_inpt++; lg=40; X+=txt.width+1; ref.addChild (txt); rut.addChild (ref); } } function Tabelu(col:Number):void { var Wdcol:Number; var txt:TextField; var Xcol = 10; var alc:MovieClip = new MovieClip(); col=tabel.length; Wdcol=550/col; trace (Wdcol); //prima linie alc.graphics.lineStyle (1, 0x000000); alc.graphics.moveTo (10, 20); alc.graphics.lineTo (560, 20); alc.graphics.moveTo (10, 46); alc.graphics.lineTo (560, 46); alc.graphics.moveTo (10, 222); alc.graphics.lineTo (560, 222); alc.graphics.moveTo (10, 20); alc.graphics.lineTo (10, 222); alc.graphics.moveTo (560, 20); alc.graphics.lineTo (560, 222); for (i=1; i<=col; i++) { txt=new TextField(); txt.selectable=false; txt.autoSize="left"; txt.text=Timpuri[tabel[i-1]]; txt.y=20; txt.x=(Xcol+(i-1)*Wdcol+Xcol+i*Wdcol)/2-txt.width/2; txt.setTextFormat(ftip); txt.name="Tlt"+(i-1); rut.addChild (txt); if (i!=col) { alc.graphics.moveTo (Xcol+i*Wdcol, 20); alc.graphics.lineTo (Xcol+i*Wdcol, 222); } } alc.x = 10; rut.addChild (alc); trace ("da"); } } private function go_evaluare (e:MouseEvent):void { var ny:MovieClip; var cate:Number=0; var nrvf:Number=0; var gogo:Number=1; var ind:Number=0; var verf:MovieClip; var Xcol:Number=10; var col:Number=tabel.length; var Wdcol:Number=550/col; var st_pt:Number=48; var pzx, pzy:Number; var str:String; for (i=0; i= 5) { str = "

Ai obţinut " + cate + " puncte din 10.\n"; trece = 1; str = str + "Succes în continuare.\n\n"; } else { str = "

Ai obţinut doar " + cate + " puncte din 10.\n"; trece = 0; str=str+"Roagă-l pe prietenul tău, care urmează la rând să încerce şi el.\n\n" } str = str + "Închide această fereastră pentru a continua!

"; incarc_fdb(str); } } /*private function go_reluare (e:MouseEvent):void { }*/ private function start_drag (e:MouseEvent):void { var Xcol:Number=10; var col:Number=tabel.length; var Wdcol:Number=550/col; var st_pt:Number=48; curent=MovieClip (rut.getChildByName (e.currentTarget.name)) var ref:MovieClip=curent; var nrr:Number = Number (curent.name.substr (5)); var pzx:Number=Math.ceil(((2*ref.x+ref.width-2*Xcol)/Wdcol-1)/2); var pzy:Number=(ref.y-st_pt)/20; if (curent!=null) { if (ref.x!=Xp[nrr] && ref.y!=Yp[nrr]) { M[pzx][pzy]=-1; for (i=pzy+1; M[pzx][i]!=-1; i++) { M[pzx][i-1]=M[pzx][i]; ref=MovieClip (rut.getChildByName ("Input"+M[pzx][i-1])); ref.y=st_pt+(i-1)*20; } M[pzx][i-1]=-1; } curent.startDrag(); } } private function stop_drag (e:MouseEvent):void { var lim_sus:Number=15; var lim_jos:Number=225; var st_pt:Number=48; var col:Number=tabel.length; var Xcol:Number=10; var Wdcol:Number=550/col; var ref:MovieClip; var nrr:Number; if (curent!=null) { curent.stopDrag(); ref=curent; nrr=Number (ref.name.substr (5)); for (i=0; i=lim_sus && rut.mouseY<=lim_jos && rut.mouseX>=Xcol+i*Wdcol && rut.mouseX<=Xcol+(i+1)*Wdcol) { ref.x=(Xcol+i*Wdcol+Xcol+(i+1)*Wdcol)/2-ref.width/2; //cauta loc for (j=0; M[i][j]!=-1 && j<=7; j++); if (j!=8) { ref.y=st_pt+j*20; M[i][j]=nrr; break; } } if (i==col) { ref.x=Xp[nrr]; ref.y=Yp[nrr]; } } curent=null; } private function go_hint (e:MouseEvent):void { var ny:MovieClip=new MovieClip(); var am_hint:Number=0; var cl:Number; var Xcol:Number=10; var Wdcol:Number=550/tabel.length; var st_pt:Number=48; var pzx, pzy:Number; var ref:MovieClip; rut.removeChild (MovieClip(e.currentTarget)); for (i=0; ipenc[1] && rut.mouseYpenc[2] && rut.mouseYpenc[3] && rut.mouseY139) { pune_fdb.Spate.height=lf_fr; pune_fdb.Oaie.y=22+pune_fdb.Spate.height-9.2-pune_fdb.Oaie.height; } else { pune_fdb.Spate.height=150; pune_fdb.Oaie.y=30.1; } pune_fdb.x=699/2-pune_fdb.width/2; pune_fdb.y=599/2-pune_fdb.height/2; } /*Feed-Back*/ } }