メイン

Adobe Air アーカイブ

2008年5月31日

AIR:Eclipseでmxmlをコンパイルできる環境を一から実装

Eclipse起動画面

はじめに

やっと見つけました、EclipseでのAIRのVer1.0コンパイル。プログラム言語に関して内部事情に疎い(そもそも技術が無い)僕は、一体何が必要不必要かすら分からず、Eclipseでのmxmlコンパイルは絶対できると考えてネットで調べましたが、国内ソースからは一向に出てきません。みんな開発慣れしてて考えずに分かるのかチクショー、なんて結構な時間を費やして、やっと実装できました。今回は、EclipseとFlex3SDKを用いた開発環境を整えるまでです。扱う拡張子はmxmlです。この方法でswfを生成しますが、AIRアプリケーションとして生成するところまでは今回は説明していません。近いうちにまとめて記事に起こそうと思います。それと、筆者の技術の関係上余計な事をしていると思いますがそこはご了承ください。

要約するとこの記事のメリットは、'08.05.31現在、ウェブで方法が掲載されていないであろう、Eclipseでmxmlのコンパイルを方法について書いてあることです。

この記事を踏まえたうえで、fcsh環境の実装も記事にしました。「AIR:Eclipseでfcsh環境を実装」から。

また、Aptanaを用いて同じようなことをしたい場合は、こちらの「AIR:Aptanaでのadobe AIR開発環境を一から実装」をご覧ください。ただしこちらではmxmlのコンパイル方法は言及していません。

今回の記事を書くにあたり、特に以下のサイトを参考にさせていただきました。

Eclipseのインストール、日本語化

最初にEclipseをインストールします。Eclipseのダウンロードは、以下のURLから。
Pleiadeshttp://mergedoc.sourceforge.jp/

なお、PleiadesはEclipseに日本語化プラグインを既に適用したものを扱っているために、日本語化の手間はありません。この時に注意が必要なのですが、数あるバージョンの内、プラグインが少数しか含まれていないものを落とすと、他のサイトで示された手順のアイコンが欠如している場合が多くあります。ですので、UltimateまたはJavaWTPを落としたほうが何かと参考記事が多い人には扱いやすいと思います。

DLファイルの一覧
上に示したどちらかです。JRE付き、無し、それぞれ異なりますので、必要に応じてどちらかをダウンロードしてください。ここで僕はJRE付きのJavaETLを落としました。JavaWTPの方が僕のこれからの説明と多少UIが異なってきますがお勧めです。

落としたEclipseは特に設定することなく、保存したディレクトリから起動することができます。

Flex3SDKのインストール

次にFlex3SDKをインストール、もとい保存します。Flex3SDKのダウンロードは、以下のURLから。
Adobe - Download Adobe Flex 3http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email

SDKのDL場所
ページ下部のSDKの利用規約のチェックボックスをオンにした後、ダウンロードしてください。そして解凍した後、フォルダごとCドライブ直下に配置。コンパイルの際の参照元となりますので、都合の良いところに保存してください。フォルダネームは「flex3sdk」としてあります。

HelloWorldアプリケーションの準備

eclipseのワークスペースの選択
Eclipseを起動すると、ワークスペースの場所を要求されます。僕はここで「C:\flex」に指定。

ツールバー上
ツールバーから「ファイル」、「新規」、「プロジェクト」。

一般、プロジェクト
一般を選択後、プロジェクトを選択し次へ。

プロジェクト名、「helloworld」
プロジェクト名を「helloworld」と入力後、終了。

フォルダ、ファイルを生成
ここから暫くは参考記事とほとんど同じ。フォルダを生成後、空ファイルをいくつか生成し、上の状態を作ります。構成されているファイルとしては、選択されているmxmlのみ異なりますので、その点に注意してください。

右クリックからファイル生成
なお、左のウィンドウで右クリックをして生成可能です。「新規」、「フォルダー」もしくは「ファイル」で作り、またファイルの場合は拡張子も忘れずに記述してください。

HelloWorldアプリケーションの記述

それでは以下に記述する内容を書いていきます。

build.properties(Flex sdkのbinディレクトリの絶対パスを指定)

FLEX3_HOME=C:/flex3sdk/bin

build.propertiesのUI
build.propertiesのUIが、開発環境によって異なることがありますが、ソースコードの記述の際は、下のタブでソース記述に切り替えてください。また、SDKのbinディレクトリを正しく記述できているかを確認してください。3の位置など要注意です。(flex3sdkがflexsdk3、等)

