Actionscript 3 使用AS3中的函数传递和返回变量
我很难理解如何使用AS3以特定的方式在函数之间传递属性。如何更改下面的代码,以便deleteButton函数可以从mySelection函数检索变量myLikeActionscript 3 使用AS3中的函数传递和返回变量,actionscript-3,function,variables,return,Actionscript 3,Function,Variables,Return,我很难理解如何使用AS3以特定的方式在函数之间传递属性。如何更改下面的代码,以便deleteButton函数可以从mySelection函数检索变量myLike import flash.ui.Keyboard; import flash.events.MouseEvent; import flash.ui.Mouse; stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); btnDelete.addEventListener(
import flash.ui.Keyboard;
import flash.events.MouseEvent;
import flash.ui.Mouse;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
btnDelete.addEventListener(MouseEvent.CLICK, deleteButton);
function keyPressed(event:KeyboardEvent)
{
var myLike:String;
if (event.keyCode==49) {
myLike = "ice cream";
}
else if (event.keyCode==50) {
myLike = "chocolate milk";
}
else if (event.keyCode==51) {
myLike = "cookies";
}
else
{
myLike = "nothing";
}
mySelection(myLike);
}
function mySelection(myLike)
{
trace("I select " + myLike + ".");
deleteButton(myLike);
}
function deleteButton(event:MouseEvent, myLike) {
trace(myLike + "has been deleted");
}
但这段代码实际上并没有删除任何内容。如果要删除已单击的按钮,请尝试以下onButtonClicked方法:
function onButtonClicked( evt:MouseEvent ):void {
var deleteThis:String = evt.target.name;
// path to the display list your button is in
removeChild( evt.target );
}
您所看到的几个问题是:
mylection()中的myLike
和deleteButton()中的myLike
是不同的myLike
;它们是两个同名的独立变量mySelection()
的myLike
只能在mySelection()
的内部使用,而deleteButton()
的myLike
只能在deleteButton()的内部使用
deleteButton()
中还有一个名为event
的参数未被使用。另外,当您尝试在mySelection()
内部调用deleteButton()
时,您只传递一个参数,而deleteButton()
有两个不同的参数:事件
和myLike
function mySelection(myLike)
{
trace("I select " + myLike + ".");
deleteButton(myLike);
}
function deleteButton(myLike) {
trace(myLike + "has been deleted");
}
function mySelection(myLike)
{
trace("I select " + myLike + ".");
deleteButton(myLike);
}
function deleteButton(myLike) {
trace(myLike + "has been deleted");
}