在将一些XML加载到Actionscript之后,我试图调用一个函数,而我只是想知道如何调用该函数。 例:
1 2 3 4 5 6 7 8
| //Function Declarations
function parentFunction()
{
function callMe()
{
textField.text ="lawl";
}
} |
现在,如何在代码的不同部分中调用" callMe()"函数,如onRelease函数?
1 2 3 4 5 6
| on(release)
{
callMe(); //doesn't work
parentFunction().callMe(); //doesn't work
parentFunction.callMe(); //doesn't work
} |
ActionScript 2.0太烂了! 有任何想法吗?
您是否被迫在parentFunction内部声明callMe?我想是因为否则你会做
函数parent(){}
函数callMe(){}
需要明确的是,一个功能不能拥有另一个功能,除非您为该功能提供了一定范围。
因此,在JavaScript中,您可以通过使用原型对象将callMe函数声明为parentFunction返回的对象的方法来实现。
http://www.howtocreate.co.uk/tutorials/javascript/objects
对于ActionScript,请在??Adobe网站上阅读此文章:
http://www.adobe.com/devnet/flex/articles/as_collections_03.html
编辑:更多阅读后,它似乎显示了您做事的方式,您实际上是在将callMe声明为私有函数。请参阅本文,这应该使整个私人/公共javascript问题更容易理解。
对不起,英语不好,
设置(Menu-)Button的处理程序,控制开关位于MC中。
第一帧上舞台上的MC"按钮"(其中有3个" testbtn"):
1 2 3 4 5 6 7
| 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" Butttons"):
1 2 3 4 5 6
| function TheMenuListener(evt:Event):void{
trace(evt.target.name);
}
...
Buttons.SetMethod(this.TheMenuListener); |
返回testbtn.name
编辑:哦,它适用于AS3,但可能有帮助!
1 2 3 4 5 6 7 8 9 10
| //v--- on the frame
function callMe(){
textArea.text='lawl';
}
//v---- for button
on(release){
callMe();
}
--- or ----- |
1 2 3 4 5 6 7 8 9
| //CUSTOM!!
//v---- on frame
function callMe(say){
textArea.text=say;
}
//v--- for button
on(release){
callMe('lawl');
} |
当然,一个功能可以"拥有"另一个功能。这是ECMAScript记住的。只需在函数内声明一个变量并为其分配一个函数。然后,您可以使用" call"方法来调用函数。
函数foo()
{
trace(" foo");
1 2 3 4 5 6
| var bar = function()
{
trace("bar");
};
bar.call(); |
}
foo();
我是个白痴。我忘记了整个"一个函数不能拥有另一个函数"的内容,所以我想出了另一种方法。谢谢!