• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ricjubas

AS2 - Mudar de frame e limpar menu com xml....

5 mensagens neste tópico

boas

Queria começar por dizer que não sou programador, tenho conhecimentos básicos d as2 e já tou passado com isto!!lol... e que tenho tentado pedir ajuda a alguém, sem êxito...Pode ser que desta tenha sorte...Aqui vai:

saquei um menu da net, que simula 3d e tem ligaçao a xml e imagens...tou a fazer 1 site meu, que contem este menu.consegui coloca lo sem problemas no flash funciona.Ate aqui tudo bem.

O que acontece e q quando tento mudar d frame(para navegar para outra pagina do site) este menu continua no stage e nao consigo encontrar maneira de o apagar(de alguma maneira) kuando navego para outra frame(pagina).Claro que deveria ser novamente activado quando voltasse a pagina desse menu...a melhor tentativa que tive foi apagar o stage todo(unloadMovie(this))...enfim aki vai o codigo desse menu...qualquer ajuda seria mto bem vinda...

import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;




   var numOfItems:Number;
   var radiusX:Number = 210;
   var radiusY:Number = 160;
   var centerX:Number = Stage.width-300;
   var centerY:Number = Stage.height-300;
   var speed:Number = 0.02;
   var perspective:Number = 230;
   var home:MovieClip = this;
   theText._alpha = 0;

   var tooltip:MovieClip = this.attachMovie("tooltip", "tooltip", 20000);
   tooltip._alpha = 0;

   se.setMask(masker2);
   var xml:XML = new XML();
   xml.ignoreWhite = true;

   xml.onLoad = function() {
      var nodes = this.firstChild.childNodes;
      numOfItems = nodes.length;
      for (var i = 0; i<numOfItems; i++) {
         var t = home.attachMovie("item", "item"+i, i+1);
         t.angle = i*((Math.PI*2)/numOfItems);
         t.onEnterFrame = mover;
         t.toolText = nodes[i].attributes.tooltip;
         t.content = nodes.attributes.content;
         t.icon.inner.loadMovie(nodes.attributes.image);
         t.r.inner.loadMovie(nodes.attributes.image);
         t.icon.onRollOver = over;
         t.icon.onRollOut = out;
         t.icon.onRelease = released;
      }
   };

   function over() {
      //BONUS Section
      var sou:Sound = new Sound();
      sou.attachSound("sover");
      sou.start();

      home.tooltip.tipText.text = this._parent.toolText;
      home.tooltip._x = this._parent._x;
      home.tooltip._y = this._parent._y-this._parent._height/2;
      home.tooltip.onEnterFrame = Delegate.create(this, moveTip);
      home.tooltip._alpha = 80;
   }

   function out() {
      delete home.tooltip.onEnterFrame;
      home.tooltip._alpha = 0;
   }

   function released() {
      //BONUS Section
      var sou:Sound = new Sound();
      sou.attachSound("sdown");
      sou.start();

      home.tooltip._alpha = 0;
      for (var i = 0; i<numOfItems; i++) {
         var t:MovieClip = home["item"+i];
         t.xPos = t._x;
         t.yPos = t._y;
         t.theScale = t._xscale;
         delete t.icon.onRollOver;
         delete t.icon.onRollOut;
         delete t.icon.onRelease;
         delete t.onEnterFrame;
         if (t != this._parent) {
            var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, t._xscale, 0, 3, true);
            var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, t._yscale, 0, 3, true);
            var tw3:Tween = new Tween(t, "_alpha", Strong.easeOut, 100, 0, 3, true);
         } else {
            var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, t._xscale, 120, 2, true);
            var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, t._yscale, 120, 2, true);
            var tw3:Tween = new Tween(t, "_x", Strong.easeOut, t._x, 512, 1, true);
            var tw4:Tween = new Tween(t, "_y", Strong.easeOut, t._y, 500, 3, true);
            var tw5:Tween = new Tween(theText, "_alpha", Strong.easeOut, 50, 100, 2, true);
            theText.text = t.content;
            var s:Object = this;
            tw.onMotionStopped = function() {
               s.onRelease = unReleased;
            };
         }
      }
   }

   function unReleased() {
      //BONUS Section
      var sou:Sound = new Sound();
      sou.attachSound("sdown");
      sou.start();

      delete this.onRelease;
      var tw:Tween = new Tween(theText, "_alpha", Strong.easeOut, 100, 0, 3, true);
      for (var i = 0; i<numOfItems; i++) {
         var t:MovieClip = home["item"+i];
         if (t != this._parent) {
            var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, 0, t.theScale, 1, true);
            var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, 0, t.theScale, 1, true);
            var tw3:Tween = new Tween(t, "_alpha", Strong.easeOut, 50, 100, 3, true);
         } else {
            var tw:Tween = new Tween(t, "_xscale", Strong.easeOut, 100, t.theScale, 1, true);
            var tw2:Tween = new Tween(t, "_yscale", Strong.easeOut, 100, t.theScale, 1, true);
            var tw3:Tween = new Tween(t, "_x", Strong.easeOut, t._x, t.xPos, 1, true);
            var tw4:Tween = new Tween(t, "_y", Strong.easeOut, t._y, t.yPos, 1, true);
            tw.onMotionStopped = function() {
               for (var i = 0; i<numOfItems; i++) {
                  var t:MovieClip = home["item"+i];
                  t.icon.onRollOver = Delegate.create(t.icon, over);
                  t.icon.onRollOut = Delegate.create(t.icon, out);
                  t.icon.onRelease = Delegate.create(t.icon, released);
                  t.onEnterFrame = mover;
               }
            };
         }
      }
   }


   function moveTip() {
      home.tooltip._x = this._parent._x;
      home.tooltip._y = this._parent._y-this._parent._height/2;
   }


   xml.load("icons.xml");

   function mover() {
      this._x = Math.cos(this.angle)*radiusX+centerX;
      this._y = Math.sin(this.angle)*radiusY+centerY;
      var s = (this._y-perspective)/(centerX+radiusX-perspective);
      this._xscale = this._yscale=s*40;
      this.angle += this._parent.speed;
      this.swapDepths(Math.round(this._xscale)+100);
   }

   this.onMouseMove = function() {
      speed = (this._xmouse-centerX)/8500;
   };

   
;


stop();

[/][/i]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não consegus colocar antes o teu FLA? é que o texto que colocas-te está um pouco confuso... "Frames (paginas)...continua no Stage..."

O teu site é todo em flash? ou usas esse teu menu em frames?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O site é feito em flash(as páginas do site em frames).O menu em as2(numa só frame).Não sei como colocar aki fixeiros...Dpois de ler akeles foruns do gotoandlearn...falta me experimentar colocar a script do menu num movieclip e dpois talvez consiga fazer o unloadmovie?lol vou ver se consigo...Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok...encontrei o elixir da juventude :)...O melhor q consegui foi mudar a variavel do centro do circulo para bem longe...e fazer delete do xml?

var centerY:Number = -500;

delete(XML);

So nao sei se vou ter problemas d performance c esta soluçao.Mas por agora serve...Obrigado a todos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora