多个包使用一个 AS 文件,变量初始化问题 'Coercion Failed'

Multiple Packages using One AS File, Variable Initialization Issue 'Coercion Failed'

我有两个包裹

import ph.package1.*;
import ph.package2.*;

我使用不同包的主要原因是为了在我的 FB4.6 移动应用程序上分离视图,因为我想创建特定视图以满足不同的移动和平板电脑分辨率。

所以基本上,两者具有相同的文件、文件名,但它们仅在布局和样式上有所不同。我只使用了一个包中的一个 AS 文件来防止冗余,到目前为止它工作正常。应用程序在大多数页面上运行。

现在的问题是,在我的一个动作脚本中,我有这样的代码:

var counter:Counter = this["counter"];

假设

TypeError: Error #1034: Type Coercion failed: cannot convert ph.package1.Counter to ph.package2.Counter....

如何解决这个问题,使变量初始化指向另一个包。

您需要使用整个命名空间:

var counter:ph.package1.Counter = this["counter"];

但是无论如何,虽然包是为了避免这些冲突,但提供不同的 class 名称仍然是个好主意。想象一下,如果您有 20 个 class 具有完全相同的名称,那将是一场噩梦。