ResizeEvent循环?

时间:2010-04-05 14:05:23

标签: flex actionscript-3

我遇到一个动作脚本事件的问题,我每次调整flex组件时都会触发它。在这种情况下,我通过外部JavaScript函数改变其html包装器中flash对象的高度。这反过来导致组件调整大小,事件循环自身并不断增加组件的高度。

以下是导致问题的代码示例:

private function onCreationComplete(event:Event):void 
{ 
  this.mainInnerShell.addEventListener(Event.RESIZE,handleResize);
} 

private function handleResize(event:Event):void {
  this.mainInnerShell.removeEventListener(Event.RESIZE,handleResize);
  ExternalInterface.call("changePageHeight",this.mainInnerShell.height + resizeBuffer); 
  this.mainInnerShell.addEventListener(Event.RESIZE,handleResize);
}

但是,尽管我删除了事件监听器,但事件不止一次触发。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在resize事件处理程序中,您可以使用removeEventListener停止收听该事件,进行高度更改,然后使用addEventListener重新开始侦听调整大小。