Apache flex 为什么在ActionScript中将日期转换为日期失败?
在ActionScript中,我发现,将日期强制转换为日期并将其分配给日期类型变量会引发类型错误:Apache flex 为什么在ActionScript中将日期转换为日期失败?,apache-flex,date,actionscript,types,casting,Apache Flex,Date,Actionscript,Types,Casting,在ActionScript中,我发现,将日期强制转换为日期并将其分配给日期类型变量会引发类型错误: 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. 这显然是错误的,但我想知道为什么会这样。我的理论是,日期强制转换,就像数字强制转换一样,已经被覆盖以尝试转换给
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.
这显然是错误的,但我想知道为什么会这样。我的理论是,日期强制转换,就像数字强制转换一样,已经被覆盖以尝试转换给定类型,而不是仅仅强制转换它
有趣的是,将任何其他内容强制转换为日期并将其指定为日期也会失败:
var date : Date = Date("1/2/3");
var date : Date = Date(123);
// (Both fail)
但将其分配给对象成功:
var object : Object = Date(new Date(2012, 01, 01));
var object : Object = Date("1/2/3");
var object : Object = Date(123);
// (All succeed)
AS3有时会非常混乱和不一致。 基本上,您没有在代码示例中强制转换任何内容 AS3有一些全局camelCased函数,它们将优先于强制转换操作符。 向量也具有类似的全局函数
当您在没有新操作符的情况下执行日期(bla)时,它显然会创建该日期的字符串表示形式。。。尝试改用as运算符进行强制转换。如果编译器参数
<!-- Invalid Date cast operation. -->
<warn-bad-date-cast>true</warn-bad-date-cast>
真的
也存在于您的中。请注意数组强制转换:
var a:Array=Array([1,2,3])
将创建一个新数组,其中Array[1,2,3]
作为其第一个也是唯一的元素。强制转换只能这样做:var a:Array=[1,2,3]as Array
Aah谢谢,这就解释了。有这些全局函数的文档吗?从这里开始,有一个DL'able zip,但它们隐藏了这个东西。查找“顶级”对象。它本质上是primative,但11.2或11.3播放器添加了primative JSON对象。