..:: MX Studio Fóruns ::..: Como saber o "width" de um MC que carrega imagens de um XML - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Como saber o "width" de um MC que carrega imagens de um XML

#1 User is offline   RBabinski 

  • Group: Membros
  • Posts: 17
  • Joined: 26-June 07

Posted 09 April 2008 - 05:49 PM

Olá pessoal, estou com o seguinte problema:

Tenho um código aqui que gera uma galeria de imagens a partir de um arquivo XML, até ai ok. Está carregando as imagens e tudo mais, mas quero que essa galeria se mova conforme a posição do mouse sobre ela.
Tenho uma máscara sobre ela que também funciona. Estava usando a função getBounds e tal para delimitar a área que o mouse acionaria o deslocamento.
Eu poderia simplesmente pegar a dimensão da imagens "que é padrão" e o length do XML + espaçamento e gerar no "braço" a largura do MC, mas queria saber se posso de alguma forma pegar esse valor sem fazer "gambiarras".
Quando mando um "trace", ele me retorna "undefined".

Não sei se fui muito claro, mas desde já agradeço a ajuda.
0

#2 User is offline   ubi_rj 

  • Group: Moderador Global
  • Posts: 2920
  • Joined: 29-June 07

Posted 09 April 2008 - 06:38 PM

Seguinte...

Você esta utilizando o comando ".width" ou o comando "._width" ?

Você precisa utilizar o comando com o underline ("._width")

E para tal ação, você vai precisar utilizar a classe MovieClioLoader para poder ter controle sobre quando sua imagem terá sido carregada.
Quando a imagem tiver sido carregada, manda buscar as medidas do MovieClip e pronto.

Qualquer dúvida posta !

Abração !
0

#3 User is offline   RBabinski 

  • Group: Membros
  • Posts: 17
  • Joined: 26-June 07

Posted 10 April 2008 - 03:16 PM

Veja o código abaixo, quero mandar o valor que está dentro da função para reutilizar num código que verifica o tamanho desse movie.

exibirFotos = new XML();
exibirFotos.ignoreWhite = true;
exibirFotos.onLoad = function(success) {
numimages = this.firstChild.childNodes.length;
spacing = 140;
larguraMenu = numimages * spacing; // Gostaria de mandar esse valor pra fora da função mas não estou conseguindo.
trace(larguraMenu);
for (i=0; i<numimages; i++) {
this.picHolder = this.firstChild.childNodes[i];
this.thumbHolder = menu_mc.createEmptyMovieClip("thumbnail"+i, i);
this.thumbHolder.filters = filterArray;
this.thumbHolder._x = i*spacing;
this.thumbHolder._y = 0;
this.thumbLoader = this.thumbHolder.createEmptyMovieClip("thumbnail_image", 0);
this.thumbLoader.loadMovie(this.picHolder.attributes.miniatura);
this.thumbHolder.nome = this.picHolder.attributes.nome;
this.thumbHolder.maior = this.picHolder.attributes.maior;
this.thumbHolder.onRollOver = function() {
loader.loadMovie(this.maior);
_root.title_txt.text = this.nome;
};
}
};
exibirFotos.load("xmlphoto.xml");
0

#4 User is offline   ubi_rj 

  • Group: Moderador Global
  • Posts: 2920
  • Joined: 29-June 07

Posted 10 April 2008 - 06:36 PM

Logo abaixo do comando que você deixou em negrito tem um "trace" para verificar se você está recebendo o valor corretamente...
Esse trace está funcionando ? Ou seja, esta mostrando o valor correto ou é nele que está aparecendo undefined ?

Teóricamente ele deveria estar funcionando, não vi nada de errado com a programação.

Eu não entendi com o que você quis dizer com "mandar esse valor pra fora da função".

A variável precisa estar dentro da função para poder ser calculada, pois seu valor vai variar de acordo com a quantidade de itens em seu XML.
E fora que ao criar a variável "larguraMenu", ela vai armazenar o valor dela e pode ser acessada posteriormente sem o menor problema...

Acho que não to conseguindo entender muito bem sem problema nao....

Se quiser posta seu arquivo que fica mais fácil de voce me explicar...

Abraço !
0

#5 User is offline   RBabinski 

  • Group: Membros
  • Posts: 17
  • Joined: 26-June 07

Posted 10 April 2008 - 07:04 PM

