Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

THCB

swf. sozinho rola certinho, quando é puxado por um filme principal tra

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.