在从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 无效。 但依然不得其解!