THCB 0 Denunciar post Postado Julho 30, 2008 Fiz um código de um slideshow que puxa fotos e títulos de um XML. Usei este código em duas páginas do meu site. Exatamente igual, pois precisava do mesmo esquema de fotos, porém com fotos diferentes. Logo, fiz um xml pra cada, mas com o Action Script exatamente igual. Quando testo cada página separadamente ocorre tudo como o esperado. Porém, essas páginas (swfs.) são chamados por uma página principal (swf. principal). por loadMovie.E é aí que eu tenho problemas. Quando navego entre as duas páginas com o mesmo Action começa a travar tudo. O que pode ser isso? Me falaram q pode ser pq o código em AS é o mesmo, ai confundi o Flash com as variáveis iguais. Como solucionar esse problema? Obrigada desde já, Thais Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Julho 31, 2008 Fiz um código de um slideshow que puxa fotos e títulos de um XML. Usei este código em duas páginas do meu site. Exatamente igual, pois precisava do mesmo esquema de fotos, porém com fotos diferentes. Logo, fiz um xml pra cada, mas com o Action Script exatamente igual. Quando testo cada página separadamente ocorre tudo como o esperado. Porém, essas páginas (swfs.) são chamados por uma página principal (swf. principal). por loadMovie.E é aí que eu tenho problemas. Quando navego entre as duas páginas com o mesmo Action começa a travar tudo. O que pode ser isso? Me falaram q pode ser pq o código em AS é o mesmo, ai confundi o Flash com as variáveis iguais. Como solucionar esse problema? Obrigada desde já, Thais Pode ter acontecido de você esquecer de trocar o nome dos arquivos xml, e estar chamando o mesmo arquivo xml duas vezes. abs Compartilhar este post Link para o post Compartilhar em outros sites
leila•trupe 1 Denunciar post Postado Julho 31, 2008 você pode usar o mesmo nome de variáveis sem problema, só tem que dizer de onde elas são. Faça o seguinte: use this._lockroot = true; no início dos seus arquivos que são puxados pelo principal e quando for referenciar as variáveis use _root.variavel ou this.variavel (quando possível). Dependendo da estrutura que você fez só o " this._lockroot = true; " já resolverá o problema. Compartilhar este post Link para o post Compartilhar em outros sites
THCB 0 Denunciar post Postado Julho 31, 2008 coloquei o this._lockroot = true; no frame em que tenho o código AS da galeria de fotos, e nao deu certo. aqui esta meu codigo AS this._lockroot = true; import mx.transitions.Tween; import mx.transitions.easing.*; //nova instancia da classe XML usada para carregar o arquivo XMl "slideshow.xml" var myShowXML = new XML(); myShowXML.ignoreWhite = true; myShowXML.load("slideshow.xml"); //Puxa as informações do XML, especificando um nome no flash para cada atributo do XML _root.myWidth = myShowXML.firstChild.attributes.width; _root.myHeight = myShowXML.firstChild.attributes.height; _root.mySpeed = myShowXML.firstChild.attributes.speed; _root.myImages = myShowXML.firstChild.childNodes;//Referencia para todos os elementos que tenham a tag <image> _root.myImagesNo = myImages.length;//Numero de imagens do arquivo XML //Criando a função para o movie-clip "container", que abrigará o slideshow function createContainer() { _root.createEmptyMovieClip("myContainer_mc",_root.getNextHighestDepth()); //Clocando uma borda ao movie-clip "container" usando o width e o height do XML (ainda dentro da funcao) myContainer_mc.lineStyle(5,0x000000,100); myContainer_mc.lineTo(_root.myWidth,0); myContainer_mc.lineTo(_root.myWidth,_root.myHeight); myContainer_mc.lineTo(0,_root.myHeight); myContainer_mc.lineTo(0,0); //Centralizando o slideshow (para isso retira o width e height do palco e do mc "container" myContainer_mc._x = (Stage.width-myContainer_mc._width)/2; myContainer_mc._y = (Stage.height-myContainer_mc._height)/2; } //Chamando a função "createContainer" myShowXML.onLoad = function() { _root.myWidth = myShowXML.firstChild.attributes.width; _root.myHeight = myShowXML.firstChild.attributes.height; _root.mySpeed = myShowXML.firstChild.attributes.speed; _root.myImages = myShowXML.firstChild.childNodes; _root.myImagesNo = myImages.length; createContainer(); callImages(); }; //Carregando as imagens com a classe MovieClipLoader e criando um loop para executar o codigo repetidas vezes //e criar um container separado para cada imagem //o Listener é usado para saber como o progresso do carregamento esta indo (listener serve para dizer o que //acontece com um determinado objeto (no caso o MovieClipLoader). function callImages() { _root.myMCL = new MovieClipLoader(); _root.myPreloader = new Object(); _root.myMCL.addListener(_root.myPreloader); _root.myClips_array = [];//Criando um array para carregar todas as imagens _root.myPreloader.onLoadStart = function(target) {//evento para o listener para criar o campo de texto e centraliza-lo _root.createTextField("myText_txt",_root.getNextHighestDepth(),0,0,100,20); _root.myText_txt._x = (Stage.width-_root.myText_txt._width)/2; _root.myText_txt._y = (Stage.height-_root.myText_txt._height)/2; _root.myText_txt.autoSize = "center"; }; _root.myPreloader.onLoadProgress = function(target){//Preloader _root.myText_txt.text = "Loading.. "+_root.myClips_array.length+"/"+_root.myImagesNo+" Completed"; } _root.myPreloader.onLoadComplete = function(target) {//evento para dizer quantas imagens foram carregadas _root.myClips_array.push(target);//adiciona qualquer valor passado ao array e traz todos valores target._alpha=0;//deixar invisivel para depois receber a animação com fade if (_root.myClips_array.length == _root.myImagesNo) {//verifica se todas as imagens foram carregadas //ou seja, se a variavel muImagesNo e igual aos arrays carregados _root.myText_txt._y = myContainer_mc._y + myContainer_mc._height;//colocar a posicao do campo no lugar da legenda moveSlide(); myShowInt = setInterval(moveSlide, (_root.mySpeed*1000)+1000);//faz o intervalo com dados puxados do XML } } for (i=0; i<_root.myImagesNo; i++) { temp_url = _root.myImages[i].attributes.url; temp_mc = myContainer_mc.createEmptyMovieClip(i, myContainer_mc.getNextHighestDepth()); _root.myMCL.loadClip(temp_url,temp_mc); } } //Funcao que vai controlar o slideshow //Fade out para a imagem atual (classe Tween) //Fade in para a próxima imagem (classe Tween) function moveSlide (){ current_mc = _root.myClips_array[_root.target_mc]; new Tween(current_mc, "_alpha", Strong.easeOut, 100, 0, 1, true); _root.target_mc++; if (_root.target_mc >= _root.myImagesNo){//Condicao para nao permitir que a variavel "target" exceda o numero //de imagens _root.target_mc = 0; } _root.myText_txt.text = _root.myImages[target_mc].attributes.title; next_mc = _root.myClips_array[_root.target_mc]; new Tween(next_mc, "_alpha", Strong.easeOut, 0, 100, 1, true); } nao entendi a parte q você falou pra referenciar as variaveis com o _root.variavel ou this.variavel =/ Compartilhar este post Link para o post Compartilhar em outros sites