在Flash / AS3中键入强制

时间:2011-04-21 03:48:15

标签: flash actionscript-3

这个问题阻碍了我继续我的项目,我不知道它是如何或为什么会发生的。

我有一个应用程序要求用户输入,然后根据所述输入生成图形并显示图像。图形文件作为文档类附加。两个字段是文本,另外两个是滑块。当我尝试运行应用程序时,我得到了一个

TypeError: Error #1034: Type Coercion failed, cannot convert flash.display.MovieClip to
fl.controls.Slider`
at flash.display::Sprite/constructChildren();
at flash.display::Sprite()
at flash.display::MovieClip

此代码弹出此错误:

var graphing:graph= new graph(); //my plot functions

function advance(e:MouseEvent):void{
  continueButton= false;
  displayHelp= ""; //clear the help area <-- debugger triggers errors here
  initInvest= int(initInvest_txt.text);
  lumpSum= int(withdrawal.text);
  graph= new graph();
  graph.setValues(lumpSum, initInvest);
  gotoAndPlay("options");
}

此错误仅在图形声明和方法调用在范围内时显示。如果他们被删除 或注释掉,流程有效。图形文件是

package{
  public class graph extends MovieClip{
    public function graph(){}
  }
}

我遇到的所有内容都表明这是MovieClip未转换为Slider组件的结果。但是,根本没有解决方案。

首先,为什么会发生这种情况? 第二,

2 个答案:

答案 0 :(得分:1)

我现在也正在玩组件,我遇到了同样的事情。我只能通过外部类定义仅对将用于生成swc的fla /项目可见来修复它。所以基本上,确保组件的外部类对于将使用生成的swc的项目不可见,否则会发生类型强制错误。这可能是因为swc中包含了同一个类。

答案 1 :(得分:0)

在某处,您尝试将MovieClip引用分配给键入为Slider的变量或函数参数。 Slider是一个Sprite,但它不是MovieClip。