1

フラッシュcs4で作成した「コントロール」と呼ばれるswfがあります。コントロール.swfをWebサーバーにアップロードします。flexでアプリケーションを作成すると、外部のswfコントロールがそれ自体に読み込まれます。これまでのところ、flexアプリを介してcontrols.swfを操作できます。

外部swfでクラスを作成しましたが、スクロールバーにonResizeイベント/チェックを追加する必要があります。たとえば、スクロールバーのサイズが増減した場合、変数値を変更したいと思います。movieClip.onResizeイベントはありますか?

4

2 に答える 2

4

残念ながら、MovieclipsのonResizeイベントはありません。しかし、あなたはそれを作ることができます!コントロール.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 に答える