Não consigo fazer a minha classe moduleButton se comunicar com a main.
Tenho um método público na classe moduleButton, e quero chamar ele na classe main (já dei import nesta classe), porém sempre que vou rodar o programa, no debugger aparece:
1180: Call to a possibly undefined method getInstance.
Mas o método existe, e é público!
Seguem os 2 AS
main
package classes
{
import classes.moduleButton;
import flash.display.MovieClip;
import flash.display.Stage;
import flash.display.StageScaleMode;
import flash.display.StageDisplayState;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class main extends MovieClip
{
private var myLoader : URLLoader;
private var myRequest : URLRequest;
private var xmlData : XML;
private var numberOfSlides : Number;
public function main()
{
stage.displayState = StageDisplayState.FULL_SCREEN;
stage.scaleMode = StageScaleMode.EXACT_FIT;
displayStage();
}
private function displayStage():void
{
if (getInstance())
{
trace("CLICOU");
}
else
{
trace("EM BRANCO");
}
}
public function XMLLoad():void
{
myLoader = new URLLoader();
myRequest = new URLRequest("xml/modules.xml");
myLoader.load(myRequest);
myLoader.addEventListener(Event.COMPLETE, XMLLoaded);
}
public function XMLLoaded(event:Event):void
{
xmlData = new XML(event.target.data);
numberOfSlides = xmlData.module[getInstance()].*.length();
for (var n : Number = 0;n < numberOfSlides; n++) //percorre todas laminas do respectivo modulo
{
trace("Lamina: " + xmlData.module[getInstance()].slide[n].name);
}
}
}
}
moduleButton
package classes
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class moduleButton extends MovieClip
{
private var _instance : *;
public function moduleButton()
{
this.buttonMode = true;
this.addEventListener(MouseEvent.ROLL_OVER,animIn);
this.addEventListener(MouseEvent.ROLL_OUT,animOut);
this.addEventListener(MouseEvent.CLICK,setInstance);
}
private function animIn(e:MouseEvent):void
{
this.alpha -= .3;
}
private function animOut(e:MouseEvent):void
{
this.alpha = 1;
}
private function setInstance(e:MouseEvent):void
{
_instance = e.target.name.toString();
_instance = _instance.substr(6);
_instance = Number(_instance);
}
public function getInstance():Number
{
return _instance;
}
}
}Alguma idéia do por que não conseguir chamar o método getInstance na classe main?
O que eu quero é receber a informação do que foi clicado (e essa informação eu recebo na classe moduleButton), e passar ela para o meu método XMLLoad -> XMLLoaded, que existe na classe main.
Ah, e a classe moduleButton é associada com meus botões que são movieClips (linkage).
A main é a classe principal do meu projeto.
obrigado
Edição feita por: Nicholas Pufal, 29/03/2010, 16:23.










