1

現在、Flex SDK を使用して Web 用の swf 3D プレーヤーを開発しています。私の目標は、ユーザーがモデルを読み込んで .swf 3D プレーヤーにエクスポートし、それらの 3D モデルを Web 上で表示できるようにするエア アプリケーションを作成することです。私はFlashDevelopを使用しています。

私の当初の目標は、mxmlc コンパイラと flex sdk 全体を air apps の bin ディレクトリに含めて、airs ネイティブ拡張を引数 (コマンド ライン) で実行することでした。問題は、flex sdk のサイズが約 800Mb であり、mxmlc を実行するために JRE が再び必要になることです。

800mb+ を必要としない Air アプリケーション内に最小限のコンパイラを含める方法はありますか? 最初にモデルとテクスチャへのパスを含む構成ファイルをロードしてからそれらをロードする一般的なswfを出力できることはわかっていますが、モデルとテクスチャをswf内に含めて、簡単にダウンロードされないようにします。助言がありますか?

4

1 に答える 1

1

これは、尋ねられた特定の質問への回答ではありませんが、コメントするには長すぎます。

問題は、フレックス コンパイラを AIR に含める方法ではなく、SWF 内のモデルとテクスチャが簡単にダウンロードされないようにする方法です。

まず第一に、100% 安全な答えはありません。SWF 形式は簡単に逆コンパイルできます (したがって、SWF ごとに 1 つのファイルを埋め込むことはできません)。十分に判断されれば、誰かがアプリケーションのメモリを調べて、必要なものを見つけることができます。これはすべて、簡単なコピーを停止することです。

最終目標がオンラインの 3D モデル ビューアーであると仮定すると、次のような方法があります。

1) 独自の形式を持つ

技術的には不可能ではありませんが、かなり厄介です。基本的に、モデルを保存および表示するための独自の形式を作成します (基本的に、ほとんどの 3D モデリング ソフトウェアが行うこと)。これは、誰かがモデル ファイルを手に入れたとしても、パーサーを書かない限り役に立たないことを意味します (当然、表示 SWF を保護する必要があります)。ビューアの目的が他のユーザーがモデルを購入することである場合、そのユーザーは使用できる形式でモデルを必要とするため、ワークフローは次のようになります。

共通フォーマットでモデルを作成 -> プレーヤーで表示するためにカスタム フォーマットに変換 -> ユーザーが参照して「購入」をクリック -> 共通フォーマット ファイルをダウンロード

2) サイトから 3D モデルを読み込む

最も簡単なオプション。画像をロードするのと同じように、モデルをサーバーから直接ロードするだけです。人々がファイルを直接ダウンロードするのを防ぐには、ファイルをhtdocsフォルダーの上に保存し、フラッシュのローカル URI を介してアクセスします。したがって、サーバー ファイル システムは次のようになります。

  • モデル
    • モデル1
    • モデル2
    • ...
  • htdocs
    • index.html
    • 3DPlayer.swf // 「../models/Model1」パスを使用してモデルを読み込みます

したがって、SWF のみがモデルにアクセスできます (技術的には、ファイルのダウンロードであるため、ブラウザーのキャッシュにある可能性があります。テストする必要があります)。実際にモデルをmodelsディレクトリに配置するには、サーバーへの FTP アクセスが必要になるか、モデルをアップロードするための簡単なスクリプト (PHP などを使用) を作成する必要があります。

3) アセットを SWF にストリーミングする

既に述べたように、ColdFusion などを使用して、アセットを直接 SWF にオンデマンドでストリーミングできます。私は ColdFusion の経験がないので、これがどのように機能するかはわかりませんが、それほど難しいことではありません。

4) DB接続

モデルがテキスト BLOB として DB (MySQL や MongoDB など) に格納されていると仮定すると、SWF に直接接続するか、PHP と AMFPHP を使用してデータベースに接続し、その方法でモデルをストリーミングできます。

サーバー呼び出しを偽装できないようにセキュリティを実装する必要がありますが、接続して値を返す実際のコードはそれほど難しくありません。追加のボーナスとして、SWF 形式に縛られず、必要に応じて JS ディスプレイなどを実装できます。

于 2013-09-11T17:10:00.773 に答える