2012-01-25 7 views
0

これは簡単な質問かもしれませんが、私はそれに対して明確な答えは見つかりませんでした。とにかく、マクロを使用する方法、または具体的には、functionscript3の関数マクロ(たとえば、Cでは#define test(x) #x)を使用する方法がありますか?それとも、その言語では不可能なことですか?事前マクロとactionscript3

答えて

0

htmlテンプレートファイルを見ましたか?

$ {project} プロジェクトの名前。私のプロジェクト。

$ {application} アプリケーションの名前。 MyApp。

$ {version_major} このアプリを実行するために必要なFlashバージョンのメジャーバージョン番号。バージョン9.0のr28では9です。 Project> Properties、次に "Flex Compiler"または "ActionScript Compiler"に移動し、 "HTMLラッパー"セクションでプレーヤのバージョン番号を変更することで、これと他の$ {version _...}マクロを変更できます。

$ {version_minor} このアプリを実行するために必要なFlashバージョンのマイナーバージョン番号。バージョン9.0のr28では0です。

$ {version_revision} このアプリを実行するために必要なバージョンのFlashのリビジョン番号です。バージョン9.0のr28では28です。

$ {build_suffix} これは、SWFのデバッグバージョンをビルドする場合は "-debug"、リリースバージョンをビルドする場合は ""と同じです。

$ {swf} .swf拡張子を含まないSWFの名前。 MyAppまたはMyApp-デバッグこれは本質的に$ {application} $ {build_suffix}に相当する便利なマクロです。

$ {bgcolor} タグのbackgroundColor属性で指定されたアプリケーションの背景色、またはActionScript専用プロジェクトの場合は、[SWF]メタデータ属性のbackgroundColorフィールドに主なアプリケーションクラス、例えば[SWF(backgroundColor = "#ffffff")]パブリッククラスMyAppはSpriteを拡張します(ActionScriptプロジェクトの幅、高さ、および背景色の設定の詳細については、この記事を参照してください)。結果は#rrggbbという形式になります。 #ffffff。デフォルトでは、Flexアプリケーションの背景は、実際にはある色から別の色への緩やかなグラデーションであるため、これは実際には少し使いにくい場合があります。 HTMLの背景とFlexアプリケーションの背景を一致させるには、タグのbackgroundColor属性とbackgroundGradientColors属性の両方を使用する必要があります。

$ {width} タグのwidth属性で指定したアプリケーションの幅、またはActionScriptのみのプロジェクトの場合は、メインの[SWF]メタデータ属性のwidthフィールドで指定しますアプリケーションクラス、例えば[SWF(width = "300"、height = "400")]パブリッククラスMyAppはSpriteを継承します。

$ {height} タグの高さ属性で指定されたアプリケーションの高さ、またはActionScript専用プロジェクトの場合、メインの[SWF]メタデータ属性の高さフィールドアプリケーションクラス、例えば[SWF(width = "300"、height = "400")]パブリッククラスMyAppはSpriteを継承します。

$ {title} タグのpageTitle属性で指定されたアプリケーションのタイトル、またはActionScriptのみのプロジェクトの場合は、メインの[SWF]メタデータ属性のpageTitleフィールドにありますアプリケーションクラス、例えば[SWF(pageTitle = "flex r00lz")]パブリッククラスMyAppはSpriteを継承します。

0

おかげで、あなたはありません、プリプロセッサマクロを意味する場合。 ActionScriptはそれらをサポートしていません。

+0

これは残念です。それらを代用するものはありますか? – r3x

+0

ベストプラクティスは、コードをActionScriptコンパイラに渡す前にコードの置換を行うIDEプラグインです。私は片手を知らない。 ActionScript 3は、物事を真のグローバルスコープに置くことができないように設定されました。私の意見では、静的メンバーがたくさんあるConstantsというクラスを作成するのが最善の方法です。それをインポートし、マクロ(Constants.test()、Constants.MY_CONSTANTなど)を使用する代わりに静的メンバーを呼び出します。 –

+0

私はグローバルなスコープを持つことを避けるのと同じ理由で、グローバルにアクセス可能な値とメソッドを持つファットクラスをクリアします。 C言語でうまく動作するかもしれませんが、AS3は非常に異なる言語です。 ...言われた、あなたがするべきことをやってください。 –

関連する問題