如何将属性作为参数传递给actionscript中的函数

时间:2015-08-19 00:41:11

标签: actionscript-3 flash actionscript

我有一个名为mcButton的动画片段,其属性为scaleX,我必须将其传递给操作mcButton.scaleX的函数。

manipulateValue(mcButton.scaleX);

function manipulateValue(mcProperty:?)
{
   mcProperty += 2;

   ..execute other things here...
}

该函数对几个属性和几个movieclip执行相同的代码,所以我必须使它成为通用的。关于我如何做到这一点的任何帮助?

2 个答案:

答案 0 :(得分:2)

如果你想操纵几个属性..如何传递mcButton对象?

manipulateValue(mcButton);

function manipulateValue(obj:MovieClip)
{
    obj.scaleX += 2;

    // manipulate other properties
    obj.scaleY += 2;
    obj.width = ....;
    obj.height = ....;

    ..execute other things here...
}

更新时间:8月19日13:55(JST)

行。如果你想一次传递一个属性,那怎么样?

manipulateValue(mcButton, "scaleX");
manipulateValue(mcButton, "scaleY");

function manipulateValue(obj:MovieClip, prop: String)
{
    if (obj.hasOwnProperty(prop)){
        obj[prop] += 2;
    }

    ..execute other things here...
}

答案 1 :(得分:1)

好像你已经足够接近你所追求的了。我相信您尝试使用的内容称为通配符(例如:$("#subcat").change(function(){)。

虽然我确信我已经读到使用通配符并不是最好的事情 - 我不完全确定具体的细节原因,但我确定它被视为"不良做法" - 所以尝试使用:

function manipulateValue(val:*)

请注意,function manipulateValue(val:Number) { // lines of code such as: // val += 20; } scaleXscaleY都是alpha值 - 所以使用它会有效。

如果您还打算操纵不是Number的值,那么最好使用上面的通配符示例。