1

我有一个 swf,称为“控件”,是我用 flash cs4 创建的。我将controls.swf 上传到我的Web 服务器。我在 flex 中创建了一个应用程序,它将外部 swf 控件加载到自身中。到目前为止,我可以通过我的 flex 应用程序操作 controls.swf。

我在我的外部 swf 中创建了一个类,但我需要向我的滚动条添加一些 onResize 事件/检查。例如,如果我的滚动条大小增加/减少,我希望它改变变量值。是否有一些 movieClip.onResize 事件?

4

2 回答 2

4

不幸的是,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);

我即兴写了这个,所以它是可编辑的。它也简化了一点,没有超级优化,但希望它能让你继续前进。

于 2010-01-16T04:11:44.143 回答
0

你不应该覆盖 set scaleX, scaleY 吗?

于 2011-04-25T18:16:30.987 回答