1

在将一些 XML 加载到 Actionscript 后,我​​试图调用一个函数,我只是想知道如何调用该函数。例子:

//Function Declarations
function parentFunction()
{
    function callMe()
    {
     textField.text = "lawl";
    }
}

现在,我如何在代码的不同部分调用“callMe()”函数,比如 onRelease 函数?

on(release)
{
callMe(); //doesn't work
parentFunction().callMe(); //doesn't work
parentFunction.callMe(); //doesn't work
}

ActionScript 2.0 实在是太不靠谱了!有任何想法吗?

4

5 回答 5

2

您是否被迫在 parentFunction 中声明 callMe?我假设是因为否则你会这样做

函数父(){}函数调用我(){}

需要明确的是,一个函数不能拥有另一个函数,除非您为该函数提供一定的生存空间。

因此,在 JavaScript 中,您可以通过使用原型对象将 callMe 函数声明为 parentFunction 返回的对象的方法来做到这一点。

http://www.howtocreate.co.uk/tutorials/javascript/objects

对于 ActionScript,请阅读 Adob​​e 网站上的这篇文章:http: //www.adobe.com/devnet/flex/articles/as_collections_03.html

编辑:在阅读了更多内容后,它看起来就像您做事的方式一样,您实际上是在将 callMe 声明为私有函数。请参阅这篇文章,它应该使整个私有/公共 javascript 问题更容易理解。

于 2008-09-02T20:49:29.013 回答
0

我是个白痴。我忘记了整个“一个函数不能拥有另一个函数”的事情,所以我想出了另一种方法来做到这一点。谢谢!

于 2008-09-02T21:29:33.083 回答
0

当然,一个函数可以“拥有”另一个函数。这是 ECMAScript 记住的。只需在函数中声明一个变量并为其分配一个函数。然后,您可以使用“调用”方法调用您的函数。

函数 foo() { trace("foo");

var bar = function()
{
    trace("bar");
};

bar.call();

}

富();

于 2008-09-22T06:56:34.203 回答
0
//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');
}
于 2008-11-13T04:43:02.350 回答
0

抱歉英语不好,为(菜单-)按钮设置处理程序,whitch 位于 MC 中。

舞台上的 MC“按钮”(其中包含 3 个“testbtn”)@ 第一帧:

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);
}

舞台(其中有 MC“按钮”)@第一帧:

function TheMenuListener(evt:Event):void{
    trace(evt.target.name);

}
...
Buttons.SetMethod(this.TheMenuListener); 

返回 testbtn.name

编辑:哦,它适用于 AS3,但也许有帮助!

于 2010-07-13T12:56:26.057 回答