build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloWorld" default="build.swf" basedir=".">
    <property file="build.properties" />
    <property name="dest.dir" value="dest" />
    <property name="src.dir" value="src" />
    <property name="height" value="100" />
    <property name="width" value="200" />
    <property name="framerate" value="30" />
    <property name="bgcolor" value="0xFFFFFF" />
   
    <!-- create swf-->
    <target name="build.swf" depends="clean">
        <exec executable="${FLEX3_HOME}/amxmlc.bat" failonerror="true">
            <arg line="-default-size ${width} ${height}" />
            <arg line="-default-frame-rate ${framerate}" />
            <arg line="-default-background-color ${bgcolor}" />
            <arg line="-output ${dist.dir}/HelloWorld.swf" />
            <arg line="${src.dir}/HelloWorld.mxml" />
        </exec>
    </target>

    <!-- clean dist directory -->
    <target name="clean">
        <delete>
            <fileset dir="${dist.dir}" includes="HelloWorld.swf" />
        </delete>
    </target>

</project>

気をつけなければいけないのは、1行目のxml宣言は、必ずファイルの1行目の最初から記述されなければいけないことです。エラーを吐くときは余分なスペースが無いかを確認してください。

property後続のnameで様々な設定を行った後、中の行のargで引用しています。基本的に読めば分かると思います。framerateは1秒当たりの描画回数、bgcolorはすなわちbackground-color、背景色です。

helloworld.mxml

<?xml version="1.0" ?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:TextArea text="HelloWorld!" />
</mx:Application>

mx:Applicationタグに囲まれた部分が今回表示される文字列です。

コンパイル

Antビューの表示
コンパイルの前に、Antを表示する必要があります。「ウィンドウ」、「ビューの表示」、「Ant」です。これが無い場合は、下の「その他」から「Ant」、「Ant」で選択できます。(果たしてありえるのかはわかりませんが)もし、ここでAntが無い場合、Eclipseを落としなおしてください。ここまでの選択は、全て他に特殊な何かを必要とはしていません。

build.swfをダブルクリック
ウィンドウ内のbuild.swfをダブルクリックしてください。コンパイルが開始されます。エラーを吐く場合は、今までで間違っている部分が無いかを確認してください。

HelloWorld.swfの生成完了
コンパイルが終了したら、distフォルダ内にHelloWorld.swfが生成されています。F5で再読み込みを行えば、画面に表示されるはずです。

HelloWorld.swfの実行
実行するとこんな感じです。簡単に生成した割には、デザインもダサく無いです。これでHelloWorldのサンプルプログラムは終了です。

あとがき

ぶっちゃけ知識があればスムーズに出来たのでは、と思いました。Antなんて今までは外部から持って来る必要があったので、どこだと探したらSDKの中に既に含まれていたりしましたし、空回りしている感も否めなかったです。

しかしこれで念願のmxmlコンパイルが出来ました。以前書いたAptanaの記事は個人的にはいらない子です。今度はEclipseを用いた環境の充実か、もう少し踏み込んだサンプルプログラムを作っていきたいです。

2008年6月21日

AIR:Eclipseでfcsh環境を実装

はじめに

今回は、Eclipseをより使いやすくするために、fcsh環境をAntに組み込むことはできないかな、と模索してみました。

結論から言うと出来ませんでした。そこで環境を2つEclipse上に混在させることで落ち着かせることにしました。

fcshについては、もう皆さん知られていると思いますが、一度コンパイルしたものをメモリ上に保存することにより、以後のコンパイルを1/100ぐらいの速さで実行できます。ですので些細な変更を含めたときは、こちらを使うことで作業時間の待ちを大幅に短縮できます。なお、fcshはFlex3SDKには、最初から含まれています。

fcshを用いずに、Antのみでコンパイルしたい場合はこちらの、「AIR:Eclipseでmxmlをコンパイラできる環境を一から実装」に公開しています。

Antにfcshが組み込めない理由

Antはコンパイルの時に走らせて、コンパイル終了とともに開放されます。Antは実行時にfcshを呼び出すことは出来るのですが、コンパイラ終了によってfcshも同時に開放されてしまい、結局メモリ上にデータが残りません。詳しいところは違うと思いますが、大体これであっていると思います。

Eclopseでのfcsh環境実装方法

