我有一个 swf,称为“控件”,是我用 flash cs4 创建的。我将controls.swf 上传到我的Web 服务器。我在 flex 中创建了一个应用程序,它将外部 swf 控件加载到自身中。到目前为止,我可以通过我的 flex 应用程序操作 controls.swf。
我在我的外部 swf 中创建了一个类,但我需要向我的滚动条添加一些 onResize 事件/检查。例如,如果我的滚动条大小增加/减少,我希望它改变变量值。是否有一些 movieClip.onResize 事件?
我有一个 swf,称为“控件”,是我用 flash cs4 创建的。我将controls.swf 上传到我的Web 服务器。我在 flex 中创建了一个应用程序,它将外部 swf 控件加载到自身中。到目前为止,我可以通过我的 flex 应用程序操作 controls.swf。
我在我的外部 swf 中创建了一个类,但我需要向我的滚动条添加一些 onResize 事件/检查。例如,如果我的滚动条大小增加/减少,我希望它改变变量值。是否有一些 movieClip.onResize 事件?
不幸的是,Movieclips 没有 onResize 事件。但是,您可以制作一个!在controls.swf 中创建一个文档类。我们将它命名为 Controls.as,它应该扩展 MovieClip。在 Controls.as 中有这样的东西:
override public function set width(value:Number):void{
super.width = value;
dispatchResizeEvent();
}
override public function set height(value:Number):void{
super.height = value;
dispatchResizeEvent();
}
private function dispatchResizeEvent():void{
dispatchEvent(new Event("MovieClipResize", true));
}
当您在 swf 中加载时,为 MovieClipResize 添加一个事件侦听器:
controlsSwf.addEventListener("MovieClipResize", onMovieClipResize);
我即兴写了这个,所以它是可编辑的。它也简化了一点,没有超级优化,但希望它能让你继续前进。
你不应该覆盖 set scaleX, scaleY 吗?