<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><description>AIRのこと全然わかんないけどFlashはそれなりにできますよって人向け。APIはBeta3のものです、多分。</description><title>FlashでAIR作りたい人のメモ</title><generator>Tumblr (3.0; @flair)</generator><link>http://flair.tumblr.com/</link><item><title>移転しますた</title><description>&lt;p&gt;&lt;a href="http://d.hatena.ne.jp/undo0530/" target="_blank"&gt;http://d.hatena.ne.jp/undo0530/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;書くのすっかり忘れてた。移転しました。よろちくび。 &lt;/p&gt;</description><link>http://flair.tumblr.com/post/34490874</link><guid>http://flair.tumblr.com/post/34490874</guid><pubDate>Mon, 12 May 2008 12:11:24 +0900</pubDate></item><item><title>ファイル操作1　テキストファイルの読み込み/書き出し</title><description>&lt;p&gt;デスクトップにある「hoge.txt」を読みこんで編集して上書き保存してみる。&lt;/p&gt;
&lt;p&gt;まず、ローカルファイルへのアクセスとか読み書きにはflash.filesystem.Fileクラスとflash.filesystem.FileStreamクラスを使うのでimportする。面倒だから&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;import flash.filesystem.*&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;でいいよね。&lt;br/&gt;次に、hoge.txtへの参照を取得する。これはFileクラスの仕事。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;var file:File = File.desktopDirectory.resolvePath(“hoge.txt”);&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;File.desktopDirectoryでデスクトップへのパス、さらにresolvePath()でhoge.txtへのパス。ディレクトリを辿っていくときはresolvePath(“air/test/hoge.txt”)みたいな感じじゃね？試してないけど&lt;/p&gt;
&lt;p&gt;次に、実際にファイルの中身を読み込んでみる。ここからはFileStreamクラスの仕事。&lt;br/&gt;まずオブジェクトを用意する。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;var stream:FileStream = new FileStream();&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;したら、ファイルを読み込み専用でオープンする。ファイルが見つからない場合にはエラーを吐かれるのでtry{}catch{}finaly{}で囲んでおく。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;try {&lt;br/&gt; stream.open(file, FileMode.READ);//読み込み専用でオープン&lt;br/&gt;&lt;br/&gt; var str:String = stream.readUTFBytes(stream.bytesAvailable);//stream.readUTFBytes()メソッドは、ファイルをUTF8のデータとして読み込むメソッド。&lt;br/&gt; //引数には読み込むデータの長さを指定する。stream.bytesAvailableはstream.open()メソッドによってバッファに読み込みが完了しているデータ量。&lt;br/&gt; //stream.open()だと、完全に読み込むまでは次の処理に移らないので、全部のデータ量が既にバッファに読み込まれている。&lt;br/&gt;&lt;br/&gt; output.text = str.replace(/\r\n/g, “\n”);//テキストボックスに表示。改行をごにょごにょしてます&lt;/p&gt;
&lt;p&gt;} catch (error:IOError) {&lt;br/&gt; trace(error.message);//エラーが出たら表示&lt;br/&gt;&lt;br/&gt;} finally {&lt;br/&gt; stream.close();//エラーの有無に関わらず、ファイルをクローズする。&lt;br/&gt;}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;これで、テキストファイルhoge.txtの内容が表示される。文字化けしてるときは保存形式を確認。UTF-8&lt;/p&gt;
&lt;p&gt;次は書き込み。基本的には読み込みと同じ。&lt;br/&gt;ステージに「上書き保存」のボタンでも作って、リスナー登録しておく。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;function writeData(Evt:MouseEvent):void {&lt;br/&gt;&lt;br/&gt; try {//ファイルオープンでエラーが出たときのために&lt;br/&gt;  stream.open(file, FileMode.WRITE);//書き込み専用でオープン&lt;br/&gt;  stream.writeUTFBytes(output.text);//stream.writeUTFBytes()メソッドは、StringをUTF8のデータとして書き込むメソッド。&lt;br/&gt; } catch (error:IOError) {&lt;br/&gt;  trace(error.message);//エラーが出たら表示&lt;br/&gt; } finally {&lt;br/&gt;  stream.close();//エラーの有無に関わらず、ファイルをクローズする。&lt;br/&gt; }&lt;br/&gt;}&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;ね？簡単でしょう&lt;br/&gt;ディレクトリへの参照は他にも&lt;/p&gt;applicationResourceDirectory:FileアプリケーションのリソースがインストールされているディレクトリapplicationStorageDirectory:Fileアプリケーション毎に割り当てられる保存用ディレクトリdesktopDirectory:FileユーザのデスクトップディレクトリdocumentsDirectory:FileユーザのドキュメントディレクトリuserDirectory:Fileユーザのホームディレクトリ&lt;p&gt;がある。また、ファイルをオープンする際に指定するタイプは、&lt;/p&gt;FileMode.READ読み込み専用。FileMode.WRITE書き込み専用。ファイルは常に上書きされる。ファイルが存在しなければオープン時に作成される。FileMode.APPEND書き込み専用。データは常にファイル末尾に追記される。ファイルが存在しなければオープン時に作成される。FileMode.UPDATE読み書き両用。ファイルの任意の位置から読み書き可能。ファイルが存在しなければオープン時に作成される。&lt;p&gt;がある。&lt;/p&gt;</description><link>http://flair.tumblr.com/post/22168283</link><guid>http://flair.tumblr.com/post/22168283</guid><pubDate>Sat, 22 Dec 2007 16:21:41 +0900</pubDate></item><item><title>右クリックメニューを作る</title><description>&lt;p&gt;右クリックで出てくるポップアップメニューを作ってみよう！&lt;/p&gt;
&lt;p&gt;まず、メニューのアイテムを用意。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;var myMenu:NativeMenu = new NativeMenu();&lt;br/&gt;//メニューの大元になるメニュー。この下に「File」とか「終了」とか作る。&lt;br/&gt;var fileMenu:NativeMenuItem = myMenu.addSubmenu(new NativeMenu(), “File”);&lt;br/&gt;//大元メニューのしたに「File」サブメニューを作った。&lt;br/&gt;var loadMenu:NativeMenuItem = new NativeMenuItem(“Load”);&lt;br/&gt;var exitMenu:NativeMenuItem = new NativeMenuItem(“Exit”);&lt;br/&gt;//メニューアイテム「Load」と「Exit」を作った。下には入れてない。&lt;br/&gt;fileMenu.submenu.addItem(loadMenu);&lt;br/&gt;myMenu.addItem(exitMenu);&lt;br/&gt;//Fileの下にLoadを、myMenu直下にExitを入れた。&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;これで、メニューの準備ができた。次に、LoadとExitを選択したときに処理を行えるよう、リスナーに登録しておく。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;loadMenu.addEventListener(Event.SELECT, loadHoge);&lt;br/&gt;exitMenu.addEventListener(Event.SELECT, exitHoge);&lt;br/&gt;//メニューから選択された時にリスナーが拾って、それぞれ関数を呼ぶ。&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;loadHoge()とかexitHoge()関数は適当に定義しといてね。&lt;br/&gt;最後に、この自作メニューを右クリックで出せるようにする。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;window_mc.contextMenu = rootMenu;&lt;br/&gt;//window_mcインスタンスを右クリックするとメニューが出る&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;これでたぶんおｋ。右クリックすると&lt;br/&gt;File→&lt;br/&gt;Exit&lt;br/&gt;なメニューが出て、FileからはさらにLoadアイテムが右に出るよ！&lt;/p&gt;</description><link>http://flair.tumblr.com/post/21575194</link><guid>http://flair.tumblr.com/post/21575194</guid><pubDate>Fri, 14 Dec 2007 21:18:00 +0900</pubDate></item><item><title>ウィンドウ操作2　ドラッグで移動</title><description>&lt;p&gt;オリジナルのかっこいいウィンドウにしたらドラッグできない＼(^o^)／&lt;br/&gt;そんなときはコレ&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;stage.nativeWindow.startMove();&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;ウィンドウのインスタンスをリスナーに登録して、マウスが押下してる間に↑の関数を呼び出すように設定すればおｋ。例えば、&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;window_mc.addEventListener(MouseEvent.MOUSE_DOWN, windowMove);&lt;br/&gt;/*window_mc上でマウスが押下されてる間、windowMove関数を実行する。*/&lt;br/&gt;&lt;/em&gt;&lt;br/&gt;&lt;em&gt;function windowMove(Evt:MouseEvent):void {&lt;br/&gt; stage.nativeWindow.startMove();&lt;br/&gt;}&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;こんな感じ。&lt;/p&gt;</description><link>http://flair.tumblr.com/post/21567704</link><guid>http://flair.tumblr.com/post/21567704</guid><pubDate>Fri, 14 Dec 2007 18:59:00 +0900</pubDate></item><item><title>AIR ベータ3 来てた＼(^o^)／</title><description>&lt;p&gt;AIR Beta3 インストーラ→&lt;a target="_blank" href="http://labs.adobe.com/downloads/air.html"&gt;＼(^o^)／&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Flashのアップデートも来たよ→&lt;a target="_blank" href="http://labs.adobe.com/wiki/index.php/AIR:Flash_CS3_Professional_Update"&gt;＼(^o^)／&lt;/a&gt;&lt;br/&gt;以下、うｐ手順。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1．AIR Beta3 インストーラをインスコ&lt;/p&gt;
&lt;p&gt;2．\Program Files\Adobe\Adobe Flash CS3\　にある、「AIK」フォルダを削除。&lt;/p&gt;
&lt;p&gt;3．\Program Files\Adobe\Adobe Flash CS3\First Run\Commands\　にある、「AIR - Application and Package Settings.jsfl」と「AIR - Package AIR File.jsfl」を削除。&lt;/p&gt;
&lt;p&gt;4．\Document and Settings\Local Settings\Application Data\Adobe\Flash CS3\Configuration\Commands\　にも3．と同じファイルがあるので削除。※隠しファイルを表示しとけ&lt;/p&gt;
&lt;p&gt;5．Flash CS3をアップデートする。&lt;a target="_blank" href="http://www.adobe.com/support/flash/downloads.html#flashCS3"&gt;ここから&lt;/a&gt;。言語を間違えないように。&lt;/p&gt;
&lt;p&gt;6．AIR Beta3 UpdaterをDLしてアップデートする。&lt;a target="_blank" href="http://labs.adobe.com/wiki/index.php/AIR:Flash_CS3_Professional_Update#Download_and_Install.2FUninstall"&gt;ここから&lt;/a&gt;。言語を間違えないように。日本語はもっと下のほうにあるから。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;以上だと思う。またなんかあったら追記します。&lt;/p&gt;</description><link>http://flair.tumblr.com/post/21555107</link><guid>http://flair.tumblr.com/post/21555107</guid><pubDate>Fri, 14 Dec 2007 15:13:00 +0900</pubDate></item><item><title>ウィンドウ操作1　最大化　最小化　元のサイズに戻す　閉じる</title><description>&lt;p&gt;せっかくAIRなんだから変な形のウィンドウにしたいよね！でもカスタムクロームにすると閉じるボタンがなくなっちゃって、タスクバーから右クリしたりAltF4とかしないと終了できなくなっちゃうね(´・ω・｀)&lt;/p&gt;
&lt;p&gt;なのでスクリプトからウィンドウを閉じる命令出せればいいよね！&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;stage.nativeWindow.close();&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;これだけ。例えばボタンインスタンスbuttonを描いて、フレームアクションに&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;button.addEventListener(MouseEvent.CLICK, closeWindow);&lt;br/&gt;&lt;br/&gt;function closeWindow(Event:MouseEvent):void{&lt;br/&gt; stage.nativeWindow.close();&lt;br/&gt;}&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;って書けば、ボタンを押した時にウィンドウが閉じるよ。簡単だね！&lt;/p&gt;
&lt;p&gt;stage.nativeWindow.maximize(); は最大化&lt;br/&gt;stage.nativeWindow.minimize(); は最小化&lt;br/&gt;stage.nativeWindow.restore(); は元のサイズ&lt;br/&gt;stage.nativeWindow.close(); は閉じる&lt;/p&gt;
&lt;p&gt;だよ！覚えておこう！&lt;/p&gt;
&lt;p&gt;※AIRベータ1だとstage.window.close();だったらしいけど、ベータ2からはstage.nativeWindow.close();に変わったらしい。(　´・∀・｀) ﾍｰ&lt;/p&gt;</description><link>http://flair.tumblr.com/post/21021309</link><guid>http://flair.tumblr.com/post/21021309</guid><pubDate>Fri, 07 Dec 2007 15:52:00 +0900</pubDate></item><item><title>まずやること</title><description>&lt;p&gt;準備するもの&lt;br/&gt;・Flash CS3&lt;br/&gt;・AIRインストーラ&lt;br/&gt;・Flash CS3用でAIRを作れるようにするアップデート&lt;/p&gt;
&lt;p&gt;AIRインストーラは「ARIアプリケーションをインストールして使えるようにする」ためのもの。アプリを使うだけならこれだけ落とせばOK。&lt;a target="_blank" href="http://labs.adobe.com/downloads/air.html"&gt;ここからDL&lt;/a&gt;&lt;br/&gt;次に、Flash CS3でAIRを作れるようにするアップデート。&lt;a target="_blank" href="http://labs.adobe.com/wiki/index.php/AIR:Flash_CS3_Professional_Update"&gt;ここからDL&lt;/a&gt;して実行。Flashが英語版なら英語版のアップデート、日本語版なら日本語版じゃないとダメだよ。うまくいかない時はまず&lt;a target="_blank" href="http://www.adobe.com/support/flash/downloads.html#flashCS3"&gt;Flash自体をアップデート&lt;/a&gt;してみるといいかも。&lt;/p&gt;
&lt;p&gt;次に、Flashを起動して、スタートアップスクリーン（起動時に表示されて、ファイルを開くのか新規作成するのかとか選ぶ、かなりの確率でオフにされてるアレ）の中から「Flash file (Adobe AIR)」で新規作成する。ここで毎回何か出るけどOKでOK。&lt;/p&gt;
&lt;p&gt;で、まず.flaファイルを半角英数でいったん保存する。そしたら「コマンド」から「AIR-Application and Installer Settings」を選ぶ。開いたウィンドウの真ん中ちょい下に「Digital signature（電子署名：）」の欄があるので、そこのChange（設定）ボタンを押す。さらに開いたウィンドウの「Create…（作成…）」ボタン押す。&lt;/p&gt;
&lt;p&gt;デジタル署名ファイルを作成。名前とか所属とかパスワードとか、全部埋めて保存する。保存する場所はどこでもいいっぽい。&lt;/p&gt;
&lt;p&gt;以上でたぶん終了。次からはAIRパッケージを作るたびに署名のパスワードを求められる。&lt;br/&gt;試しに、.flaで適当な四角とか描いて保存して、Shift+F12かCtrl+Enterでswfとxmlファイルを作って、「コマンド→AIR-Application and Installer Settings→Publish AIR File」あるいは「コマンド→AIR-Create AIR File」でAIRパッケージを作る。出来たファイルを実行すると、最初にインスコしたAIRインストーラが起動してアプリをインストールしますか？って聞いてくるので指示通りにインスコ。アプリを起動すれば、描いた四角が表示されるはず。※この四角はswfファイルを再生してるワケじゃなくて、AIRランタイムからswfを表示してる、って感じらしいよ。よくわかんねーけど&lt;/p&gt;</description><link>http://flair.tumblr.com/post/20798405</link><guid>http://flair.tumblr.com/post/20798405</guid><pubDate>Tue, 04 Dec 2007 23:53:00 +0900</pubDate></item></channel></rss>
