多个包使用一个AS文件,可变初始化问题'强制失败'

时间:2016-04-07 09:29:46

标签: actionscript-3 flex mobile mxml

我有两个包

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

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

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

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

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

假设

  • 当前视图来自Package1
  • 从Package2中调用AS文件
  • 两个包都包含Counter.mxml
  

TypeError:错误#1034:类型强制失败:无法将ph.package1.Counter转换为ph.package2.Counter ....

如何解决此问题,以便变量初始化将指向另一个包。

1 个答案:

答案 0 :(得分:1)

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

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

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