|
/*************************************** /* zdefiniuj zmienne srodowiskowe /***************************************/ var ROOT_WYS = 550; var ROOT_SZER = 750; var PROST_WYS = 400; var PROST_SZER = 550; var PROST_X = (ROOT_SZER/2)-(PROST_SZER/2); var PROST_Y = (ROOT_WYS/2)-(PROST_WYS/2); var PROST_SR_X = (PROST_SZER/2)+PROST_X; var PROST_SR_Y = (PROST_WYS/2)+PROST_Y; //kat pod ktorym rysowane sa linie var rad = Math.atan2((PROST_Y+PROST_WYS), (PROST_X+PROST_SZER)); var ROTATION_DEG = Math.ceil((180*rad)/Math.PI); rad = Math.atan2((PROST_Y+PROST_WYS), -(PROST_X+PROST_SZER)); var ROTATION_DEG2 = Math.ceil((180*rad)/Math.PI); delete (rad); var iloscLinii = 4; //kolorki dla lini zoltej pomaranczowej i czerwonej var kolory = new Array('0xFFFF4A', '0xFFC44A', '0xFF4A4A'); //ta tablica opisuje wspolrzedne na ktorych zatrzymuja sie linie //i kulki przy "laserze" var wspolrzedne = new Array(new Array(PROST_X, PROST_Y), new Array((PROST_X+PROST_SZER), PROST_Y), new Array((PROST_X+PROST_SZER), (PROST_Y+PROST_WYS)), new Array(PROST_X, (PROST_Y+PROST_WYS))); /************************************************/ /************************************************/ MovieClip.prototype.drawCircle = function(x, y, r, nazw, poziom, col, alph, rat, matri) { if (nazw != '') { };_root.createEmptyMovieClip(nazw, poziom); } else {var nazwa = this[nazw]; var nazwa = this; }var a = r*.414213562; var b = r*.707106781; if (alph != undefined){ nazwa.beginGradientFill("radial", col, alph, rat, matri); } else {nazwa.lineStyle(0, col); }nazwa.moveTo(x+r, y); nazwa.curveTo(x+r, y-a, x+b, y-b); nazwa.curveTo(x+a, y-r, x, y-r); nazwa.curveTo(x-a, y-r, x-b, y-b); nazwa.curveTo(x-r, y-a, x-r, y); nazwa.curveTo(x-r, y+a, x-b, y+b); nazwa.curveTo(x-a, y+r, x, y+r); nazwa.curveTo(x+a, y+r, x+b, y+b); nazwa.curveTo(x+r, y+a, x+r, y); if (nazw != ''){ nazwa.endFill(); }//zmodyfikowana funkcja do rysowania obrazu na radarze :D:D MovieClip.prototype.draw = function(x, y, r, nazw, poziom) { var nazwa = this; };var a = r*.414213562; var b = r*.707106781; with (nazwa) { colors = [0xC73D01, 0x872501, 0x000000]; }alphas = [80, 60, 0]; ratios = [0, 100, 255]; matrix = {matrixType:"box", x:-50, y:0, w:150, h:170, r:0}; beginGradientFill("linear", colors, alphas, ratios, matrix); nazwa.moveTo(x+b, y-b); nazwa.curveTo(x+a, y-r, x, y-r); nazwa.curveTo(x-a, y-r, x-b, y-b); nazwa.lineStyle(5, 0xFF0000, 100); nazwa.lineTo(x, y+r); nazwa.lineStyle(0, 0xFF0000, 0); nazwa.lineTo(x+b, y-b); nazwa.endFill(); MovieClip.prototype.rysujLinie = function(nazwa, X, Y, wys, szer, poziom, kolor) { createEmptyMovieClip(nazwa, poziom); };var linia = this[nazwa]; linia.lineStyle(wys, kolor, 100); linia.moveTo(X, Y); linia.xKoniec = X+szer; linia.lineTo(linia.xKoniec, Y); linia.lineTo(X, Y); MovieClip.prototype.usunKlip = function(tar) { removeMovieClip(tar); };//pamietaj zeby tutaj dodac jeszcze kolor do listy parametrow; MovieClip.prototype.rysujKwadrat = function(nazwa, X, Y, wys, szer, poziom, wypelnienie, alp) { createEmptyMovieClip(nazwa, poziom); };var clip = this[nazwa]; if (wypelnienie != undefined) { clip.beginFill(wypelnienie, alp); }clip.lineStyle(0, 0xFF0000); clip.xKoniec = X+szer; clip.yKoniec = y+wys; clip.moveTo(X, Y); clip.lineTo(clip.xKoniec, Y); clip.lineTo(clip.xKoniec, clip.yKoniec); clip.lineTo(X, clip.yKoniec); clip.lineTo(X, Y); if (wypelnienie != undefined) { clip.endFill() }/************************************************ /* /* Definicje prototypowych funkcji /* /**************************************************/ //ta jest odpowiedzialna za przepisanie pliku XML na menu //i pobranie informacji powitalnych dla poszczegolnych dzialow XML.prototype.przepiszMenu = function() { if (this.firstChild.hasChildNodes()) { };this.menuGlowneDlugosc = this.firstChild.childNodes.length; } else {_root.menu = new Array(); for (var i = 0; i<this.menuGlowneDlugosc; ++i) { _root.menu[i] = new Array(2); }_root.menu[i][0] = this.firstChild.childNodes[i].nodeName; _root.menu[i][1] = this.firstChild.childNodes[i].firstChild.attributes['wartosc']; if (_root.menu[i][0].indexOf("_") != -1) { var czesci = _root.menu[i][0].split("_"); }_root.menu[i][0] = ""; for (var j = 0; j<czesci.length; j++) { _root.menu[i][0] += czesci[j]+" "; }trace("nie ma"); }//tutaj jest funkcja "podazania" linii za kulka //wzor to kulka za ktora ma podazac a wspol to predkosc MovieClip.prototype.katXscale = function(wzor, wspol) { this._xscale = Math.ceil((Math.sqrt(Math.pow(PROST_SR_Y-wzor._y-25, 2)+Math.pow((PROST_SR_X-wzor._x-25), 2)))); };rad = Math.atan2(wspol*(PROST_SR_Y-wzor._y-19), wspol*(PROST_SR_X-wzor._x-19)); katDeg = Math.floor((rad*180)/Math.PI); this._rotation = katDeg; //tu jest bardzo podobna funkcja ktora tylko powieksza linie //hmm wartoby sie zastanowic czy nie mozna jej usunac MovieClip.prototype.xScale = function(wzor) { var numer = Number(this._name.substr(this._name.length-1, 1)); };srodekX = srodekY=-20; if (numer>1) { srodekX = srodekY=srodekX; }scale = Math.ceil((Math.sqrt(Math.pow(this._y-(wzor._y-srodekY), 2)+Math.pow((wzor._x-(this._x+srodekX)), 2)))); this._xscale = scale; if (Math.ceil(scale)-(30*numer)>5) { this._xscale = Math.ceil(scale)-(30*numer); }updateAfterEvent(); //funkcja prowadzenia kulki ze srodka i potem chowania jej //wszystko zalezy od wpolczynnikow :)) MovieClip.prototype.rozwinKulke = function(wspolX, wspolY, predkoscX, predkoscY) { this._x += wspolX*predkoscX; };this._y += wspolY*predkoscY; //ta tutaj usuwa klipy z danych poziomow //zdefiniowanych jako pocz i kon MovieClip.prototype.usunKlipy = function(pocz, kon) { for (var i = pocz; i<kon; i++) { };this.createEmptyMovieClip("pusty", i); }pusty.removeMovieClip(); //a tutaj to jest istne cacko //funkcja ktora odpowiada za rysowanie tych pieknych //zaokraglonych przyciskow :)) MovieClip.prototype.rysujPrzycisk = function(wys, dl, napis) { this.beginFill(0x000000, 100); };for (var i = 0; i<2; i++) { this.drawCircle(i*dl, wys/2, wys/2, '', i, 0xFF0000); }this.beginFill(0x000000, 100); this.moveTo(0, 0); this.lineStyle(0, 0xFF0000); this.lineTo(dl, 0); this.lineStyle(0, 0x000000); this.lineTo(dl, wys); this.lineStyle(0, 0xFF0000); this.lineTo(0, wys); this.lineStyle(0, 0x000000); this.lineTo(0, 0); this.endFill(); this.createTextField("clipTxt", 1, dl/2, 0, 1, 1); this.clipTxt.autoSize = "right"; this.clipTxt.selectable = false; this.clipTxt.text = napis; this.clipTxtStyle = new TextFormat(); this.clipTxtStyle.font = "_sans"; this.clipTxtStyle.color = "0xFF0000"; this.clipTxt.setTextFormat(this.clipTxtStyle); delete (this.clipTxtStyle); this.useHandCursor = false; //funkcja dzieki ktorej przyciski sie pojawiaja i //tak pieknie "sprezynuja" MovieClip.prototype.ruch = function() { if (this._alpha>=100) { };this._alpha = 100; } else {this._alpha += 10; }//i tutaj jest ten chamski ruch ;( this.vx = (this.vx+(_root.celPrzyciski-this.this_x)*1/this.a)/this.b; this.this_x += this.vx; this._x = this.this_x; if (Math.abs(this._x-this.staryX)<0.00000005) { _root.onEnterFrame = _root.dodajRollOvera; }this.staryX = this._x; //no i juz powoli koniec //tutaj akurat prototyp dla pola tekstowego //odpowiedzialny za 'narysowanie' pasku przewijania przy //podanym polu txt TextField.prototype.zrobSkrolla = function() { if (this.maxscroll>1) { };var wys = this._y+(this._height/this.textHeight)*this._height; } else {var szer = this._x+this._width; createEmptyMovieClip("skroll", 40); skroll.useHandCursor = false; //robi poasek przewijania with (skroll) { lineStyle(0, 0xFFB3B3); }moveTo(szer, this._y+10); lineTo(szer+10, this._y+10); lineStyle(1, 0x780101); lineTo(szer+10, wys-20); lineTo(szer, wys-20); lineStyle(0, 0xFFB3B3); lineTo(szer, this._y+10); beginFill(0xFFFFFF, 15); lineStyle(0, 0xEB0101); moveTo(szer+2, this._y+12); lineTo(szer+8, this._y+12); lineTo(szer+8, wys-21); lineTo(szer+2, wys-21); lineTo(szer+2, this._y+12); endFill(); //tlo pasku przewijania //nie jest to tlo napisu createEmptyMovieClip("skrollTlo", 39); with (skrollTlo) { beginFill(0x999999, 70); }lineStyle(0, 0x999999, 70); moveTo(szer, this._y+10); lineTo(szer+10, this._y+10); lineTo(szer+10, this._y+this._height-20); lineTo(szer, this._y+this._height-20); lineTo(szer, this._y+10); endFill(); delete (wys); delete (szer); removeMovieClip(_root.skroll); }removeMovieClip(_root.skrollTlo); //a tutaj rysujemy pole tekstowe w ktorym wyswielta //sie to piekne powitanie :)) MovieClip.prototype.skroll = function(napis) { this.createTextField("clipTxt", 35, PROST_X+PROST_SZER-385, PROST_Y+50, 350, 300); };this.clipTxt.selectable = false; this.clipTxt.wordWrap = true; this.clipTxt.multiline = true; this.clipTxt.html = true; this.clipTxt.htmlText = napis; this.clipTxtStyle = new TextFormat(); this.clipTxtStyle.font = "_sans"; this.clipTxtStyle.color = "0x999999"; this.clipTxtStyle.size = "17"; this.clipTxtStyle.leftMargin = "5"; this.clipTxt.setTextFormat(this.clipTxtStyle); delete (this.clipTxtStyle); this.clipTxt.zrobSkrolla(); this.txtHeight = this.clipTxt._height+3; this.txtWidth = this.clipTxt._width+15; if (this.clipTxt.maxscroll>1) { var przesunPrawo = 15; }_root.rysujKwadrat("txtTlo", this.clipTxt._x-6, this.clipTxt._y-8, this.clipTxt._height+6, this.clipTxt._width+6+przesunPrawo, 34, 0x999999, 40); // zmienne potrzebne do okreslenia kolorow w przypadku gradientu radialnego colors = [0xFE5050, 0xA40000, 0x8D0101, 0x6A0000, 0x350000, 0x000000]; alphas = [100, 100, 100, 100, 100, 100]; ratios = [20, 130, 160, 200, 240, 255]; matrix = {matrixType:"box", x:50, y:50, w:95, h:95, r:0}; //********************************************************************** /************************************************* /* /* rysuje sfere i ustawia ja na odpowienim miejscu /* /***********************************************/ _root.drawCircle(100, 100, 50, "circle", 60, colors, alphas, ratios, matrix); _root.circle._alpha = 0; _root.circle._x = PROST_SR_X; _root.circle._y = 500; _root.circle.celY = PROST_SR_Y-(_root.circle._height); _root.circle._width = 0; _root.circle._height = 0; /**********************************************/ _root.circle.speed = function(predkosc, wspol) { if ((this._y>this.celY+20 && wspol == 1) || (this._y<this.celY-20 && wspol == -1)) { };this._width += 4*wspol; } else {this._height += 4*wspol; this._x -= 4*wspol; this._y += (this.celY-this._y)*predkosc; this._alpha += 10*wspol; _root.onEnterFrame = undefined; }if (wspol == 1) { _root.onEnterFrame = _root.circle.kulkiLinie; } else {_root.kwadrat.removeMovieClip(); }_root.rysujKwadrat("kwadrat", PROST_X, PROST_Y, PROST_WYS, PROST_SZER, 0); _root.onEnterFrame = function() { _root.rysujRadar(); };_root.circle.kulkiLinie = function() { for (var i = 0; i<iloscLinii; i++) { };_root.rysujLinie("linia"+i, 0, 0, 0, 100, 15+i, 0xFF0000); }_root.drawCircle(100, 100, 50, "circle"+i, 20+i, colors, alphas, ratios, matrix); for (var j = 0; j<3; j++) { ++poziomDepth; }_root.rysujLinie("poziom"+i+j, 0, 0, 0, 100, poziomDepth, kolory[j]); var poziom = _root["poziom"+i+j]; poziom._x = wspolrzedne[i][0]; poziom._y = wspolrzedne[i][1]; poziom._rotation = i*90; poziom._xscale = 0; delete (poziom); var nazwaLin = _root["linia"+i]; var nazwaCir = _root["circle"+i]; var rotation = _root.ROTATION_DEG+(i*90); if (i>1) { rotation = _root.ROTATION_DEG2+((i-1)*90); }nazwaCir._width = 20; nazwaCir._height = 20; nazwaCir._x = PROST_SR_X-18; nazwaCir._y = PROST_SR_Y-20; nazwaLin._x = PROST_SR_X; nazwaLin._y = PROST_SR_Y; nazwaLin._rotation = rotation; nazwaLin._xscale = 0; _root.onEnterFrame = undefined; _root.onEnterFrame = function() { _root.circle.rozwin(1); };_root.circle.rozwin = function(p) { for (var i = 0; i<iloscLinii; i++) { };if (_root["linia"+(iloscLinii-1)]._width<270) { }_root["linia"+2].katXscale(_root["circle"+0], -1); } else {_root["linia"+0].katXscale(_root["circle"+0], 1); _root["linia"+1].katXscale(_root["circle"+3], -1); _root["linia"+3].katXscale(_root["circle"+3], 1); _root["circle"+0].rozwinKulke(-1, -1, p*1.65*((PROST_SZER/2)/(PROST_WYS/2)), p*1.65); _root["circle"+2].rozwinKulke(1, 1, p*1.67*((PROST_SZER/2)/(PROST_WYS/2)), p*1.66); _root["circle"+3].rozwinKulke(-1, 1, p*1.65*((PROST_SZER/2)/(PROST_WYS/2)), p*1.65); _root["circle"+1].rozwinKulke(1, -1, p*1.67*((PROST_SZER/2)/(PROST_WYS/2)), p*1.67); _root.onEnterFrame = undefined; }_root.onEnterFrame = _root.circle.animuj; _root.circle.zwin = function(p) { for (var i = 0; i<iloscLinii; i++) { };if (_root["linia"+(iloscLinii-1)]._width>_root.circle._width/2) { }_root["linia"+2].katXscale(_root["circle"+0], -1); } else {_root["linia"+0].katXscale(_root["circle"+0], 1); _root["linia"+1].katXscale(_root["circle"+3], -1); _root["linia"+3].katXscale(_root["circle"+3], 1); _root["circle"+0].rozwinKulke(-1, 1, p*1.65*((PROST_SZER+PROST_X)/(PROST_WYS+PROST_Y)), p*1.65); _root["circle"+2].rozwinKulke(1, -1, p*1.67*((PROST_SZER+PROST_X)/(PROST_WYS+PROST_Y)), p*1.66); _root["circle"+3].rozwinKulke(1, 1, p*1.65*((PROST_SZER+PROST_X)/(PROST_WYS+PROST_Y)), p*1.65); _root["circle"+1].rozwinKulke(-1, -1, p*1.67*((PROST_SZER+PROST_X)/(PROST_WYS+PROST_Y)), p*1.67); _root.onEnterFrame = undefined; }_root.circle.celY = 500; _root.usunKlipy(0, 30); _root.onEnterFrame = function() { _root.circle.speed(.15, -1); };_root.circle.animuj = function() { if (_root["circle"+3]._y>=PROST_Y-_root["circle"+3]._width/2) { };for (var i = 0; i<iloscLinii; i++) { } else {var kolkoNam = _root["circle"+i]; }if (i>1) { wspolKolek = -1; } else {wspolKolek = 1; }if (i%2 == 0) { speed = 10; } else {kolkoNam._x += (wspolKolek*speed); speed = 10/((PROST_SZER)/(PROST_WYS)); }kolkoNam._y += (wspolKolek*speed); _root["linia"+2].katXscale(_root["circle"+0], -1); _root["linia"+0].katXscale(_root["circle"+0], 1); _root["linia"+1].katXscale(_root["circle"+3], -1); _root["linia"+3].katXscale(_root["circle"+3], 1); for (var j = 0; j<3; j++) { _root["poziom"+i+j].xScale(_root["circle"+i]); }_root.rysujKwadrat("kwadrat", PROST_X, PROST_Y, PROST_WYS, PROST_SZER, 5000); }_root.usunKlipy(0, 13); _root.onEnterFrame = undefined; _root.onEnterFrame = function() { _root.circle.zwin(1); };/*************************************************** /*koniec pierwszej czesci -> rysowania kwaadratu /*czesc DRUGA pokazanie radaru i przyciskow /*(rozpoczeta w funkcji _root.circle.speed(.15, -1) /***************************************************/ //rysujemy radaarek i maske do niego _root.rysujRadar = function() { _root.createEmptyMovieClip("radar", 8); };_root.radar.lineStyle(0, 0xFF0000); for (i=0; i<8; i++) { _root.radar.moveTo(0, 0); }kat += 45; rad = (Math.PI*kat)/180; _root.radar.lineTo(100*Math.sin(rad), 100*Math.cos(rad)); if ((promien=i*20)<100) { _root.radar.drawCircle(0, 0, promien, "", 10+i, 0xFF0000); }_root.drawCircle(0, 0, 100, "maska", 60, colors, alphas, ratios, matrix); _root.maska._xscale = 0; _root.maska._yscale = 0; _root.radar._height = _root.radar._width=100; _root.radar._xscale = _root.radar._yscale=150; _root.radar._x = _root.maska._x=500; _root.radar._y = _root.maska._y=300; _root.radar.setMask(_root.maska); //ta czesc odpowiada za rysowanie obrazu na radarze :D _root.createEmptyMovieClip('b', 33); _root.b.draw(0, 0-130, 130, '', 33, 0x000000); _root.b._yscale = 50; _root.b._xscale = 70; _root.b._x = _root.radar._x; _root.b._y = _root.radar._y; _root.b._alpha = 0; _root.onEnterFrame = undefined; _root.onEnterFrame = function() { _root.radarPokaz(); };//pokazujemy radarek powoli odslaniajac maske _root.radarPokaz = function() { if (_root.maska._width<250) { };_root.maska._xscale += 8; } else {_root.maska._yscale += 8; _root.b._alpha += 5; removeMovieClip(_root.maska); }_root.onEnterFrame = undefined; _root.onEnterFrame = function() { _root.rysujPrzyciski(); };//pierwsza funkcja to _root.rysujPrzyciski(); //zainicjowana w _root.radar.pokaz(); _root.rysujPrzyciski = function() { for (var i = 1; i<_root.menu.length+1; i++) { };_root.createEmptyMovieClip("przycisk"+i, i); }_root["przycisk"+i]._y = 200+PROST_Y+(22*(i-1)); _root["przycisk"+i].rysujPrzycisk(18, 150, _root.menu[i-1][0].toLowerCase()); _root["przycisk"+i]._alpha = 0; _root["przycisk"+i].a = Number(_root["przycisk"+i]._name.substr(_root["przycisk"+i].length-1, 1))*2; _root["przycisk"+i].b = 1.3; _root.celPrzyciski = PROST_X-10; _root.onEnterFrame = function () { _root.pokazPrzyciski(); }_root.animujRadar () ; _root.pokazPrzyciski = function() { for (var i = 1; i<_root.menu.length+1; i++) { };var przyciskNazwa = _root["przycisk"+i]; }przyciskNazwa.ruch(); _root.dodajRollOvera = function() { for (var i = 1; i<_root.menu.length+1; i++) { };_root["przycisk"+i].onRollOver = function() { }this.myCol = new Color(this); };this.onEnterFrame = function() { this.zmienna = !this.zmienna; };alpha = 100*Number(!this.zmienna); this._alpha = alpha; ca = (this.zmienna*220)-100; cb = 200-(this.zmienna*220); this.myCol.setTransform({ra:ca, ga:ca, ba:ca, rb:cb, gb:cb, bb:cb}); alpha = 100*Number(this.zmienna); _root["przycisk"+i].onRollOut = function() { this.myCol.setTransform({ra:'100', ga:'100', ba:'100', rb:"0xFFFFFF", gb:"0xFFFFFF", bb:"0xFFFFFF"}); };this._alpha = 100; this.zmienna = 0; delete (this.myCol); this.onEnterFrame = undefined; _root["przycisk"+i].onDragOut = _root["przycisk"+i].onRollOut; _root["przycisk"+i].onPress = function() { _root.tresc(_root.menu[this.a-2][1]); };_root.onEnterFrame = _root.animujRadar ; //tutaj mozna zdefiniowac wszystko co ma sie pojawiac po najechaniu radarem _root.animujRadar = function() { _root.b._rotation -= 5; };/**************************************************** /* /* czesc odpowiedzialna za prawdilowe wyswietlanie powitania /* /********************************************************/ _root.tresc = function(napis) { _root.createEmptyMovieClip("vla", 35); };_root.vla.skroll(napis); _root.skroll.onPress = function() { this.startDrag(false, _root.vla._x, _root.vla._y, 0, (_root.skrollTlo._y+_root.skrollTlo._height)-this._height+2); };this.onMouseMove = function() { _root.vla.clipTxt.scroll = (this._y)/6; };_root.skroll.onKeyDown = function() { if (Key.getCode() == Key.DOWN && this._y<(_root.skrollTlo._y+_root.skrollTlo._height)-this._height) { };this._y += 7; } else if (Key.getCode() == Key.UP && this._y>_root.skrollTlo._y) {this._y -= 7; }_root.vla.clipTxt.scroll = (this._y)/6; updateAfterEvent(); Key.addListener(_root.skroll); _root.skroll.onRelease = function() { this.stopDrag(); };this.onMouseMove = undefined; /**************************** /*poczatek funkcja speed zmienia wsporzedne sfery /*powinna tez zajac sie wywolaniem pojawienia 4 kulek i 4 linii /**********************************/ _root.onLoad = function() { myMenu = new XML(); };myMenu.ignoreWhite = true; myMenu.load('menu.xml'); myMenu.onLoad = function() { if (this.loaded && (this.status == 0)) { };myMenu.przepiszMenu(); } else {delete (myMenu); _root.onEnterFrame = function() { _root.circle.speed(.13, 1); };//_root.bla = this.status; } |