虽然我对接口定义不是很熟悉,但我确实知道我编写了很多处理类型化和非类型化参数和返回的函数。
如果您所描述的内容是不可能的,并且取决于您正在做什么,我建议您编写一个可以将无类型变量转换为类型变量的简单函数。它们相当简单。然后,您可以调用此函数来处理通过接口定义传入的任何数据。
一个粗略的例子(未经测试):
function convertDataTo(type:String, input:*):*
{
var rI:int;
var rN:Number;
var rS:String;
var rB:Boolean;
switch(type)
{
case "int":
if(isNaN(int(input))
{
rI = 0;
}
else
{
rI = int(input);
}
break;
case "Number":
if(isNaN(Number(input))
{
rN = 0;
}
else
{
rN = Number(input);
}
break;
case "Boolean":
if(input == "true")
{
rB = true;
}
else if(input == "false")
{
rB = false;
}
else
{
rB = Boolean(input);
}
return rB;
break;
case "String":
rS = input.toString();
break;
default:
trace("Invalid data type!");
return 0;
break;
}
}
您还可以重写此函数以从 String 类型转换为任何其他类型,并让您的接口定义始终返回字符串。另一方面,您可以拥有一个类似的函数,将所有变量转换为可由该函数解释的字符串。
顺便说一句,我不得不使用这种字符串解释来编写我自己的脚本语言,以便在我的一个更大的项目中使用。
当然,我不会假装这直接回答了你的问题,但我想排除这种意外情况,以防你正在寻找的东西不起作用。