「実行」>「外部ツール」>「外部ツールダイアログを開く」
ツールバー上の、「実行」>「外部ツール」>「外部ツールダイアログを開く」を選択します。

外部ツール左、プログラム
表示されたウィンドウの左側のプログラムをダブルクリックします。

window概観
表示された「新規作成(1)」を選択し、左のタブがメインを選択していることを確認してください。

名称変更
「ロケーション」には、fcsh.exeまでを示す必要があります。flex3sdkにはデフォルトで入っています。ですから、僕の場合は

C:\flex3sdk\bin\fcsh.exe

です。下の「作業ディレクトリ」は好きなところでいいです。僕の場合は、HelloWorldのサンプルアプリケーションの中に指定しました。ですので、

${workspace_loc:/helloworld/src}

となります。これらで設定は終わりですので、後は区別のつきやすいように、「新規作成(1)」を「fcsh-AIR」にリネームします。そして「適用」を選び、「閉じる」でこのウィンドウを終了させます。

実行は外部ツール呼び出し
実行の際は、ツールバー上の「実行」から選択しても、二段目のショートカットから実行からでも、好きなほうからでかまいません。

mxmlc ファイル名
実行すると、コンソールウィンドウで作業を行うこととなります。デフォルトでは下部のウィンドウがそれに当たるはずです。

(fcsh)の後にコンパイルのコマンドを打ち込むことで動作します。先ほどお話したHelloWorldのアプリケーションをコンパイルする場合は、

mxmlc helloworld.mxml

このときコンパイルするmxmlのファイル名の大文字小文字を一致させてください。

compile 番号
一度目のコンパイルで、ターゲットIDの番号が表示されます。初回は「1」、以後値が大きくなっていきます。今後同じファイルをコンパイルするときは、表示されたIDが「1」であるなら、以下のように打ち込みます。

compile 1

先ほどのファイルに変更がない場合は、コンパイルはスキップします。

fcshを終了したい場合は、コマンドで「quit」と打ち込むか、Eclipse上のUIの停止ボタンを押してください。

2008年7月17日

AIR:チュートリアル、ActionScriptとmxmlで記述するコツ

はじめに

AIRプログラミングをしていて、ActionScript(以下AS)を使ったチュートリアルは充実していてもmxmlとASを用いたものはなかなか見つかりませんでした。僕自身プログラミング自体初心者なので、いちいち四苦八苦しています。

ということで、備忘録もかねて、mxmlとASを用いたプログラミングのチュートリアルと、ありがちな間違いについての記事を書きたいと思います。

実行環境

過去に紹介した「AIR:Eclipseでmxmlをコンパイラできる環境を一から実装」と、「AIR:Eclipseでfcsh環境を実装」を前提に、EclipseとFlex3SDKを使います。

プロラムは、undo0530さんのドラッグ&ドロップ1 外からドラッグ | FlashでAIR作りたい人の日記の最後の段落、「ファイルですねわかります」をそのまま流用させてもらいます。そちらから入手してください。

Let's Programing

まずはASだけでコンパイル

まずは先ほどのソースコードが正常にコンパイルできることを確認しましょう。ファイルを作成します。Eclipseでファイルを新規作成、ファイル名は本家が「DandDtest.as」なので、2番目ということで「DandDtest2.as」としましょう。

ソースコードを貼り付けて保存してfcsh環境を立ち上げます。

mxmlc DandDtest2.as

でコンパイル。するとエラー。

(fcsh) mxmlc DandDtest2.as
fcsh: Assigned 1 as the compile target id
Loading configuration file C:\flex3sdk\frameworks\flex-config.xml
C:\flex\helloworld\src\DandDtest2.as: Error: A file found in a source-path 'DandDtest2' must have the same name as the class definition inside the file 'DandDtest'.

(fcsh) 

Javaでもそうですが、ファイル名とclass名、function名は一致させなければいけません。ファイル名は「DandDtest2.as」としたので、class名とfunction名も「DandDtest.as」にして再度コンパイル。

