rebelss 0 Denunciar post Postado Maio 14, 2010 bom dia galera, sou novo aqui no forum e tambem estou iniciando em flash. indo direto ao ponto sem enrolar muito, estou fazendo um site pra galera do meu clan ( http://www.pandemoniun.com clicar em "A GUILD" para ver efeito ) estou fazendo um efeito giratório como puderam ver, catei um código pronto na net e deu tudo ok. mas no código o cara mostra como fazer no _root, com uma layer pra cada personagem eu estou tentando migrar para dentro de um movie clip mas sem sucesso. A seguir o código que funciona perfeitamente, teste1, teste2, teste3 são os personagens : function posCircular(angulo, raio) { var __reg1 = new Object(); var __reg2 = angulo * conversao; __reg1.x = Math.sin(__reg2) * raio; __reg1.y = Math.cos(__reg2) * raio; return __reg1; } var clips = Array("teste1", "teste2", "teste3", "teste4", "teste5", "teste6", "teste7", "teste8", "teste9", "teste10"); var raio = 180; var aceleracao = 0.006; var alphaMinimo = 20; var alphaMaximo = 110; var escalaMinima = 40; var escalaMaxima = 100; var mouseSeguro = 0; var difAlpha = alphaMaximo - alphaMinimo; var difEscala = escalaMaxima - escalaMinima; var xIni = Stage.width / 2.4; var yIni = Stage.height / 1.5; var dobroRaio = raio * 2; var conversao = 0.0174533; var difAngular = 360 / clips.length; var angulo = 0; this.onEnterFrame = function () { velocidade = _root._xmouse - xIni; if (Math.abs(velocidade) <= mouseSeguro) { velocidade = 0; } else { velocidade = velocidade * aceleracao; } angulo = angulo + velocidade; i = 0; for (;;) { if (i >= clips.length) { return; } var __reg2 = _root[clips[i]]; __reg2._y = yIni; __reg2.difAngular = difAngular * i; var __reg3 = posCircular(angulo + __reg2.difAngular, raio); __reg2._x = xIni + __reg3.y; var __reg4 = (__reg3.x + raio) / dobroRaio; __reg2._alpha = __reg4 * difAlpha + alphaMinimo; __reg2._xscale = __reg2._yscale = __reg4 * difEscala + escalaMinima; __reg2.swapDepths(__reg3.x + dobroRaio); ++i; } } ; Agora o código que estou tentando usar dentro do MovieClip numa layer chamada Action : function posCircular(angulo, raio) { var __reg1 = new Object(); var __reg2 = angulo * conversao; __reg1.x = Math.sin(__reg2) * raio; __reg1.y = Math.cos(__reg2) * raio; return __reg1; } var clips = Array("teste1", "teste2", "teste3", "teste4", "teste5", "teste6", "teste7", "teste8", "teste9", "teste10"); var raio = 180; var aceleracao = 0.006; var alphaMinimo = 20; var alphaMaximo = 110; var escalaMinima = 40; var escalaMaxima = 100; var mouseSeguro = 0; var difAlpha = alphaMaximo - alphaMinimo; var difEscala = escalaMaxima - escalaMinima; var xIni = Stage.width / 2.4; var yIni = Stage.height / 1.5; var dobroRaio = raio * 2; var conversao = 0.0174533; var difAngular = 360 / clips.length; var angulo = 0; onClipEvent ( load ) { velocidade = _root._xmouse - xIni; if (Math.abs(velocidade) <= mouseSeguro) { velocidade = 0; } else { velocidade = velocidade * aceleracao; } angulo = angulo + velocidade; i = 0; for (;;) { if (i >= clips.length) { return; } var __reg2 = _root[clips[i]]; __reg2._y = yIni; __reg2.difAngular = difAngular * i; var __reg3 = posCircular(angulo + __reg2.difAngular, raio); __reg2._x = xIni + __reg3.y; var __reg4 = (__reg3.x + raio) / dobroRaio; __reg2._alpha = __reg4 * difAlpha + alphaMinimo; __reg2._xscale = __reg2._yscale = __reg4 * difEscala + escalaMinima; __reg2.swapDepths(__reg3.x + dobroRaio); ++i; } } ; Quanto vou testar o projeto obtenho a seguinte mensagem : Symbol=rodinha, layer=script, frame=1, line25 >> Clip events are permitted only for movie clip instances >> onClipEvent ( load ) será que alguem poderia me ajudar a fazer este efeito funcionar dentro de um MovieClip e não na página principal ? pois como puderam ver no site http://www.pandemoniun.com quando você clica em "A Guild" funciona ok mas se clica em inicio novamente o script continua operando e fazendo os bunecos giragem na tela por causa do evento Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Maio 14, 2010 Olá, não me aprofundei na análise, mas pelo erro que mencionou, percebi que você deve estar tentando inserir as ações dentro do objeto (layers do objeto) e não sobre ele pois a ação: "onClipEvent (load)" deverá ser feita sobre o objeto e não nas layers do mesmo, para isso clique sobre o objeto e insira as ações nele e não dentro dele... Att. Compartilhar este post Link para o post Compartilhar em outros sites
rebelss 0 Denunciar post Postado Maio 14, 2010 Olá, não me aprofundei na análise, mas pelo erro que mencionou, percebi que você deve estar tentando inserir as ações dentro do objeto (layers do objeto) e não sobre ele pois a ação: "onClipEvent (load)" deverá ser feita sobre o objeto e não nas layers do mesmo, para isso clique sobre o objeto e insira as ações nele e não dentro dele... Att. Amigo, não consegui de forma alguma colocar os personagens dentro de um MC gostaria de saber então se tem como limpa-los da tela, pois por esta rotina que usei acima quando eu mudo de cena os bunecos ainda permanece na tela de uma olhada se puder www.pandemoniun.com Compartilhar este post Link para o post Compartilhar em outros sites