ファイル操作1 テキストファイルの読み込み/書き出し
デスクトップにある「hoge.txt」を読みこんで編集して上書き保存してみる。
まず、ローカルファイルへのアクセスとか読み書きにはflash.filesystem.Fileクラスとflash.filesystem.FileStreamクラスを使うのでimportする。面倒だから
import flash.filesystem.*
でいいよね。
次に、hoge.txtへの参照を取得する。これはFileクラスの仕事。
var file:File = File.desktopDirectory.resolvePath(“hoge.txt”);
File.desktopDirectoryでデスクトップへのパス、さらにresolvePath()でhoge.txtへのパス。ディレクトリを辿っていくときはresolvePath(“air/test/hoge.txt”)みたいな感じじゃね?試してないけど
次に、実際にファイルの中身を読み込んでみる。ここからはFileStreamクラスの仕事。
まずオブジェクトを用意する。
var stream:FileStream = new FileStream();
したら、ファイルを読み込み専用でオープンする。ファイルが見つからない場合にはエラーを吐かれるのでtry{}catch{}finaly{}で囲んでおく。
try {
stream.open(file, FileMode.READ);//読み込み専用でオープン
var str:String = stream.readUTFBytes(stream.bytesAvailable);//stream.readUTFBytes()メソッドは、ファイルをUTF8のデータとして読み込むメソッド。
//引数には読み込むデータの長さを指定する。stream.bytesAvailableはstream.open()メソッドによってバッファに読み込みが完了しているデータ量。
//stream.open()だと、完全に読み込むまでは次の処理に移らないので、全部のデータ量が既にバッファに読み込まれている。
output.text = str.replace(/\r\n/g, “\n”);//テキストボックスに表示。改行をごにょごにょしてます} catch (error:IOError) {
trace(error.message);//エラーが出たら表示
} finally {
stream.close();//エラーの有無に関わらず、ファイルをクローズする。
}
これで、テキストファイルhoge.txtの内容が表示される。文字化けしてるときは保存形式を確認。UTF-8
次は書き込み。基本的には読み込みと同じ。
ステージに「上書き保存」のボタンでも作って、リスナー登録しておく。
function writeData(Evt:MouseEvent):void {
try {//ファイルオープンでエラーが出たときのために
stream.open(file, FileMode.WRITE);//書き込み専用でオープン
stream.writeUTFBytes(output.text);//stream.writeUTFBytes()メソッドは、StringをUTF8のデータとして書き込むメソッド。
} catch (error:IOError) {
trace(error.message);//エラーが出たら表示
} finally {
stream.close();//エラーの有無に関わらず、ファイルをクローズする。
}
}
ね?簡単でしょう
ディレクトリへの参照は他にも
がある。また、ファイルをオープンする際に指定するタイプは、
FileMode.READ読み込み専用。FileMode.WRITE書き込み専用。ファイルは常に上書きされる。ファイルが存在しなければオープン時に作成される。FileMode.APPEND書き込み専用。データは常にファイル末尾に追記される。ファイルが存在しなければオープン時に作成される。FileMode.UPDATE読み書き両用。ファイルの任意の位置から読み書き可能。ファイルが存在しなければオープン時に作成される。がある。
4 years ago • 0 notes右クリックメニューを作る
右クリックで出てくるポップアップメニューを作ってみよう!
まず、メニューのアイテムを用意。
var myMenu:NativeMenu = new NativeMenu();
//メニューの大元になるメニュー。この下に「File」とか「終了」とか作る。
var fileMenu:NativeMenuItem = myMenu.addSubmenu(new NativeMenu(), “File”);
//大元メニューのしたに「File」サブメニューを作った。
var loadMenu:NativeMenuItem = new NativeMenuItem(“Load”);
var exitMenu:NativeMenuItem = new NativeMenuItem(“Exit”);
//メニューアイテム「Load」と「Exit」を作った。下には入れてない。
fileMenu.submenu.addItem(loadMenu);
myMenu.addItem(exitMenu);
//Fileの下にLoadを、myMenu直下にExitを入れた。
これで、メニューの準備ができた。次に、LoadとExitを選択したときに処理を行えるよう、リスナーに登録しておく。
loadMenu.addEventListener(Event.SELECT, loadHoge);
exitMenu.addEventListener(Event.SELECT, exitHoge);
//メニューから選択された時にリスナーが拾って、それぞれ関数を呼ぶ。
loadHoge()とかexitHoge()関数は適当に定義しといてね。
最後に、この自作メニューを右クリックで出せるようにする。
window_mc.contextMenu = rootMenu;
//window_mcインスタンスを右クリックするとメニューが出る
これでたぶんおk。右クリックすると
File→
Exit
なメニューが出て、FileからはさらにLoadアイテムが右に出るよ!
ウィンドウ操作2 ドラッグで移動
オリジナルのかっこいいウィンドウにしたらドラッグできない\(^o^)/
そんなときはコレ
stage.nativeWindow.startMove();
ウィンドウのインスタンスをリスナーに登録して、マウスが押下してる間に↑の関数を呼び出すように設定すればおk。例えば、
window_mc.addEventListener(MouseEvent.MOUSE_DOWN, windowMove);
/*window_mc上でマウスが押下されてる間、windowMove関数を実行する。*/
function windowMove(Evt:MouseEvent):void {
stage.nativeWindow.startMove();
}
こんな感じ。
4 years ago • 1 noteAIR ベータ3 来てた\(^o^)/
AIR Beta3 インストーラ→\(^o^)/
Flashのアップデートも来たよ→\(^o^)/
以下、うp手順。
1.AIR Beta3 インストーラをインスコ
2.\Program Files\Adobe\Adobe Flash CS3\ にある、「AIK」フォルダを削除。
3.\Program Files\Adobe\Adobe Flash CS3\First Run\Commands\ にある、「AIR - Application and Package Settings.jsfl」と「AIR - Package AIR File.jsfl」を削除。
4.\Document and Settings\Local Settings\Application Data\Adobe\Flash CS3\Configuration\Commands\ にも3.と同じファイルがあるので削除。※隠しファイルを表示しとけ
5.Flash CS3をアップデートする。ここから。言語を間違えないように。
6.AIR Beta3 UpdaterをDLしてアップデートする。ここから。言語を間違えないように。日本語はもっと下のほうにあるから。
以上だと思う。またなんかあったら追記します。
4 years ago • 0 notesウィンドウ操作1 最大化 最小化 元のサイズに戻す 閉じる
せっかくAIRなんだから変な形のウィンドウにしたいよね!でもカスタムクロームにすると閉じるボタンがなくなっちゃって、タスクバーから右クリしたりAltF4とかしないと終了できなくなっちゃうね(´・ω・`)
なのでスクリプトからウィンドウを閉じる命令出せればいいよね!
stage.nativeWindow.close();
これだけ。例えばボタンインスタンスbuttonを描いて、フレームアクションに
button.addEventListener(MouseEvent.CLICK, closeWindow);
function closeWindow(Event:MouseEvent):void{
stage.nativeWindow.close();
}
って書けば、ボタンを押した時にウィンドウが閉じるよ。簡単だね!
stage.nativeWindow.maximize(); は最大化
stage.nativeWindow.minimize(); は最小化
stage.nativeWindow.restore(); は元のサイズ
stage.nativeWindow.close(); は閉じる
だよ!覚えておこう!
※AIRベータ1だとstage.window.close();だったらしいけど、ベータ2からはstage.nativeWindow.close();に変わったらしい。( ´・∀・`) ヘー
4 years ago • 1 noteまずやること
準備するもの
・Flash CS3
・AIRインストーラ
・Flash CS3用でAIRを作れるようにするアップデート
AIRインストーラは「ARIアプリケーションをインストールして使えるようにする」ためのもの。アプリを使うだけならこれだけ落とせばOK。ここからDL
次に、Flash CS3でAIRを作れるようにするアップデート。ここからDLして実行。Flashが英語版なら英語版のアップデート、日本語版なら日本語版じゃないとダメだよ。うまくいかない時はまずFlash自体をアップデートしてみるといいかも。
次に、Flashを起動して、スタートアップスクリーン(起動時に表示されて、ファイルを開くのか新規作成するのかとか選ぶ、かなりの確率でオフにされてるアレ)の中から「Flash file (Adobe AIR)」で新規作成する。ここで毎回何か出るけどOKでOK。
で、まず.flaファイルを半角英数でいったん保存する。そしたら「コマンド」から「AIR-Application and Installer Settings」を選ぶ。開いたウィンドウの真ん中ちょい下に「Digital signature(電子署名:)」の欄があるので、そこのChange(設定)ボタンを押す。さらに開いたウィンドウの「Create…(作成…)」ボタン押す。
デジタル署名ファイルを作成。名前とか所属とかパスワードとか、全部埋めて保存する。保存する場所はどこでもいいっぽい。
以上でたぶん終了。次からはAIRパッケージを作るたびに署名のパスワードを求められる。
試しに、.flaで適当な四角とか描いて保存して、Shift+F12かCtrl+Enterでswfとxmlファイルを作って、「コマンド→AIR-Application and Installer Settings→Publish AIR File」あるいは「コマンド→AIR-Create AIR File」でAIRパッケージを作る。出来たファイルを実行すると、最初にインスコしたAIRインストーラが起動してアプリをインストールしますか?って聞いてくるので指示通りにインスコ。アプリを起動すれば、描いた四角が表示されるはず。※この四角はswfファイルを再生してるワケじゃなくて、AIRランタイムからswfを表示してる、って感じらしいよ。よくわかんねーけど