1

スタック

RSL から多くの恩恵を受けると思われる新しいプロジェクト (e ラーニング) をセットアップするのに少し苦労しています。
私の場合は次のようなものです:

Main.fla - シェル
Scenes.fla - これについてはすぐに説明します
Navigation.fla - ある種の GUI
たくさんの Fla ファイル- レッスン

Mainはインスタンス化される最初のムービーであり、ここから必要なのはdownloadだけです。

すべてのレッスンは、「アーキテクチャ」(メイン、シーン、ナビゲーション、およびEngineと呼ばれるクラスのバンドル全体) とは別に fla/swf に配置され、実行時にシーン内に追加されます。

エンジンは、反復的で必要なタスク、イベント、一般的なメソッド、サーバーとの通信などを処理します。

ナビゲーションは、ナビゲーション (次/前のレッスンなど) としてユーザー入力を処理し、シーン (およびその子) を操作するエンジンに渡します。

まあ、私にもいくつかの制限が
あります。クライアントに渡されるすべての swf ファイルは、80kb 未満である必要があります。つまり、縛られています。
配送準備完了のパッケージとしてすべてをコンパイルすることはできません。

サイズが重要なので、できるだけ負荷を軽減する手段が必要です。
というわけで、最近色々検索してRSLを見つけました。
これを使用する方法をよりよく知るためにいくつかのテストを作成しましたが、もちろん、トラップに陥りました。

Flash を正しくセットアップできず、「ライブラリ パス」(AS3 構成の下) で成功せず、SWC 内でクラスをコンパイルできませんでした...

もう 1 つのことは、レッスンは作成せず、アーキテクチャのみを作成するということです。
これらのレッスンは、AS3 (OOP またはプログラム ロジック) の知識がまったくない人によって作成されます。
また、エンジン全体 (ソース コード) を、それをいじってアプリ全体を作成する可能性のある外部の誰かに提供するつもりはありません (アプリ、実際には、何百もの e ラーニングを作成します)。

いくつかのことで助けが必要だと本当に思います(時計は刻々と過ぎています):

RSL を効率的に使用する
方法 SWC 内にクラスをバンドルする
方法 すべての作業に不可欠なものをすべて SWC にパッケージ化し、この SWC のみを配信する方法

このスレッドが少し長いことと、私が多くのことを尋ねていることはわかっていますが、ここ 1 週間キーボードに頭を悩ませていて、セットアップを管理できていません。


ご清聴ありがとうございました...

4

1 に答える 1

1

flaからこれを行うには2つの方法があります

1 つはライブラリ全体をエクスポートすることです。パブリッシュ設定に移動し、[Flash のみ] を選択してから、[ Export SWCFlash] タブで選択します

http://img593.imageshack.us/img593/8296/swc.png

もう 1 つは、ライブラリ内のアイテムを右クリックして、[SWC のエクスポート] を選択することです。サイズ制限のあるアイテムに問題がある場合は、これが良い方法かもしれませんが、それ以外の場合は、ライブラリ全体をエクスポートすることをお勧めします

アセットにリンケージ ID を追加することが重要です。これは、ライブラリのリンケージ ID 列を介して入力するか、シンボル プロパティを編集して入力できます。

これらの ID は、呼び出すクラスの名前であるため、一意である必要があります。共通のプレフィックスを作成することをお勧めします。これにより、他のクラスに干渉する可能性が低くなります。

http://img827.imageshack.us/img827/7820/linkageid.png

アセットをコンパイルしたら、それらをプロジェクトのランタイム ライブラリ フォルダーに追加するか、設定または埋め込みタグを使用して 1 つずつ埋め込むことができます。私は FlashDevelop を使用しているため、簡単に使用できます。何を使用しているのかわかりませんが、オプションがあり、簡単にアクセスできると確信しています。


ライブラリの使用。

アセット (実行時の SWF) をロードするために私が行ってきたこと なぜ run-tim swfs なのですか? コンテンツ用にコンパイルする場合、エンジンを分離したままにしておくことはできません。エンジンが最初にロードされ、次にライブラリの処理方法と各ライブラリの場所を指示する構成がロードされるという考え方です。

私のセットアップ/セットアップの簡素化はこのようなものです

ライブラリが追加されるデフォルトの構成xmlファイルがあります。私の目的のために、予想されるライブラリを知っているので、次のような事前定義された ID を持つ xml タグがあります。

コード側では、ライブラリの名前/タイプを静的定数として定義し、それらすべてを配列である別の定数に入れます。私の Data class const static var TYPE_COMPONENTS:String = "components"; でこのようなもの const static var TYPE_INTERFACE:String = "インターフェース"; const static var TYPES:Array = [TYPE_COMPONENTS,TYPE_INTERFACE];

confg xml をロードすると、子ノードを 1 つずつ調べて、TYPES 配列の下にある項目と一致するかどうかを確認できます。すべての一致をグループ ローダー ( http://as3.casalib.org/docs/org_casalib_load_GroupLoad.html ) に入れますData.TYPE_INTERFACE)

あとはロードが終わるのを待ちます。

アセットのロードに関しては、getLoader(Data.TYPE_INTERFACE) を使用します。クラスを作成するgetDefinition ( )myClassName

エラーをスローせずにクラスが存在するかどうかを確認するためのhasDefinitionがあると役立ちます

それを呼び出すには、クラス名を知る必要があります。検索するクラスとそれらの処理方法を定義する別の XML ファイルを使用します。

私は手動で XML ファイルを生成し、オプションが何であるかを思い出す必要がある場合もありますが、これらのファイルを生成できる AIR アプリを作成することは可能です。PC で実行するエンジンとして swf を使用しているため、サーバー側のテクノロジや AIR のように、子フォルダーに存在するライブラリを見つける方法がないため、XML が必要です。

お役に立てれば

于 2011-02-08T21:27:18.603 に答える