Funções de chamada de dentro da Função - Flash Actionscript 2.0
-
09-06-2019 - |
Pergunta
Eu estou a tentar chamar uma função depois de eu carregar o XML em Actionscript, e eu só estou querendo saber como eu chamar essa função.Exemplo:
//Function Declarations
function parentFunction()
{
function callMe()
{
textField.text = "lawl";
}
}
Agora, como faço para chamar o "callMe () a função" em uma parte diferente do código, como um onRelease função?
on(release)
{
callMe(); //doesn't work
parentFunction().callMe(); //doesn't work
parentFunction.callMe(); //doesn't work
}
O ActionScript 2.0 é tão vacilante!Qualquer idéias?
Solução
Você está obrigado a declarar callMe dentro de parentFunction?Eu assumo isso porque, do contrário, você teria apenas que fazer
a função principal() { } função callMe() { }
Para ser mais claro, uma função não pode próprios de outra função, a menos que você forneça algumas possibilidades para essa função para se viver.
Assim, em JavaScript, você pode fazer isso usando o protótipo de objeto para declarar a callMe função como um método do objeto que parentFunction devolvidos.
http://www.howtocreate.co.uk/tutorials/javascript/objects
Para ActionScript, leia este artigo no site da Adobe:http://www.adobe.com/devnet/flex/articles/as_collections_03.html
EDITAR:Após a leitura um pouco mais ele aparece do jeito que você fez as coisas, na verdade, você está declarando callMe como um privada função.Veja este artigo que deve fazer todo o público/privado javascript problema muito mais compreensível.
Outras dicas
Eu sou um idiota.Esqueci-me de toda a "uma função não podem possuir função de outra" coisa, então, eu descobri outra maneira de o fazer.Obrigado!
É claro que uma função pode "possuir" uma outra função.este é ECMAScript lembrar.Basta declarar uma variável dentro de sua função e atribuir uma função a ele.Em seguida, você pode chamar a função usando o "" chamada de método.
função foo() { trace("foo");
var bar = function()
{
trace("bar");
};
bar.call();
}
foo();
//v--- on the frame
function callMe(){
textArea.text='lawl';
}
//v---- for button
on(release){
callMe();
}
--- or -----
//CUSTOM!!
//v---- on frame
function callMe(say){
textArea.text=say;
}
//v--- for button
on(release){
callMe('lawl');
}
Desculpe pelo mau inglês, Definir um manipulador para (Menu)Botões, whitch estão localizados em um MC.
MC "Botões" no Palco (com 3 "testbtn" nele) @ primeiro quadro:
function SetMethod(Method:Function){
//trace(Method.call());
//or something like:
testbtn1.addEventListener(MouseEvent.CLICK, Method);
testbtn2.addEventListener(MouseEvent.CLICK, Method);
testbtn3.addEventListener(MouseEvent.CLICK, Method);
}
Estágio (com MC "Butttons" nele) @ primeiro quadro:
function TheMenuListener(evt:Event):void{
trace(evt.target.name);
}
...
Buttons.SetMethod(this.TheMenuListener);
retorna o testbtn.nome
Editar:Ah, para AS3, mas talvez ajude!