在从flash中导出swc文件,然后在flex中使用,一开始都运行正常,但当我删除并重新建立元件并重新生成swc文件后,在flex中就出问题了:
?
VerifyError: Error #1107: ABC 数据已损坏,尝试的读取操作超出范围。
??? at flash.display::MovieClip/nextFrame()
??? at mx.managers::SystemManager/deferredNextFrame()[C:/autobuild/3.2.0/frameworks/projects/framework/src/mx/managers/SystemManager.as:319]
??? at mx.managers::SystemManager/preloader_initProgressHandler()[C:/autobuild/3.2.0/frameworks/projects/framework/src/mx/managers/SystemManager.as:2945]
??? at flash.events::EventDispatcher/dispatchEventFunction()
??? at flash.events::EventDispatcher/dispatchEvent()
??? at mx.preloaders::Preloader/timerHandler()[C:/autobuild/3.2.0/frameworks/projects/framework/src/mx/preloaders/Preloader.as:398]
??? at flash.utils::Timer/_timerDispatch()
??? at flash.utils::Timer/tick()
?
源文件:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
??? <![CDATA[
??? ??? import mx.flash.UIMovieClip;
??? ??? import mx.core.UIComponent;
??? ??? import mx.containers.Canvas;
??? ??? import mx.charts.CandlestickChart;
??? ??? private function init():void
??? ??? {
??? ??? ??? var cans:Canvas = new Canvas();
??? ??? ??? addChild(cans);
??? ??? ??? trace('---------')
??? ??? ??? new Main();
//??? ??? ??? trace(new Main() is UIMovieClip)
??? ??? ??? ?var sprite:UIMovieClip = new Main();
??? ??? ???
??? ??? ??? ?cans.addChild(sprite);
??? ??? ??? //var swc:Test = new Test();
??? ??? ??? //swc.output();
??? ??? }
??? ]]>
</mx:Script>
</mx:Application>
?
flash源文件:
package
{
??? import flash.display.Sprite;
??? import flash.display.MovieClip;
??? import mx.flash.UIMovieClip;
??? import flash.display.Shape;
??? public class Main extends UIMovieClip
??? {
??? ??? private var shape:Shape = new Shape();
??? ???
??? ??? public function Main()
??? ??? {
??? ??? ??? this.addChild(shape);
??? ??? ??? drawShape();
??? ??? }
??? ???
??? ??? public function drawShape():void
??? ??? {
??? ??? ??? shape.graphics.lineStyle(2,0xff0000);
??? ??? ??? with(shape.graphics)
??? ??? ??? {
??? ??? ??? ??? beginFill(0x00ff00);
??? ??? ??? ??? drawCircle(100,100,70);
??? ??? ??? ??? endFill();
??? ??? ??? }
??? ??? }
??? }
}
?
flv中只有一个mc,并将其转换为flex组件。根据提示,应该是:此错误指示 SWF 中的 ActionScript 无效。 但依然不得其解!