AS3/Flash CS4の使用ランタイムでの呼び出し関数swf
これを読んでいる皆様に感謝します。私の問題は、具体的に私はそれをコントロールとユーザーインターフェイスを設計しています。 5ボタンは左回転、右回転、ズームイン、ズームアウト、および自動回転を行います。インターフェイス自体は正常に動作し、ボタンのクリックをトレースしたり、自動回転ボタンなどを切り替えることができます。
私のプログラムはxmlファイルを読み込みます。いくつかの画像を読み込み、配列に各画像のリンクを埋め込み、画像がクリックされると、ローダーはURLからswfを読み込んで画面に表示します。問題ない。
私はもともと、runtime_loaded.flaライブラリのズームコントロールユーザーインターフェイスと、同じリンクドキュメントクラスのマウスリスナーを持っていました。同じコード内にある場合、インターフェイスはruntime_loaded.swf内のmovieClipと連動します。
良いコーディングを実践するために、私はruntime_loaded.flaからUIを削除し、それをMain.flaに追加することにしました。これは不可欠です。なぜなら、メインはリンクする独自のswfを持つ画像/オブジェクトの可能な100を処理するためです。インターフェイスの外観を変更しても同じ機能を呼び出すことにした場合、基本的に、すべての単一のオブジェクトに対して行う必要があるruntime_loaded.flaの代わりに、main.flaに必要な数だけ入れることができます。
ファイル構造
Main.fla <- interface in the library. 5 mouse event functions. Inside each function calls
a property of loaded_swf (loaded_swf.rotateLeft, loaded_swf.rotateRight) etc...
Runtime_loaded.fla <- links specificObject.as in properties (AS3/CS4)
specificObject.as <- has 5 public static functions{ rotateRight, rotateLeft, zoomIn, zoomOut, toggleAutoRotate }
CODE
//showFlashBox
function showFlashBox(temp_string:String):void {
if(!flash_box_on){
var temp_top:uint = numChildren;
addChildAt(FlashBoxContainer,temp_top);
newXButton.addEventListener(MouseEvent.CLICK, flashBoxXClick);
1. addChild(new_loader);
2. var url:URLRequest = new URLRequest(temp_string);
new_loader.x = 0;
new_loader.y = 0;
new_loader.load(url);
3. new_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, gotSwf);
flash_box_on = true;
}
}
function gotSwf(e:Event){
4. //loaded_swf = e.target.content;
trace(e.target.content);
5. new_zoom_controls.button_minus.addEventListener(MouseEvent.CLICK, zoomOutFunction);
new_zoom_controls.button_plus.addEventListener(MouseEvent.CLICK, zoomInFunction);
new_zoom_controls.button_left.addEventListener(MouseEvent.CLICK, rotateLeftFunction);
new_zoom_controls.button_right.addEventListener(MouseEvent.CLICK, rotateRightFunction);
new_zoom_controls.button_rotate.addEventListener(MouseEvent.CLICK, toggleRotateFunction);
function rotateRightFunction(e:MouseEvent){
6. //loaded_swf.rotateRight();
}
function rotateLeftFunction(e:MouseEvent){
//loaded_swf.rotateLeft();
}
function zoomInFunction(e:MouseEvent){
//loaded_swf.zoomIn();
}
function zoomOutFunction(e:MouseEvent){
//loaded_swf.zoomOut();
}
function toggleRotateFunction(e:MouseEvent){
//loaded_swf.toggleAutoRotate();
if(new_zoom_controls.button_rotate.currentFrame == 1){
new_zoom_controls.button_rotate.gotoAndStop(2);
}
else new_zoom_controls.button_rotate.gotoAndStop(1);
}
new_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, gotSwf);
}
あなたは手順1-6に従った場合は、.swfファイルをロードする私の手順を参照してくださいマウスイベントリスナーとハンドラをクリックしてください次に、var loaded_swf:Object;のオブジェクト呼び出し。
私がmain.flaを実行してボタンをクリックしようとすると、これは起こる。
ReferenceError: Error #1069: Property rotateRight not found on ThreedsKU39web and there is no default value. at MethodInfo-82() ReferenceError: Error #1069: Property rotateLeft not found on ThreedsKU39web and there is no default value. at MethodInfo-83()