函数的参数变量作为对象

时间:2012-07-31 08:29:12

标签: function variables parameters actionscript-2

有没有办法/我想知道如何动态使用变量。 我的想法是让一个movieclip在传递参数的同时调用一个函数。 然后,参数值将传递给函数以获取更多脚本。

如何利用函数的参数变量,在函数中使用其值作为instanceName.method执行?

示例代码,我有两个带有实例名称的movieclip,box1和box2。 一旦任何一个动画片段按下,该功能就会执行。

// movieClip, instance name : box1
on(press){
    _root.functionName(this._name);
}
on(release){ stopDrag(); }
  • movieClip,实例名称:box2,具有相同的代码。
  • 通过“this._name”
  • 将身份传递给该函数

最后,这是函数的代码。我追踪“b”以了解它的价值。 添加了startDrag()以便能够拖动动画片段。 “我怎样才能在拖动动画片段时跟踪”--drag“+ b?”

提前谢谢你。我曾想过使用这段代码。这是允许的吗?

function functionName(b){

    trace(b+" selected.");
    startDrag(b);

    b.onMouseMove = function(){        // <---- please help
        trace("--drag "+b);
    }   
}

代码可能看起来简单而无用:)这不是我正在使用的代码。我只是想在函数内部执行onmousemove的正确行。

function functionName(param_var){    
    object.eventMethod = function () {
        // some code here.
    }
}

我可以将参数变量用作对象吗?

2 个答案:

答案 0 :(得分:0)

您应该以不同方式构建代码。这是一个例子:

//Import Delegate
import mx.utils.Delegate;

//First you set the event with Relegate which will prevent from Flash scope problems
box1.onPress = Delegate.create(this, onBoxPressed);
box1.onPress.currentBox = box1;
box1.onRelease = Delegate.create(this, onBoxReleased);
box1.onRelease.currentBox = box1
box2.onPress = Delegate.create(this, onBoxPressed);
box2.onPress.currentBox = box2;
box2.onRelease = Delegate.create(this, onBoxReleased);
box2.onRelease.currentBox = box2;

//Function executed when the box is pressed
function onBoxPressed():Void {
    var box:MovieClip = arguments.caller.currentBox;
    box.startDrag();
    box.onMouseMove = Delegate.create(this, onMouseMoved);
}

//Function executed when the box is released
function onBoxReleased():Void {
    var box:MovieClip = arguments.caller.currentBox;
    delete box.onMouseMove;
    box.stopDrag();
}

//Function executed when the box is pressed and the mouse moves
function onMouseMoved():Void {
    trace("I'm moving my box");
}

答案 1 :(得分:0)

我找到了答案。感谢您查看我的帖子。

//Having function that would dynamically manage parameters into object
//given that the object is found in the ROOT.

function myFunction(param_var) {
    // _root[param_var] => can be use as an Object regards to the parameter
    _root[param_var].eventMehtod= function(){    
        // some code here;
    } 
}