Henrique Flausino Postado Fevereiro 17, 2010 Denunciar Share Postado Fevereiro 17, 2010 Olá.Pessoal estou precisando de uma ajuda.Tenho um arquivo que faz um flip entre duas páginas, porém preciso adcionar mais e não sei como.Veja o código abaixo.AS3:import Classes.Flip; var cm:ContextMenu = new ContextMenu(); cm.hideBuiltInItems(); contextMenu = cm; var flipped:Boolean = false; var secondView:SecondView = new SecondView(); var flip:Flip; function callFlip(e:MouseEvent):void { if (! flipped) { flip = new Flip(mainView, secondView, 2, "left", true); addChild(flip); flipped = true; } else if (flipped) { flip = new Flip(secondView, mainView, 2, "left", true); addChild(flip); flipped = false; } } mainView.infoButton.addEventListener(MouseEvent.MOUSE_DOWN, callFlip); secondView.doneButton.addEventListener(MouseEvent.MOUSE_DOWN, callFlip); Da Class package Classes { import fl.transitions.Tween; import fl.transitions.TweenEvent; import fl.transitions.easing.Strong; import flash.display.*; import flash.utils.Timer; import flash.events.*; public class Flip extends Sprite { private var firstView:DisplayObject; private var secondView:DisplayObject; private var initFromSide:String; private var duration:int; private var flipTween:Tween; private var addSecondView:Boolean; private var added:Boolean = false; private var timer:Timer = new Timer(1); public function Flip(frontObject:DisplayObject, backObject:DisplayObject, timeInSeconds:int, flipFromSide:String, secondViewIsInLibrary:Boolean):void { firstView = frontObject; secondView = backObject; duration = timeInSeconds; initFromSide = flipFromSide; addSecondView = secondViewIsInLibrary; animateFirstView(); timer.addEventListener(TimerEvent.TIMER, checkFlip); } private function animateFirstView():void { flipTween = new Tween(firstView,"scaleX",Strong.easeIn,1,0.5,duration/2,true); flipTween = new Tween(firstView,"scaleY",Strong.easeIn,1,0.5,duration/2,true); if (initFromSide == "left") { flipTween = new Tween(firstView,"rotationY",Strong.easeIn,0,90,duration / 2,true); timer.start(); } else if (initFromSide == "right") { flipTween = new Tween(firstView,"rotationY",Strong.easeIn,0,-90,duration / 2,true); timer.start(); } } private function checkFlip(e:TimerEvent):void { if (initFromSide == "left" && firstView.rotationY >= 90) { timer.stop(); firstView.visible = false; if (addSecondView && ! added) { secondView.x = firstView.x; secondView.y = firstView.y; addChild(secondView); added = true; } else { secondView.x = firstView.x; secondView.y = firstView.y; } animateSecondView(); } else if (initFromSide == "right" && firstView.rotationY <= -90) { timer.stop(); firstView.visible = false; if (addSecondView && ! added) { secondView.x = firstView.x; secondView.y = firstView.y; addChild(secondView); added = true; } else { secondView.x = firstView.x; secondView.y = firstView.y; } animateSecondView(); } } private function animateSecondView():void { flipTween = new Tween(secondView,"scaleX",Strong.easeOut,0.5,1,duration/2,true); flipTween = new Tween(secondView,"scaleY",Strong.easeOut,0.5,1,duration/2,true); if (initFromSide == "left") { flipTween = new Tween(secondView,"rotationY",Strong.easeOut,-90,0,duration / 2,true); firstView.visible = true; } else if (initFromSide == "right") { flipTween = new Tween(secondView,"rotationY",Strong.easeOut,90,0,duration / 2,true); firstView.visible = true; } } } }Será que alguém poderia me ajudar à colocar mais 1 página?Grato pela atenção.Henrique Flausino Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pooh Postado Fevereiro 18, 2010 Denunciar Share Postado Fevereiro 18, 2010 (editado) Bom ao meu ver você tem um código plenamente funcional mas não sabe ampliar o exemplo que lhe foi dado ?Esse seu exemplo é um boolean, ou seja ele funciona em 0 e 1, realmente so vai funcionar duas páginas, mas da pra ver claramente como criar mais páginas com o comando da classe chamado" flip = new Flip(mainView, secondView, 2, "left", true);"seria melhor com código fonte mas para criar mais poáginas basta usar o new flip;aonde mainView e second view são os movieClips que vão aparecer nas páginas;basta você ter uma array com os movieclips e você poderá fazer apaginação como por exemplo:Temos 10 movieClips numa array e queremos fazer a paginação destes.Para cada flip feito teremos na mainview e secondView as posições da matriz exemplo... flip = new Flip(matrizMC[0], matrizMC[1], 2, "left", true); flip = new Flip(matrizMC[2], matrizMC[3], 2, "left", true); flip = new Flip(matrizMC[4], matrizMC[5], 2, "left", true); flip = new Flip(matrizMC[6], matrizMC[7], 2, "left", true); flip = new Flip(matrizMC[8], matrizMC[9], 2, "left", true);sem o fonte só posso imaginar isso :)obviamente você ão vai agrupar o código assim, pois senão so vai valer a ultima linha coma s ultimas páginasmas vcx deve fazer uma validação com um contador para saber em que posição(página) você se encontra para saber quais as proximas páginas e veririficar se já chegou na ultima página etc... etc... etc..............espero ter ajudado:) Editado Fevereiro 18, 2010 por Pooh Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Henrique Flausino Postado Fevereiro 18, 2010 Autor Denunciar Share Postado Fevereiro 18, 2010 Olá.Agradeço pela ajuda, mas não resolveu meu problema, pois já havia feito isso mas não funcionou.Segue modelo utilizado: Exemplo SWFSegue fonte: Arquivo ZipadoFicarei muito grato se puderem me ajudar.Att.Henrique Flausino Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pooh Postado Fevereiro 19, 2010 Denunciar Share Postado Fevereiro 19, 2010 Oláaqui deu "Unexpect file Format"reupa o zip ou passa o link do FLAabraços ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Henrique Flausino Postado Fevereiro 19, 2010 Autor Denunciar Share Postado Fevereiro 19, 2010 Oláaqui deu "Unexpect file Format"reupa o zip ou passa o link do FLAabraços !Coloquei o arquivo novamente, caso precise acesse o FTP ftp://mfdesign.com.brUsuário: scriptbrasil@mfdesign.com.brSenha: scriptbrasilLink para acesso HTTP à pastaJá testei e funciona normalmente aqui, arquivo feito para CS4.Att.Henrique Flausino Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pooh Postado Fevereiro 19, 2010 Denunciar Share Postado Fevereiro 19, 2010 Olá garoto :)Testei aqui e funcionou perfeitamente a nova lógica....O script funciona da seguinte maneira, você informa na verdade o movieClip que está ATIVO no momento e por qual ele deve TROCAR.Resumindo em ordem crescente é uma lógica 0-1,1-2,2-3,3-4,4-5 ....você deve sempre repetir o ATIVO pois é uma referência.como você fez um teste booleano ACTIVE|INACTIVE nunca vai passar de 2 opções meu caro....não basta chamar o callFlip sem passar parâmetros o maximo que ele pode fazer é trocar de estado mesmo...Vamos lá uma nova lógica pra vcMudando a função callflip:var objAtual:DisplayObject; function callFlip(obj:DisplayObject):void { if (! objAtual) { objAtual = mainView; }else{ flip = new Flip(objAtual, obj, 2, "left", true); addChild(flip); flipped = true; objAtual = obj; } } Assim guardamos o objeto de FLIP atual em objAtual e caso ele não tenha sido definido ainda ele é nosso objeto default "mainView"; Para que funcione deves chamar agora por : callFlip(secondView); Dentro de uma função de evento... mainView.infoButton.addEventListener(MouseEvent.MOUSE_DOWN, function(){callFlip(secondView)});Procure estudar mais seu código e ver seu funcionamentoBoa sorte e bons EstudosAbraçosOBS: testei com o TerceiroView e funcionou perfeitamente, basta você usar a função e passar por parâmetro quem será o mc a ser msotrado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Henrique Flausino Postado Fevereiro 19, 2010 Autor Denunciar Share Postado Fevereiro 19, 2010 (editado) Olá garoto :)Testei aqui e funcionou perfeitamente a nova lógica....O script funciona da seguinte maneira, você informa na verdade o movieClip que está ATIVO no momento e por qual ele deve TROCAR.Resumindo em ordem crescente é uma lógica 0-1,1-2,2-3,3-4,4-5 ....você deve sempre repetir o ATIVO pois é uma referência.como você fez um teste booleano ACTIVE|INACTIVE nunca vai passar de 2 opções meu caro....não basta chamar o callFlip sem passar parâmetros o maximo que ele pode fazer é trocar de estado mesmo...Vamos lá uma nova lógica pra vcMudando a função callflip:var objAtual:DisplayObject; function callFlip(obj:DisplayObject):void { if (! objAtual) { objAtual = mainView; }else{ flip = new Flip(objAtual, obj, 2, "left", true); addChild(flip); flipped = true; objAtual = obj; } } Assim guardamos o objeto de FLIP atual em objAtual e caso ele não tenha sido definido ainda ele é nosso objeto default "mainView"; Para que funcione deves chamar agora por : callFlip(secondView); Dentro de uma função de evento... mainView.infoButton.addEventListener(MouseEvent.MOUSE_DOWN, function(){callFlip(secondView)});Procure estudar mais seu código e ver seu funcionamentoBoa sorte e bons EstudosAbraçosOBS: testei com o TerceiroView e funcionou perfeitamente, basta você usar a função e passar por parâmetro quem será o mc a ser msotradoOlá Pooh.Muito obrigado pela ajuda, fiz alguns testes e aparentemente está ok.Estou tentando aplicar esta opção mas não está indo.Sempre me retorna o erro 1046: O tipo não foi encontrado ou não é uma constante de tempo de compilação: terceiroView.Onde será que estou errando?Revisei o código várias vezes e quando troco por secondView funciona normalmente.Usando o assistente não me retorna nenhum erro, somente quando estou exportando.Pode me ajudar?Att.Henrique Flausino Editado Fevereiro 19, 2010 por Henrique Flausino Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pooh Postado Fevereiro 20, 2010 Denunciar Share Postado Fevereiro 20, 2010 (editado) você precisa declara o TerceiroViewnos meus teste eu declarei:var terceiroView:TerceiroView = new TerceiroView();mas pode ser qualquer outro objeto que você exporte da sua biblioteca :)Abraços ! Editado Fevereiro 20, 2010 por Pooh Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Henrique Flausino
Olá.
Pessoal estou precisando de uma ajuda.
Tenho um arquivo que faz um flip entre duas páginas, porém preciso adcionar mais e não sei como.
Veja o código abaixo.
AS3:
Da ClassSerá que alguém poderia me ajudar à colocar mais 1 página?
Grato pela atenção.
Henrique Flausino
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.