嗨,我有这个错误:
将类型X的值隐式强制转换为不相关的类型X
其中X是对象的类型,是的是type X to an unrelated type X
。
它在我的项目中出现了6次,在3个不同的.mxml文件中,在script元素中。它是3个文件,我没有编辑,我更改的文件没有链接3个错误的文件。
这里有一行代码有问题。
var loadApplicationEvent:LoadApplicationEvent = new LoadApplicationEvent(application);
当它正在编译和其他文件我改变时它工作完美,它把我和错误。
Flash Builder或Flex的错误?或者不是?
我该怎么骑呢?
答案 0 :(得分:11)
我刚刚使用Flash Builder 4.5遇到了这个问题。返回类型与应有的完全一样。
我的解决方案是通过以下方式完成项目的重建:项目 - >干净。
答案 1 :(得分:6)
我最近开始在FlashBuilder上遇到这个问题,这就是我所做的。
从:
开始 protected var _foo:FooType;
(X) public function get foo():FooType { return this._foo; }
(其中(X)是Snote描述的形式中的错误,X = FooType)
更改为:
protected var _foo:FooType;
public function get foo():* { return this._foo; }
并重建。 *类型总是通过类型检查,无论如何,所以错误消失。
然后改回来:
protected var _foo:FooType;
public function get foo():FooType { return this._foo; }
错误消息随后消失,至少暂时消失。
到目前为止,这项技术似乎很可靠,如果烦人的话。
答案 2 :(得分:4)
我遇到了同样的问题。我通过禁用“严格类型检查”
解决了这个问题项目属性> ActionScript编译器>启用严格类型检查
答案 3 :(得分:1)
当您尝试将不同类型的对象分配给某个变量时会发生这种情况。例如,如果您尝试将字符串值('4')分配给期望int(4)的对象。查找所有给定的位置并更正类型转换。
答案 4 :(得分:0)
这是一个隐式转换,但我无法告诉您所提供信息的确切问题。
var loadApplicationEvent:LoadApplicationEvent = new LoadApplicationEvent(application);
什么类型的对象是“应用程序”以及LoadApplicationEvent构造函数需要什么参数?这就是你的隐含强制发生的地方。我的猜测是“application”与LoadApplicationEvent在其构造函数中所期望的类型不同。
答案 5 :(得分:0)
就我而言,每件事情都是正确的。因此它看起来是一个IDE问题,因为相同的代码工作了几次,另一次它向我显示了这个错误。你可以尝试几个步骤来解决这个问题
1.清除已编译的代码并重新编译。 (“项目”选项卡中有明确的选项)
2.使用相同的代码创建一个文件并删除旧文件
3.如果所有这些都不起作用,请创建另一个继承基类的类,并将期望值更改为*
例如:
public class DataGroupOX extends DataGroup
.....
public function set itemRenderer2(value:*):void{
value = value as IFactory;
super.itemRenderer = value;
}