Wil*_*den 3 apache-flex actionscript types casting date
在ActionScript中,我发现,将日期转换为日期并将其分配给Date类型的变量会引发TypeError:
var date : Date = Date(new Date(2012, 01, 01));
Error #1034: Type Coercion failed: cannot convert "Wed Aug 22 17:06:54 GMT+1000 2012" to Date.
Run Code Online (Sandbox Code Playgroud)
这显然是错误的,但我想知道它为什么会发生.我的理论是,像数字强制转换一样,日期转换被覆盖以尝试转换给定类型而不是仅仅转换它.
有趣的是,将任何其他内容转换为日期并将其分配给日期也会失败:
var date : Date = Date("1/2/3");
var date : Date = Date(123);
// (Both fail)
Run Code Online (Sandbox Code Playgroud)
但是将它分配给对象成功:
var object : Object = Date(new Date(2012, 01, 01));
var object : Object = Date("1/2/3");
var object : Object = Date(123);
// (All succeed)
Run Code Online (Sandbox Code Playgroud)
AS3有时会非常混乱和不一致.基本上你没有在代码示例中投射任何东西.
AS3有一些全局的camelCased函数,它们优先于转换运算符.Vector也具有类似的全局功能.
当你在没有new运算符的情况下执行Date(bla)时,它显然会创建该日期的字符串表示...尝试使用as运算符进行转换.