(fcsh) compile 1
Loading configuration file C:\flex3sdk\frameworks\flex-config.xml
Recompile: C:\flex\helloworld\src\DandDtest2.as
Reason: The source file wasn't fully compiled.
Files changed: 0 Files affected: 1
C:\flex\helloworld\src\DandDtest2.as(23): col: 36 Error: 型が見つからないか、コンパイル時定数ではありません : NativeDragEvent。

		private function onDragEnter(evt:NativeDragEvent) {
		                                 ^

C:\flex\helloworld\src\DandDtest2.as(30): col: 35 Error: 型が見つからないか、コンパイル時定数ではありません : NativeDragEvent。

		private function onDragDrop(evt:NativeDragEvent) {
		                                ^

(fcsh) 

今度もいい感じにエラー。ここで注目しなければいけないのは、元のサンプルは正しいのにもかかわらず、僕の環境ではエラーを吐いていることです。

共通しているエラー内容は、NativeDragEventが無いよ、です。しかしNativeDragEventは定義されています。それなのに間違っているのはなぜでしょうか。このNativeDragEventはFlex3SDKにAIRアプリケーション用として組み込まれています。リファレンスはこちら、NativeDragEvent - ActionScript 3.0 言語およびコンポーネントリファレンスガイドから。

これを読んでも僕は気がつかなかったわけですが、パブリック定数の項を見てください。定数の横に赤い三角のマークがありますよね。これはAIRのアプリケーションのみで使えますよ、という印です。

僕のコンパイル方法、「mxmlc DandDtest2.as」ではAIRアプリケーションではなく、Flashになってしまっています。ですからここでのコンパイルは

amxmlc DandDtest2.as

でAIRアプリケーションとしてコンパイルする必要があります。しかしfcsh環境では、デフォルトではamxmlcのコンパイルに対応していません。fcshでのamxmlcコマンドはfcshでApolloを高速コンパイル(参考リンク集のおまけ付き) | てっく煮ブログで実装方法を解説しています。今回はfcshを使わない方法でいきます。

「AIR:Eclipseでmxmlをコンパイラできる環境を一から実装」こちらの記事と同様に、Eclipseの実行>外部ツールから新たに実行プログラムを登録しましょう。

新規作成したロケーションには

C:\flex3sdk\bin\amxmlc.bat

を登録、作業ディレクトリには各人に合わせたものを、引数には

DandDtest2.as

と、コンパイルするファイルを指定してください。そしてコンパイルすると、以下のように表示されます。

Loading configuration file C:\flex3sdk\frameworks\air-config.xml
C:\flex\helloworld\src\DandDtest2.as(14): col: 25 Warning: return value for function 'init' に型宣言がありません。

		private function init() {
		                      ^

C:\flex\helloworld\src\DandDtest2.as(23): col: 51 Warning: return value for function 'onDragEnter' に型宣言がありません。

		private function onDragEnter(evt:NativeDragEvent) {
		                                                ^

C:\flex\helloworld\src\DandDtest2.as(30): col: 50 Warning: return value for function 'onDragDrop' に型宣言がありません。

		private function onDragDrop(evt:NativeDragEvent) {
		                                               ^

C:\flex\helloworld\src\DandDtest2.swf (1016 bytes)

Eclipseでは、このメッセージが赤色で表示されます。Errorは出ていませんが、Warningが出ています。見えにくいので、型宣言を忘れないようにすると、気持ち間違えにくいプログラミングが出来ると思います。それぞれの()のあとに「:void」をつけてコンパイル。

Loading configuration file C:\flex3sdk\frameworks\air-config.xml
C:\flex\helloworld\src\DandDtest2.swf (1027 bytes)

コンパイル成功。しかしこれでは実行できません。出力されたファイルを実行すると、

VerifyError: Error #1014: クラス flash.events::NativeDragEvent が見つかりません。

	at global$init()

amxmlcコマンドでコンパイルして出力されるswfファイルは、AIRアプリケーションのための中間段階のファイルです。実際に実行するためにはAIRアプリケーションとしてパッケージングしなければいけません。

とはいっても、いちいち動作確認の度にやるのは馬鹿らしい話です。そこで登場するのがadlコマンドです。これはデバッグ用のコマンドで、一度そのプログラムに対応させたものを作成しておけば、amxmlcコマンドで中間ファイルとして出力されたswfを実際のアプリケーションとして動作させることができます。

新しいファイルを作成し、それの名前を「DandDtest2.xml」としてください。そしてファイルの中身を、

<?xml version="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/1.0" minimumPatchLevel="1047">
	<id>net.libertatem.org.DandDtest2</id>
	<name>DandDtest2</name>
	<version>1.0</version>
	<filename>DandDtest2</filename>
	<description>DandDtest2 application</description>
	<copyright>(c) 2008 Libertas</copyright>
	<initialWindow>
		<content>DandDtest2.swf</content>
		<title>DandDtest2</title>
		<systemChrome>standard</systemChrome>
		<transparent>false</transparent>
		<visible>true</visible>
		<minimizable>true</minimizable>
		<maximizable>true</maximizable>
		<resizable>true</resizable>
		<x>150</x>
		<y>150</y>
	</initialWindow>
	<installFolder>libertas/DandDtest2</installFolder>
	<programMenuFolder>libertas/DandDtest2.as</programMenuFolder>
	<customUpdateUI>false</customUpdateUI>
	<allowBrowserInvocation>false</allowBrowserInvocation>
</application>

コピペして保存。このファイルは詳しい説明は省略します。adfファイルというもので、プログラムのウィンドウサイズなどを指定しています。DandDtest2.swfが中段で指定されているところに注目してください。

それではまたEclipseの実行>外部ツールから新たに実行プログラムを登録しましょう。新規作成したロケーションには

C:\flex3sdk\bin\adl.exe

を登録、作業ディレクトリには各人に合わせたものを、引数には

DandDtest2.xml

としてLet's実行です。そうするとウィンドウが現れましたね。この白い四角になにかファイルをドラック&ドロップしてみてください。そうするとEclipseのコンソールウィンドウに文字が現れました。traceは本来デバッグなどに使用する出力コマンドです。僕の環境では文字化けしてしまっていますが、"ファイルですね、わかります"と出力されているはずです。

AS+mxmlでコンパイル

やっとmxmlです。それではmxmlファイルを「DandDtest2.mxml」で新しく作成してください。そして以下をコピぺ。

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
	layout="absolute">
	<mx:Script source="DandDtest2.as" />
</mx:Application>

さて、これでmxmlからASを呼び出しています。実行できるはず......!と、その前に、amxmlcコマンドの対象を新たなファイルにするために、引数の値を書き換えておきましょう。「DandDtest2.as」から「DandDtest2.mxml」です。

Loading configuration file C:\flex3sdk\frameworks\air-config.xml
C:\flex\helloworld\src\DandDtest2.as(1): col: 9 Error: パッケージをネストすることはできません。

package {
        ^

Why何故......。ではここでは何も考えずに消してみましょう。出来ないなら消せばいい。「DandDtest2.as」のpackageを{}と一緒に消しましょう。これでどうだとコンパイル。

Loading configuration file C:\flex3sdk\frameworks\air-config.xml
C:\flex\helloworld\src\DandDtest2.as(6): col: 9 Error: クラスをネストすることはできません。

	public class DandDtest2 extends Sprite {
	       ^

shit何故......。不安なんか気にせずに消してみましょう。出来ないなら消せばいい。「DandDtest2.as」のclassの行を{}と一緒に消しましょう。これでどうだとコンパイル。

Loading configuration file C:\flex3sdk\frameworks\air-config.xml
C:\flex\helloworld\src\DandDtest2.as(10): col: 20: Error: Multiple constructor definitions found. Constructor may not be defined in <Script/> code.

		public function DandDtest2() {
		                 ^

......もう言わなくてもわかりますね。消し消し~。

Loading configuration file C:\flex3sdk\frameworks\air-config.xml
C:\flex\helloworld\src\DandDtest2.swf (157260 bytes)

やった!コンパイルは成功です!

何でネストできないの?

さまざまな記事で触れられていますが、mxmlからASを呼び出したときは、既にpackageとclassは呼び出されています。ですからファイルにも書かれていると二重に呼び出されたことになります。そのために消す必要があります。

これは仕様ですので今後気をつけてください。ASの書き始めは見た目C言語のようになる、ということです。

完成したかな?

ここまでのASがどうなっているかを下に示します。

	import flash.desktop.*;
	import flash.display.*;
	import flash.events.*;


		private var Yohaku:Number = 20;
		private var canvas:Sprite = new Sprite();


			init();


		private function init():void {
			canvas.graphics.beginFill(0xeeeeee);
			canvas.graphics.drawRect(Yohaku,Yohaku,stage.stageWidth - Yohaku*2, stage.stageHeight - Yohaku*2);
			canvas.graphics.endFill();
			addChild(canvas);
			canvas.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER,onDragEnter);
			canvas.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP,onDragDrop);
		}

		private function onDragEnter(evt:NativeDragEvent):void {
			var data:Clipboard = evt.clipboard;
			if (data.hasFormat(ClipboardFormats.FILE_LIST_FORMAT)) {
				NativeDragManager.acceptDragDrop(canvas);
			}
		}

		private function onDragDrop(evt:NativeDragEvent):void {
			trace("ファイルですね、わかります");
		}

adlを呼び出しましょう。コンパイルが成功するはずです。

やった~コンパイル成功。でも、あれ、白い四角が表示されていない?

AS+mxmlでのプログラミングで間違いやすいポイント

継承

AIRアプリケーションではUIComponentはSpriteを継承しているためです。これの取り組みについてはこちらの記事に詳しく書かれています。Flex 3で直接Spriteを使用することはできない? - Memorize -

この行に注目してください。

		private var canvas:Sprite = new Sprite();

ここでSpriteが使われていますね。これを以下のようにします。

		private var canvas:UIComponent = new UIComponent();

このように定義が変わっていることがあります。コンパイルが通っても正常動作するとは限らないので用心してください。

mx.core

AIRアプリケーションとして、インポートをいつも求められるのがこれです。先頭行に追加してください。

import mx.core.*;

必ず書くぐらいの認識で問題ないです。

mxmlから呼び出そう

さて、本来のASで以下の部分がありましたね。

		public function DandDtest() {
			init();
		}

ここから「init()」を呼び出していましたが、先ほど消してしまったので機能していません。ですから残された「init()」も消してしまいましょう。

変わりにmxmlから呼び出す必要があります。次の要素を「mx:Application」タグ内に定義してください。

 applicationComplete="init();"

これで完成です。

完成!出来上がった3つのファイル

完成しました!いや、記述ミスがあったら完成していないかもしれません。困ったね。

完成したファイルは以下のようになります。

DandDtest2.mxml

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="init();"
	layout="absolute">
	<mx:Script source="DandDtest2.as" />
</mx:Application>

DandDtest2.as

import mx.core.*;
	import flash.desktop.*;
	import flash.display.*;
	import flash.events.*;


		private var Yohaku:Number = 20;
		private var canvas:UIComponent = new UIComponent();


		private function init():void {
			canvas.graphics.beginFill(0xeeeeee);
			canvas.graphics.drawRect(Yohaku,Yohaku,stage.stageWidth - Yohaku*2, stage.stageHeight - Yohaku*2);
			canvas.graphics.endFill();
			addChild(canvas);
			canvas.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER,onDragEnter);
			canvas.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP,onDragDrop);
		}

		private function onDragEnter(evt:NativeDragEvent):void {
			var data:Clipboard = evt.clipboard;
			if (data.hasFormat(ClipboardFormats.FILE_LIST_FORMAT)) {
				NativeDragManager.acceptDragDrop(canvas);
			}
		}

		private function onDragDrop(evt:NativeDragEvent):void {
			trace("ファイルですね、わかります");
		}


DandDtest2.xml

<?xml version="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/1.0" minimumPatchLevel="1047">
	<id>net.libertatem.org.DandDtest2</id>
	<name>DandDtest2</name>
	<version>1.0</version>
	<filename>DandDtest2</filename>
	<description>DandDtest2 application</description>
	<copyright>(c) 2008 Libertas</copyright>
	<initialWindow>
		<content>DandDtest2.swf</content>
		<title>DandDtest2</title>
		<systemChrome>standard</systemChrome>
		<transparent>false</transparent>
		<visible>true</visible>
		<minimizable>true</minimizable>
		<maximizable>true</maximizable>
		<resizable>true</resizable>
		<x>150</x>
		<y>150</y>
	</initialWindow>
	<installFolder>libertas/DandDtest2</installFolder>
	<programMenuFolder>libertas/DandDtest2.as</programMenuFolder>
	<customUpdateUI>false</customUpdateUI>
	<allowBrowserInvocation>false</allowBrowserInvocation>
</application>
</pre>

あとがき

用語とか高確率で間違っていると思います。調べながらやってみましたが、そのかわり初心者の僕らしいチュートリアルにするべく、慣れていない人には気になるポイントを重点的に取り上げてみました。誰かに聞けないとめちゃくちゃ解決に時間かかりますからね......

記述ミスの確認もしましたが、何かありましたらコメントお願いします。

About Adobe Air

ブログ「Libertas」のカテゴリ「Adobe Air」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

次のカテゴリはhtmlです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.