Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 使用AS3中的函数传递和返回变量_Actionscript 3_Function_Variables_Return - Fatal编程技术网

Actionscript 3 使用AS3中的函数传递和返回变量

Actionscript 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(

我很难理解如何使用AS3以特定的方式在函数之间传递属性。如何更改下面的代码,以便deleteButton函数可以从mySelection函数检索变量myLike

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