问题描述
我使用的是 AIR v32.0。我有一个扩展 netConnection 的类。我需要覆盖接收任意一组参数的现有方法。我需要做一些零碎的事情,然后让原始代码处理剩下的事情。我知道如何接收参数“...参数”,但我在完成后找不到调用原始代码的正确方法。
到目前为止我所拥有的不起作用的是;
public override function call(strCommand:String,rspResponder:Responder,...parameters):void
{
trace("parameters.length=" + parameters.length)
if (parameters.length == 0)
{
super.call(strCommand,rspResponder);
}
else
{
super.call(strCommand,rspResponder,parameters);
}
}
线;
super.call(strCommand,rspResponder);
按预期工作。
线;
super.call(strCommand,参数);
似乎没有被“调用”方法正确处理。
如何正确地将“...参数”传递给 netConnection 类的“super.call”方法?
编辑:
本身没有错误。发生的情况是它以网络服务不期望的格式向 FluorineFX 网络服务发送消息,然后 Ralphs 在其鞋子上。错误是“处理级别错误描述找不到名称为 LoginCheck 的合适方法”如果我删除覆盖的方法,一切正常。
当我在 Fiddler 中查看输出结果时,使用 & 而不使用覆盖方法运行它时,某些不可打印的字符存在差异。但我无法确定实际差异是什么。
附加编辑:
我有一个非常糟糕的部分工作(至少它有效),也许这会激发某人的想象力。我会不好意思把它投入生产。
public override function call(strCommand:String,...parameters):void
{
trace("parameters.length=" + parameters.length)
switch (parameters.length)
{
case 0:
super.call(strCommand,rspResponder);
break;
case 1:
super.call(strCommand,parameters[0]);
break;
case 2:
super.call(strCommand,parameters[0],parameters[1]);
break;
case 3:
super.call(strCommand,parameters[1],parameters[2]);
break;
case 4:
super.call(strCommand,parameters[2],parameters[3]);
break;
case 5:
super.call(strCommand,parameters[3],parameters[4]);
break;
case 6:
super.call(strCommand,parameters[4],parameters[5]);
break;
case 7:
super.call(strCommand,parameters[5],parameters[6]);
break;
case 8:
super.call(strCommand,parameters[6],parameters[7]);
break;
case 9:
super.call(strCommand,parameters[7],parameters[8]);
break;
case 10:
super.call(strCommand,parameters[8],parameters[9]);
break;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)