2011-12-22 5 views
0

私はFlashとAS3でウェブサイトを構築しようとしていますが、一部のページにはFlashオーサリングプログラムを通してコンテンツが与えられ、他のものはas3によって動的に生成されます新しいページ自体はAS3経由で追加されます)。私はこれをサポートするための一般的なコード・アーキテクチャーを理解しようとしています。AS3とフラッシュを使用したウェブサイトデザインパターン

最初の解決策は、コンテナのムービークリップに格納された1ページのコンテンツのすべての子表示オブジェクトを保持することです。こうすることで、各ページのムービークリップをステージ上に1つ作成できます。最初の考えでは、アルファをnoneに設定して現在のページではないムービークリップのすべてのマウスインタラクティビティを無効にすることで、その人がいるページを管理することができました。しかし、私はこれがメモリを管理する最良の方法であるとは確信していません。他の可能性は、これらのムービークリップを使用していないときにステージの範囲外に移動することですが、これは同じメモリの問題を抱えている可能性があります。最後に、表示オブジェクトを追加したり削除したりすることができますので、一度に1つのムービークリップしかステージ上には表示されませんが、Flashオーサリングプログラムに組み込まれたページはどのように保持しますか? AS3のどこかにそのすべてを保存できるので、ディスプレイの子供を元の形に戻すことができますか?

誰かがこれらの問題に対処する可能性のある記事を知っている場合や、AS3/Flash Webページのシンプルなデザインパターンについて説明してもらえればそれは素晴らしいことです。私より賢い人がこれを考えていると確信しています。私はその車輪を再発明したくありません。

+1

多少なりとも、多分役に立ついくつかの方法:GAIAフレームワークを見てください。 – AsTheWormTurns

+0

あなたが知っている限り、フラッシュで完全にウェブサイトを作ることはSEOの自殺です。検索エンジンはフラッシュサイトを解析することができず、ユーザーは戻るボタンを使用することはできません。 –

+0

コンテンツがプッシュされているサイトのparrallel HTMLバージョンがあるため、これはSEOの不十分を補うものです。 –

答えて

1

各ページの特定のコードに対応する.asファイルとともに、各 "ページ"を独自のクラス(ライブラリ内から)に "エクスポート"します。次に、ステージにプレースホルダとして常に存在するmainContent_mcという名前のMovieClipを作成します。

あなたのような関数を呼び出す新しいページをロードする:あなたのページは本当に小さなメモリ賢明であれば、あなたは、単にあなたの「ページ」のすべてのための.visible = false;を設定するとすることにより得ることができる。もちろん、

function loadPage(pageNumber:int):void { 
    //Remove any children of the content placeHolder 
    //TODO: Handle any other memory management here as well 
    while(mainContent_mc.numChildren > 0){  
     mainContent_mc.removeChildAt(0); 
    } 

    //Add the desired page 
    switch(pageNumber){ 
     case 0: 
      var p0:HomePage = new HomePage(); 
      mainContent_mc.addChild(p0); 
      break; 
     case 1: 
      var p1:AboutPage = new AboutPage(); 
      mainContent_mc.addChild(p1); 
      break; 
    } 
} 

私はまだ上記のようにそれらを整理します。

関連する問題