apache-flex - 为什么在 ActionScript 中将日期转换为日期会失败?

标签 apache-flex date actionscript types casting

在 ActionScript 中,我发现,将 Date 转换为 Date 并将其分配给 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.

这显然是错误的,但我想知道为什么会这样。我的理论是 Date 转换与 Number 转换一样,已被覆盖以尝试转换给定类型而不是仅仅转换它。

有趣的是,将任何其他内容转换为 Date 并将其分配给 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 函数,它们将优先于转换运算符。 Vector也有类似的全局函数。

当您在不使用 new 运算符的情况下执行 Date(bla) 时,它显然会创建该日期的字符串表示形式...尝试使用 as 运算符进行转换。

关于apache-flex - 为什么在 ActionScript 中将日期转换为日期会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12068035/

相关文章:

css - 已阅读 FlexVersion 兼容性 - _NOT_ Flex 3 到 Flex 4 问题

css - 不同语言的皮肤

apache-flex - 如何在 flex 中设置 hslider 对齐

javascript - 如何更改 JavaScript 中日期选择的语言?

actionscript - 什么在播放我的 SWF?

java - 迷失在日期和时区

flash - AS3 嵌入访问子影片剪辑

php - 处理日期选择器变体 (PHP/MySQL)

php - Carbon addWeeks()函数不起作用

flash - 在 ActionScript 中,有没有办法检查输入参数是否是任何类型的有效向量?