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.