有没有办法/我想知道如何动态使用变量。 我的想法是让一个movieclip在传递参数的同时调用一个函数。 然后,参数值将传递给函数以获取更多脚本。
如何利用函数的参数变量,在函数中使用其值作为instanceName.method执行?
示例代码,我有两个带有实例名称的movieclip,box1和box2。 一旦任何一个动画片段按下,该功能就会执行。
// movieClip, instance name : box1
on(press){
_root.functionName(this._name);
}
on(release){ stopDrag(); }
最后,这是函数的代码。我追踪“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.
}
}
我可以将参数变量用作对象吗?
答案 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;
}
}