2010-01-16 58 views
1

我有一個swf,叫做'controls',我用flash cs4創建。我將controls.swf上傳到我的Web服務器。我在flex中創建了一個應用程序,並將外部swf控件加載到自身中。到目前爲止,我可以通過我的flex應用程序操縱controls.swf。MovieClip.onResize事件?怎麼樣?

我在我的外部swf中創建了一個類,但我需要添加一些onResize事件/檢查到我的滾動條。例如,如果我的滾動條大小增加/減少,我希望它改變變量值。是否有一些movieClip.onResize事件?

回答

4

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

我寫這篇即興,所以它的編輯。它也簡化了一點,並沒有超級優化,但希望它可以讓你去。

+0

剛好足以讓人接受。謝謝 – Phil 2010-01-29 16:45:13