多个包使用一个 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"];
假设
- 当前视图来自 Package1
- 从 Package2 调用 AS 文件
- 两个包都包含 Counter.mxml
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 具有完全相同的名称,那将是一场噩梦。
我有两个包裹
import ph.package1.*;
import ph.package2.*;
我使用不同包的主要原因是为了在我的 FB4.6 移动应用程序上分离视图,因为我想创建特定视图以满足不同的移动和平板电脑分辨率。
所以基本上,两者具有相同的文件、文件名,但它们仅在布局和样式上有所不同。我只使用了一个包中的一个 AS 文件来防止冗余,到目前为止它工作正常。应用程序在大多数页面上运行。
现在的问题是,在我的一个动作脚本中,我有这样的代码:
var counter:Counter = this["counter"];
假设
- 当前视图来自 Package1
- 从 Package2 调用 AS 文件
- 两个包都包含 Counter.mxml
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 具有完全相同的名称,那将是一场噩梦。