Aparece o valor correto na variável. Eu preciso reutilizar esse valor em uma verificação que determina se esse movieclip ultrapassou uma posição X, pois ele fica embaixo de uma máscara.

Não deixo o arquivo aqui pois estou mudando outras coisas ainda, mas a lógica é a seguinte:

- É um topo de um site, onde aparecem X imagens (ele pega no XML) na horizontal;
- Essas imagens estão aparecendo apenas em uma região (horizontal), estou utilizando uma máscara para isso;
- Essa mesma máscara tem um "listener" que avalia se o mouse está sobre ela ou não. Caso não esteja, esse movieclip com as fotos dá scroll automático da direita para a esquerda. Aqui q eu preciso saber a dimensão do movieclip. Pois a partir dela eu vou saber se o mc já se deslocou o suficiente (ou seja, aparecer no limite da mascara) para poder dar scroll na direção contrária.
Caso o mouse fique sobre essa máscara, ele ativa um esquema q conforme a posição do mouse sobre ela, movimenta ela para esquerda ou para direita, aqueles scrolls básicos de tela.

Não sei se consegui ser mais claro agora ^^
0

#6 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 11 April 2008 - 12:24 AM

Se você quer usar a variável larguraMenu fora da função onLoad você tem que declarar essa variável fora da função onLoad. Assim:

CÓDIGO
var larguraMenu:Number;
exibirFotos = new XML();
exibirFotos.ignoreWhite = true;
exibirFotos.onLoad = function(success) {
numimages = this.firstChild.childNodes.length;
spacing = 140;
larguraMenu = numimages * spacing; // Gostaria de mandar esse valor pra fora da função mas não estou conseguindo.
trace(larguraMenu);
for (i=0; i<numimages; i++) {
this.picHolder = this.firstChild.childNodes[i];
this.thumbHolder = menu_mc.createEmptyMovieClip("thumbnail"+i, i);
this.thumbHolder.filters = filterArray;
this.thumbHolder._x = i*spacing;
this.thumbHolder._y = 0;
this.thumbLoader = this.thumbHolder.createEmptyMovieClip("thumbnail_image", 0);
this.thumbLoader.loadMovie(this.picHolder.attributes.miniatura);
this.thumbHolder.nome = this.picHolder.attributes.nome;
this.thumbHolder.maior = this.picHolder.attributes.maior;
this.thumbHolder.onRollOver = function() {
loader.loadMovie(this.maior);
_root.title_txt.text = this.nome;
};
}
};
exibirFotos.load("xmlphoto.xml");


Agora, quando você tentar essa variável na função do Mouse ele vai ter o valor do MovieClip.

[]s
0

#7 User is offline   RBabinski 

  • Group: Membros
  • Posts: 17
  • Joined: 26-June 07

Posted 12 April 2008 - 12:00 PM

Bah, ainda não da certo, qdo mando ver num trace fora da função da "undefined", dentro da função fica ok
0

#8 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 13 April 2008 - 02:28 PM

Poste seus arquivos para que possamos analizar ele melhor.

[]s
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


Similar Topics Collapse

  Topic Forum Started By Stats Last Post Info
*New Replies banco de dados
Porque ta aparecendo isso
PHP Guest_AAAA_* 
  • 2 Replies
  • 898 Views
New Replies Como posso fazer um loop lado a lado
não sei como fazer.
Dreamweaver clayton-mer 
  • 4 Replies
  • 1795 Views
*New Replies ugg boots what to do to eliminate hemorroids
uggs the techniques of effective residence receiving revealed
Eventos Guest_obsehanna_* 
  • 2 Replies
  • 11 Views
New Replies Brasileiro passa 3 vezes mais tempo na web que vendo TV Notícias Notícias 
  • 0 Replies
  • 291 Views
New Replies como?
tem como fazer isso?
PHP Igor de Paula 
  • 5 Replies
  • 1308 Views
New Replies Forçando POstBack
Como faço
Web Standards allcris 
  • 3 Replies
  • 2458 Views
New Replies Chefe de espionagem vê Israel como líder na ciberguerra Notícias Notícias 
  • 0 Replies
  • 203 Views
*New Replies Comprar Metoclopramide generico preco, como comprar Reglan 10 mg espana Eventos Guest_GoroGOFTDeego_* 
  • 0 Replies
  • 13 Views

Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)