2016-07-06 3 views
2

私はactionscriptに新しいので、私と一緒に裸にしてください:)複数の外部swfファイルを正しく読み込むには?

さて、私は現在、インタラクティブゲームを作成しています。私は今6 swfファイルを読み込む必要があり、私はそれを順番に再生する必要があります。

私は実際には、このトピックに関する質問をたくさん持っているし、ここで彼らは

第一の質問:)されていますどのように私は映画のシーンの後に外部swfファイルを読み込むことができますか?

私の3番目のswfファイルでは、私は映画シーンのようになっており、約30秒で終了します。私は遅延方法を知っていますが、すでに私のウェブサイトにアップロードしてもスムーズに機能していますか?

第2質問:ユーザーがゲームをプレイする前にすべての外部ファイルを読み込む方法は?

ユーザーがゲームをプレイする前に、すべてのswfファイルを一度にロードするにはどうすればよいですか?

ここに私のコードの一部のサンプルです:

import flash.events.MouseEvent; 
import flash.display.MovieClip; 
import flash.display.Loader; 
import flash.events.Event; 
import flash.net.URLRequest; 

var myClip:MovieClip = root as MovieClip; 
var externalClip:MovieClip; 
var myLoader:Loader = new Loader(); 
var myLoader1:Loader = new Loader(); 

myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,  loaderCompletedHandler); 


function loaderCompletedHandler(evt:Event):void { 
externalClip = myLoader.content as MovieClip; 
externalClip.ext_btn.addEventListener(MouseEvent.CLICK,extCommunicate); 

    function extCommunicate(evt:MouseEvent):void { 
    trace("TEST"); 
    myLoader1.contentLoaderInfo.addEventListener(Event.COMPLETE, thirdloaderCompletedHandler); 
    var newstring:String = "third.swf"; 
    var newREQ:URLRequest = new URLRequest(newstring); 
    addChild(myLoader1); 
    myLoader1.load(newREQ); 
    myLoader1.x=40; 
    myLoader1.y=20; 
    removeChild(myLoader); 
    } 
} 

function thirdloaderCompletedHandler(evt:Event):void { 
    trace("YEAH"); 
} 

var externalString:String = "external.swf"; 
var urlREQ:URLRequest = new URLRequest(externalString); 

playbtn.addEventListener(MouseEvent.CLICK,swfLoad); 
function swfLoad(evt:MouseEvent):void { 
    addChild(myLoader); 
    myLoader.load(urlREQ); 
    myLoader.x=40; 
    myLoader.y=20; 
} 

第三問:上記のコードは、複数のSWFファイルをロードする適切な方法ありますか?

ありがとうございました。

答えて

2

多くの質問が...(1)あなたはAS3ではない、フレームアクションによってそれらをロードし、多くのswfファイルを連結することができます。こうすることで、次のムービーが最後に終わったときだけロードされます。または、あなたの条件では、最初の "映画"シーンが終了した後で次のムービーをロードするだけです。したがって、マシンと帯域幅の面でユーザー構成に応じて異なる結果が生じるため、「遅延」を使用しないでください。

(2)ムービーをプリロードする方法は、ムービーをプリロードするのと同じ方法で行うことができます。ムービー1がロードされているかどうかを確認してからムービー2などをチェックしてください。

(3)自分のコードをテストし、それが動作することを確認します。そうでない場合は、エラーメッセージと条件についてできるだけ多くの情報を得て、ここでStackOverflowで別の質問を開くと、すべてのシナリオ、持っているもの、入手したもの、期待するものが公開されます。 最高

+0

ありがとう、私はそれを感謝します。 シネマティックシーンは、2番目のswf(3番目ではない)ファイルにのみ存在します。他のswfファイルは、mouseventアクションによってロードされます。 これはシナリオになります - メインSWFには、第2 swfを読み込む再生ボタンがあります。 - 第2 SWFは映画シーンを持ち、その後に第3 swfを読み込みます。 - ボタンをクリックすると、3〜6番目のswfもロードされます。 –

+0

ありがとうございます。それだけです、あなたはそれを持っています。最初にロードし、 "再生"ロードで映画を読み込み、最後にフレームアクションを入れて3度ロードします。映画。すぐにあなたの結果と疑念を返すと私はあなたがより多くを助けることができれば私は喜びになるでしょう(前にactionscript以上の多くの夜...)。しかし、新しい質問をする...これは終わりです:) – statosdotcom

+0

ありがとうございました。わかった。一度にすべてのswfファイルをロードするのはどうですか?あなたは私にこれを行う方法のヒントを教えてもらえますか?現在、私は各swfファイルのベースをユーザーインタラクション(3回目のswfを除く)にロードしています。私は自分のウェブサイトでそれを再生しようとしましたが、負荷は各swfファイルには長すぎます。 –

関連する問題