4

私は、さまざまな FLA のコンテンツを使用する非常にグラフィックの多いアプリケーションに取り組んでいます。私はコーダーなので、すべてのコーディングを Flash Builder で行いたいのですが、デザイナーが stop(); などのいくつかのタイムライン アクションを引き続き使用できるようにしたいと考えています。ビューを変更するためのいくつかの単純なボタン ハンドラーも含まれています。この種のセットアップに最適なワークフローを見つけようとしています。Embed を使用してみましたが、タイムライン コードが削除されました。Loader を試しましたが、コード補完やコンパイル時のチェックは行われませんでした。現在、カスタム クラスと共に SWC を使用して、内部の要素をサブクラス化しています。これまでのところ最高の組み合わせのように思われる SWC - コード補完が得られ、タイムライン スクリプトは引き続き機能します。私が抱えている問題は、Flash でかなり複雑なビューを使用していることです。

例として、View というライブラリにシンボルを含む FLA があるとします。これを「com.company.view.design.ViewDesign」のリンケージクラスにします。このビュー内には、「content1」、「content2」、「content3」と呼ばれる、それぞれに異なる記号が付いた 3 つのフレームがあります。これらの同様のリンケージ クラス「com.company.view.design.Content1」などを提供します。私のメイン コードベースには、com.company.view.design.ViewDesign を拡張する com.company.view.View というクラスがあります。これにより、View シンボル内のすべてに完全にアクセスできるようになりました。これはすばらしいことであり、View のすべてのタイムライン スクリプトは引き続き機能します。

問題はこれです - これらの 3 つのコンテンツ シンボルは非常に複雑であり、独自の外部クラス (com.company.view.Content1 など) にリンクする最有力候補になりますが、Flash でそれを実行しようとすると、com をインスタンス化するときに.company.view.View 「型強制に失敗しました: flash.display::MovieClip@20bec5e1 を com.company.view.Content1 に変換できません」というエラーが表示されます。

これに対する解決策はありますか、それとも SWC をより多くのライブラリとして扱い、プログラムでビューを構築する必要があるだけですか? デザイナーができるだけ多くのレイアウトを処理できるようにしたいのですが、ビューがますます複雑になっているため、1 つのビューのすべての機能を 1 つのモノリシック クラス (com.company) に配置する必要はありません。 .view.View)。

4

3 に答える 3

1

おっしゃる通り、SWCが一番です。私はかなり似たような状況に遭遇したと思うので、この質問をチェックすることをお勧めします. これは、そのアプローチに関するダミープロジェクトです。

また、開発時間を短縮する可能性がある場合は、ステージ インスタンスを宣言し、初期化してクリップボードに入れるこの小さな拡張機能を作成して、リンクされたクラスに追加できるようにしました。最初に行う必要があるのは、フラッシュ パネルで命名スキームを設定することだけです。あとで必要なのは、Generate ボタンだけです。

あなたのデザイナーが SVN セットアップを持っていることを願っています。デザイナーは SVN を嫌います。VersionsCornerstoneなど、Mac でかわいらしく見えるものでだますことができます。

幸運を!

于 2009-11-17T20:50:24.517 に答える
0

あなたの com.company.view.Content1 クラスは MovieClip を拡張しますか? そうでない場合はステージに追加できず、Flash はそのエラーをスローします。

于 2009-11-23T02:38:40.387 に答える
0

実行時にクリップをロードすると、すべてのクラス情報が失われます。それがあなたの問題の根源です。そのような場合、私は次の手法をうまく使用しました。この手法は、ムービーをロードしてクラス情報を再構成するのに役立ちます。Grant Skinner はこれについて少し前に詳しく説明しました。この記事では Flex について述べていますが、これは純粋なフラッシュ アプリケーションにも当てはまります。

于 2009-11-23T17:52:28.320 に答える