Ir para conteúdo

POWERED BY:

Arquivado

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

maicon_m

Access of possibly undefined property

Recommended Posts

Estou tentando configurar o componente 3DWall para abrir um link ao clicar em uma thumbnail. O código que peguei do guia do componente é este:

 

import com.flashloaded.Wall3D.Wall3DEvent;
import flash.net.navigateToURL;
import flash.net.URLRequest;
wall.addEventListener(Wall3DEvent.CLICK,clickHandler);
function clickHandler(evt:Wall3DEvent):void{
if(evt.image.state == "default") {
var url:String = evt.image.getUserProperty("url");
var request:URLRequest = new URLRequest(url);
navigateToURL(request, "_blank");
}
}

Instancio o movieclip de "wall" e quando tento executar dá os seguintes erros:

 

1119: Access of possibly undefined property image through a reference with static type com.flashloaded.Wall3D:Wall3DEvent.

1119: Access of possibly undefined property image through a reference with static type com.flashloaded.Wall3D:Wall3DEvent.

 

 

Pelo que entendi, as propriedades não estão definidas.. Mas como não conheço muito de actionscript gostaria que vocês me ajudassem a entender onde eu errei...

Compartilhar este post


Link para o post
Compartilhar em outros sites

if(evt.image.state == "default") {

Esse image ai não existe, simples assim... como não existe ele não encontra.

 

E como desconheço essa biblioteca que você ta usando acho que não vou poder lhe ajudar.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

O actionscript acima é para ler o seguinte arquivo xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<gallery imagesFolder="img/" thumbnailsFolder="thumb/" numRows="2">
<img src="bannervoo2610.gif" width="148" height="226" url="festas/23102009/festas.php">
</gallery>

Que daí quando clica na imagem ele direciona para a url correspondente.

 

Talvez isso ajude...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta então cade a hora que você carrega o XML???

 

Você não consegue acessar uma propriedade do XML se não o carregou ainda... você precisa carregar o mesmo

Para ai então poder verificar o conteudo que tem dentro do mesmo.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte:

 

Este código:

 

import com.flashloaded.Wall3D.Wall3DEvent;
import flash.net.navigateToURL;
import flash.net.URLRequest;
wall.addEventListener(Wall3DEvent.CLICK,clickHandler);
function clickHandler(evt:Wall3DEvent):void{
if(evt.image.state == "default") {
var url:String = evt.image.getUserProperty("url");
var request:URLRequest = new URLRequest(url);
navigateToURL(request, "_blank");
}
}

eu coloco dentro do arquivo .fla, daí exporto o .swf e coloco ele na mesma pasta que o arquivo .xml cujo conteúdo é:

 

<?xml version="1.0" encoding="UTF-8"?>
<gallery imagesFolder="img/" thumbnailsFolder="thumb/" numRows="2">
<img src="bannervoo2610.gif" width="148" height="226" url="festas/23102009/festas.php">
</gallery>

Desta forma, o .swf mostra o que esta listado no arquivo xml. As imagens, só não funciona o url. Mostra as imagens mas elas não se tornam links para outra página. Então dá o erro:

 

1119: Access of possibly undefined property image through a reference with static type com.flashloaded.Wall3D:Wall3DEvent.

1119: Access of possibly undefined property image through a reference with static type com.flashloaded.Wall3D:Wall3DEvent.

 

 

Quando eu tento exportar o .swf.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim pois você continua sem chamar o XML

 

Se não chama o XML não existe a propriedade image ainda...

Entendeu???

 

Não basta criar o XML você tem que chamar o XML em algum lugar do seu script coisa eu não ta acontecendo em lugar nenhum ai...

 

Tipo você tem que fazer algo do tipo

var xmlLoader:URLLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, showXML);
xmlLoader.load(new URLRequest("playlistAS3.xml"));
function showXML(e:Event):void {
XML.ignoreWhitespace = true;
var songs:XML = new XML(e.target.data);
trace(songs.track.length());
var i:Number;
for (i=0; i < songs.track.length(); i++) {
//pegue o conteudo do seu xml aqui!
}
};

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.