crmdea 0 Denunciar post Postado Novembro 17, 2009 Eae galera to com uma dificuldade muito grande para adicionar o botao anterior e proximo nesse codigo, para que ele mostre a imagem que foi vista antes e depois. tentei fazer mas o botao nao aparece mesmo eu colocando a layer do botao como primeira. Espero que possam me ajudar. import fl.containers.UILoader; import caurina.transitions.*; //---------loading the external xml file------- var urlRequest:URLRequest = new URLRequest("bpics.xml"); var urlLoader:URLLoader = new URLLoader(); var myXML:XML = new XML(); var xmlList:XMLList; myXML.ignoreWhitespace = true; urlLoader.addEventListener(Event.COMPLETE,fileLoaded); urlLoader.load(urlRequest); //--------holds the paths to the thumbnails------- var arrayURL:Array = new Array(); //--------holds the paths to the big photos------- var arrayName:Array = new Array(); //--------holds the thumbnail objects------- var holderArray:Array = new Array(); //--------represents the number of collumns------- var nrColumns:uint = 5; //-------represents the container of our gallery var sprite:Sprite = new Sprite(); addChild(sprite); var thumb:Thumbnail; //-------- the thumbnails container------- var thumbsHolder:Sprite = new Sprite(); sprite.addChild(thumbsHolder); //-------- the photoLoader container------- var loaderHolder:Sprite = new Sprite(); //loaderHolder.graphics.beginFill(0x000000,1); //loaderHolder.graphics.drawRect(0,0,570,330); //loaderHolder.graphics.endFill(); loaderHolder.x = 0; loaderHolder.alpha = 100; loaderHolder.y = 0; sprite.addChild(loaderHolder); //-------- loads the big photo------- var photoLoader:UILoader = new UILoader(); photoLoader.width = 577; photoLoader.height = 300; photoLoader.y = 0; photoLoader.x = 0; photoLoader.buttonMode = true; photoLoader.addEventListener(MouseEvent.CLICK,onClickBack); loaderHolder.addChild(photoLoader); /* we loop through the xml file populate the arrayURL, arrayName and position the thumbnalis*/ function fileLoaded(event:Event):void { myXML = XML(event.target.data); xmlList = myXML.children(); for (var i:int=0; i<xmlList.length(); i++) { var picURL:String = xmlList[i].url; var picName:String = xmlList[i].big_url; arrayURL.push(picURL); arrayName.push(picName); holderArray[i] = new Thumbnail(arrayURL[i],i,arrayName[i]); holderArray[i].addEventListener(MouseEvent.CLICK,onClick); holderArray[i].name = arrayName[i]; holderArray[i].buttonMode = true; //if (i<nrColumns) { holderArray[i].y = 313; holderArray[i].x = i*65+10; //} else { //holderArray[i].y = holderArray[i-nrColumns].y+110; //holderArray[i].x = holderArray[i-nrColumns].x; //} thumbsHolder.addChild(holderArray[i]); } showPicture(holderArray[0].name); } //----handles the Click event added to the thumbnails-- function onClick(event:MouseEvent):void { showPicture(event.currentTarget.name); } function showPicture(source:String):void { photoLoader.source = source; loaderHolder.alpha = 0; //Tweener.addTween(thumbsHolder, {x:0, time:1, transition:"easeInLinear"}); Tweener.addTween(loaderHolder, {x:0, time:1, transition:"easeInLinear"}); Tweener.addTween(thumbsHolder, {alpha:1, time:1, transition:"linear"}); Tweener.addTween(loaderHolder, {alpha:1, time:1, delay:1, transition:"linear"}); } //----handles the Click event added to the photoLoader---- function onClickBack(event:MouseEvent):void { //Tweener.addTween(thumbsHolder, {x:0, time:1, transition:"easeInLinear"}); Tweener.addTween(loaderHolder, {x:0, time:1, transition:"easeInLinear"}); Tweener.addTween(thumbsHolder, {alpha:1, time:2, transition:"linear"}); Tweener.addTween(loaderHolder, {alpha:0, time:2, transition:"linear"}); } thumbsHolder.mask = maskk2; photoLoader.mask = maskk; addEventListener(Event.ENTER_FRAME, enterFrameHandler); function enterFrameHandler(event:Event):void { var placing:int = thumbsHolder.x; if ((placing + (300-mouseX)/10) >= -1*thumbsHolder.width+620) { //Tweener.addTween(thumbsHolder, {x:(thumbsHolder.x + (300-mouseX)/5), time:0.2, transition:"linear"}); placing = placing + (300-mouseX)/5; } else { placing = -1*thumbsHolder.width+620 } if ((placing + (300-mouseX)/10) < 30) { placing = placing + (300-mouseX)/5; } else { placing = 30 } Tweener.addTween(thumbsHolder, {x:placing, time:1, transition:"easeOutLinear"}); } Esse acima eh o codigo dai adicionei isso: function ant (Event:MouseEvent){ if (i>0){ showPicture(holderArray[i-1].name); } else { showPicture(holderArray[0].name); } } function prox (Event:MouseEvent){ if (i>0){ showPicture(holderArray[i+1].name); } else { showPicture(holderArray[0].name); } } this.anterior.addEventListener(MouseEvent.CLICK, ant); this.proximo.addEventListener(MouseEvent.CLICK, prox); Compartilhar este post Link para o post Compartilhar em outros sites
linoart 0 Denunciar post Postado Novembro 17, 2009 Esses botões já estão no palco antes de compilar o SWF? você deve ter adicionao algum objeto na frente deles durante o tempo de execução no seu script. Coloca esse script em cada um e vê se funciona: setChildIndex(btnAnterior, numChildren-1); setChildIndex(btnProximo, numChildren-1); Abraços, Compartilhar este post Link para o post Compartilhar em outros sites
crmdea 0 Denunciar post Postado Dezembro 3, 2009 ow cara obrigadao voce curou um problema agora ele aparece e esse negoço ai de definir -1 nao sabia vlws! mas tipo quando clico no botao que criei com ele diz isso: ReferenceError: Error #1065: Variable i is not defined. at index11_fla::gallery_host_8/prox() e eu ajeitei a funcao prox que tava errada tambem pra function prox (Event:MouseEvent){ if (i==13){ showPicture(holderArray[0].name); } else { showPicture(holderArray[i+1].name); } } mas ainda sim ele da erro. 13 porque a quantidade de fotos totais sao 14 demorei pra responder porque a faculdade ficou bronca dai so agora aliviou mas obrigadao ai espero que possa me ajudar! =DD Compartilhar este post Link para o post Compartilhar em outros sites
crmdea 0 Denunciar post Postado Dezembro 3, 2009 tentei colocar o final function ant (Event:MouseEvent){ if (i>0){ showPicture(holderArray[i-1].name); } else if (i==0) { showPicture(holderArray[0].name); } } function prox (Event:MouseEvent){ if (i==13){ showPicture(holderArray[0].name); } else { showPicture(holderArray[i+1].name); } } setChildIndex(anterior, numChildren-1); setChildIndex(proximo, numChildren-1); anterior.addEventListener(MouseEvent.CLICK, ant); proximo.addEventListener(MouseEvent.CLICK, prox); dentro da funcao fileLoaded o botao anterior carrega a ultima foto do array (porem so carrega ela toda vez que ele eh apertado) e o proximo da erro O.o TypeError: Error #1010: A term is undefined and has no properties. at MethodInfo-560() // acho que nao tem nada haver isso mas foir a unica maneira que fiz da funcao ant funcionar quase* ahuahuahu mas a proximo nao funcionou nada Compartilhar este post Link para o post Compartilhar em outros sites
crmdea 0 Denunciar post Postado Dezembro 3, 2009 consegui colcoando dentro da funcao fileLoaded carregar o anterior e o proximo porém eles so carregam a primeira condiçao sempre como se nao mudasse o holderArray, tipo eu clico proximo e ele sempre vai aperecer o proximo do array inicializado (que eh zero) e do anterior ele sempre vai aparecer o anterior do incializado(que eh o slot 13), queria saber porque o codigo nao atualiza o slot do array utilizado na tela =/ tipo como eu posso colocar um looping pra que toda vez que clicar no proximo ou anterior ele reconheça o slot do array que esta sendo exibido e mostre o proximo ou o anterior? Compartilhar este post Link para o post Compartilhar em outros sites
linoart 0 Denunciar post Postado Dezembro 6, 2009 Eu fiz um modelo que deu certo em cima do seu script, ai você muda os nomes das funções: Na função onClick você chama a função puxaPosicaoArray(evt). Depois da função OnClickBack você coloca esse script: function puxaPosicaoArray(evt:MouseEvent):int { // eu fiz meio rápido pq estou numa correria, por isso como eu fiz 8 fotos, coloquei o caminho da imagem. Mas você pode fazer dinacamente sem precisar mudar o nome da imagem pegando a array das imagens if(evt.currentTarget.name !="big_pics/img_8.jpg") { //aqui eu sei qual indice da foto foi clicada for(var a:int = 0; a < aFotoG.length; a++) { // Aqui faço o nomo referente ao índice ser igual ao target clicado. if(aFotoG[a] == evt.currentTarget.name ) { // se não acrescentar +1 no 'a' a foto que já está na tela aparecerá de novo se clicar no próximo, // pois o índice continua o mesmo. posArray = a+1; //return posArray; } } } // essa condição é pq quando clica na última thumb e avança ele pula uma imagem. else if(evt.currentTarget.name !="big_pics/img_7.jpg") { //pra não pular a imagem posArray = apenas 'a' e não 'a+1'. posArray = a; //return posArray; } else { posArray = a+1; //return posArray; } return posArray; } function proximaFoto(evt:MouseEvent):void { // Depois que roda todas as imagens e voltar pra primeira, o trace da primeira fica como e não como deveria('0') // Isso acontece pq na função onClick eu estou passando "posArray = 'a+1'", ou seja, ele soma 7 (ultima indice // do array de imagens +1). trace("posA " + posArray) if(posicaoInicial == true) { posArray += 2; posicaoInicial = false; } if(posArray > 7 ) { posArray = 1; carregaFotoG.source = aFotoG[0]; } else { carregaFotoG.source = aFotoG[posArray]; posArray++; } } var posicaoInicial:Boolean = false; function voltaFoto(evt:MouseEvent):void { if(posicaoInicial == false) { posArray -= 2; posicaoInicial = true; } trace("posA " + (posArray)) if(posArray < 0 ) { trace("zero") posArray = 6; //posicaoInicial = false; carregaFotoG.source = aFotoG[7]; } else { carregaFotoG.source = aFotoG[posArray]; posArray--; } } Me fala se deu certo. Se não conseguir entender o script me diz que te explico. Abraços, Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Dezembro 6, 2009 Olá colegas, tudo bem. Passei apenas para dar uma sugestão, olha como fica legal usar a tag code , adiciona identação e cor, facilita muito a visualização. É só clicar no ícone <> e postar o código entre code e /code. Um trecho de um action qualquer com tag, bem melhor ok: btn_desce.addEventListener(MouseEvent.ROLL_OVER, desce); btn_desce.addEventListener(MouseEvent.ROLL_OUT, desceRemove); function desce(evento:MouseEvent):void{ mc_quadrado.addEventListener(Event.ENTER_FRAME, desceFull); } function desceFull(evento:Event):void{ mc_quadrado.nextFrame(); } Compartilhar este post Link para o post Compartilhar em outros sites
linoart 0 Denunciar post Postado Dezembro 6, 2009 Nossa, eu nunca soube como colocava cor aqui. Mas também acho que nem procurei direito. http://forum.imasters.com.br/public/style_emoticons/default/natal_laugh.gif Obrigado pela dica Elektra. Abraços, Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Dezembro 6, 2009 Nossa, eu nunca soube como colocava cor aqui. Mas também acho que nem procurei direito. http://forum.imasters.com.br/public/style_emoticons/default/natal_laugh.gif Obrigado pela dica Elektra. Abraços, Na paz, eu também não acertei na primeira, nem na segunda. Só dei um toque porque é grátis, e dá um certo charme. Abraços http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif Compartilhar este post Link para o post Compartilhar em outros sites
crmdea 0 Denunciar post Postado Dezembro 14, 2009 Bom galera tentei muito adicionar dois botões: um para mostrar a imagem que vem anterior da selecionada(mostrada na tela) e um para mostrar a img que vem depois da selecionada(que esta sendo atualmente mostrada na tela), mas nao consegui de forma alguma sempre dando algum problema. Alguém sabe uma solução pelo menos um jeito que possa dar certo? que isso me ajudaria bastante outras idéias pra desenvolver isso porque as minhas tão se acabando. Vlws!! segue o código import fl.containers.UILoader; import caurina.transitions.*; //---------loading the external xml file------- var urlRequest:URLRequest = new URLRequest("bpics.xml"); var urlLoader:URLLoader = new URLLoader(); var myXML:XML = new XML(); var xmlList:XMLList; myXML.ignoreWhitespace = true; urlLoader.addEventListener(Event.COMPLETE,fileLoaded); urlLoader.load(urlRequest); //--------holds the paths to the thumbnails------- var arrayURL:Array = new Array(); //--------holds the paths to the big photos------- var arrayName:Array = new Array(); //--------holds the thumbnail objects------- var holderArray:Array = new Array(); //--------represents the number of collumns------- var nrColumns:uint = 5; //-------represents the container of our gallery var sprite:Sprite = new Sprite(); addChild(sprite); var thumb:Thumbnail; //-------- the thumbnails container------- var thumbsHolder:Sprite = new Sprite(); sprite.addChild(thumbsHolder); //-------- the photoLoader container------- var loaderHolder:Sprite = new Sprite(); //loaderHolder.graphics.beginFill(0x000000,1); //loaderHolder.graphics.drawRect(0,0,570,330); //loaderHolder.graphics.endFill(); loaderHolder.x = 0; loaderHolder.alpha = 100; loaderHolder.y = 0; sprite.addChild(loaderHolder); //-------- loads the big photo------- var photoLoader:UILoader = new UILoader(); photoLoader.width = 577; photoLoader.height = 300; photoLoader.y = 0; photoLoader.x = 0; photoLoader.buttonMode = true; photoLoader.addEventListener(MouseEvent.CLICK,onClickBack); loaderHolder.addChild(photoLoader); /* we loop through the xml file populate the arrayURL, arrayName and position the thumbnalis*/ function fileLoaded(event:Event):void { myXML = XML(event.target.data); xmlList = myXML.children(); for (var i:int=0; i<xmlList.length(); i++) { var picURL:String = xmlList[i].url; var picName:String = xmlList[i].big_url; arrayURL.push(picURL); arrayName.push(picName); holderArray[i] = new Thumbnail(arrayURL[i],i,arrayName[i]); holderArray[i].addEventListener(MouseEvent.CLICK,onClick); holderArray[i].name = arrayName[i]; holderArray[i].buttonMode = true; //if (i<nrColumns) { holderArray[i].y = 313; holderArray[i].x = i*65+10; //} else { //holderArray[i].y = holderArray[i-nrColumns].y+110; //holderArray[i].x = holderArray[i-nrColumns].x; //} thumbsHolder.addChild(holderArray[i]); } showPicture(holderArray[0].name); } //----handles the Click event added to the thumbnails-- function onClick(event:MouseEvent):void { showPicture(event.currentTarget.name); } function showPicture(source:String):void { photoLoader.source = source; loaderHolder.alpha = 0; //Tweener.addTween(thumbsHolder, {x:0, time:1, transition:"easeInLinear"}); Tweener.addTween(loaderHolder, {x:0, time:1, transition:"easeInLinear"}); Tweener.addTween(thumbsHolder, {alpha:1, time:1, transition:"linear"}); Tweener.addTween(loaderHolder, {alpha:1, time:1, delay:1, transition:"linear"}); } //----handles the Click event added to the photoLoader---- function onClickBack(event:MouseEvent):void { //Tweener.addTween(thumbsHolder, {x:0, time:1, transition:"easeInLinear"}); Tweener.addTween(loaderHolder, {x:0, time:1, transition:"easeInLinear"}); Tweener.addTween(thumbsHolder, {alpha:1, time:2, transition:"linear"}); Tweener.addTween(loaderHolder, {alpha:0, time:2, transition:"linear"}); } thumbsHolder.mask = maskk2; photoLoader.mask = maskk; addEventListener(Event.ENTER_FRAME, enterFrameHandler); function enterFrameHandler(event:Event):void { var placing:int = thumbsHolder.x; if ((placing + (300-mouseX)/10) >= -1*thumbsHolder.width+620) { //Tweener.addTween(thumbsHolder, {x:(thumbsHolder.x + (300-mouseX)/5), time:0.2, transition:"linear"}); placing = placing + (300-mouseX)/5; } else { placing = -1*thumbsHolder.width+620 } if ((placing + (300-mouseX)/10) < 30) { placing = placing + (300-mouseX)/5; } else { placing = 30 } Tweener.addTween(thumbsHolder, {x:placing, time:1, transition:"easeOutLinear"}); } Compartilhar este post Link para o post Compartilhar em outros sites
Naty 3 Denunciar post Postado Janeiro 27, 2010 ve se te ajuda... vou postar um codigo de um exercicio que tenho aki //Variaveis var carrosRequest:URLRequest = new URLRequest var carrosLoader:URLLoader = new URLLoader var carrosXML:XML var contador:int = 0 var fotoRequest:URLRequest = new URLRequest() var fotoLoader:Loader = new Loader() var tamanho:uint = 0 //Eventos carrosLoader.addEventListener(Event.COMPLETE, carregou) next_btn.addEventListener(MouseEvent.CLICK, avanca) prev_btn.addEventListener(MouseEvent.CLICK, volta) //Funções function carregou (e:Event) { carrosXML = new XML (carrosLoader.data) //Alimenta a var tamanho com a contagem de nós de XML tamanho = carrosXML.*.length() //Qdo tiver carregado o XML executa a função exibeConteudo() } function exibeConteudo () { nome_txt.text = carrosXML .*[ contador ].@nome valor_txt.text = carrosXML.* [ contador ].@valor atual_txt.text = String (contador +1) // fotoRequest.url = "carros/" + carrosXML.* [ contador ].@foto fotoLoader.load(fotoRequest) } function avanca (e:MouseEvent) { contador ++ if (contador == tamanho) contador = 0 // exibeConteudo() } function volta (e:MouseEvent) { contador -- if (contador == -1) contador = tamanho -1 // exibeConteudo() } ///Inicialização addChild (fotoLoader) // fotoLoader.x = 30 fotoLoader.y = 130 // carrosRequest.url = "carros.xml" carrosLoader.load(carrosRequest) Compartilhar este post Link para o post Compartilhar em outros sites
Naty 3 Denunciar post Postado Janeiro 27, 2010 mais eu acho que você ta querendo um scroll de anterior e prox. certo ?? seria uma galeria dimanica com bts > oooooooo < certo ? Se for... var avanca:Boolean var volta:Boolean var velocidade:Number = 0 stage.addEventListener(MouseEvent.MOUSE_DOWN, press) stage.addEventListener(MouseEvent.MOUSE_UP, release) stage.addEventListener(Event.ENTER_FRAME, loop) function press (evt:MouseEvent) { switch (evt.target) { case bt_prev: // são os nomes dos meu bts avanca = true break case bt_next: volta = true break } } function release (evt:MouseEvent) { avanca = volta = false } function loop (evt:Event) { if (avanca && velocidade <= 10) { velocidade ++ } if (volta && velocidade >= - 10) { velocidade -- } if ( !avanca && !volta && velocidade !=0 ) { if ( velocidade > 0 ) velocidade -- if ( velocidade < 0 ) velocidade ++ } camisetas_mc.x += velocidade; // if (Math.round(camisetas_mc.x) >= 494) { camisetas_mc.x = 494; // o x da mascara } if (Math.round(camisetas_mc.x) <= Math.round(494-(camisetas_mc.width-444))) { camisetas_mc.x = Math.round(494-(camisetas_mc.width-444)); /// width é o tamanho da mascara } } function resetSeta () { camisetas_mc.x = 494 } Compartilhar este post Link para o post Compartilhar em outros sites