2008年02月03日

AIRのファイルシステムコンポーネントを使いテキストファイルを読み込んでみる

AIRで例えば、ブックマーク的機能を持つアプリを作る時にURLを直接入力するとかドラッグ&ドロップするより、既存のブックマークがあればそれを読み込んでしまう方が効率が良いのではということで、Fileクラスとファイルシステムコンポーネントを使ってファイルをインポートするサンプルをテストしてみました。
fileimport.gif

safariではブックマークをエクスポートするとhtmlで書きだすのですが、どのブラウザでも同じようなモンでしょうということで、ブラウザからエクスポートしたhtmlより必要なリンクの部分だけ抜き出してたアンカータグ付きのURLのリストをテキストファイルとしてどこかに置いておきます。

参考にさせていただいたのは以下のサイト。
今からはじめるAIRプログラミング
FlashでAIR作りたい人の日記

ソースはこんな感じです
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Style source="assets/dr.css" />
<mx:Script>
<![CDATA[
import mx.events.*;
import flash.filesystem.File;

[Bindable]
private var dir:File;

private function init():void{
dir = File.userDirectory;
}

private function selectHandler(e:File):void{
if(!e || e.isDirectory)
return;
var file:File = File.desktopDirectory.resolvePath(e.nativePath);
var stream:FileStream = new FileStream();
stream.open(file, FileMode.READ);
var txt:String = stream.readUTFBytes(stream.bytesAvailable);
var list:XML = new XML(txt);
dg.dataProvider = list.A;
}

]]>
</mx:Script>
<mx:FileSystemTree x="10" y="10" height="95%" width="185" id="lite" directory="{dir}"
showIcons="true" showHidden="false"
fileChoose="selectHandler(event.file)" />

<mx:DataGrid id="dg" y="10" height="95%" right="5" left="200"/>
</mx:WindowedApplication>


FileSystemTree中のファイルをダブルクリックするとデータをDataGridに表示します。

作ってから気がついたんですが、DataProviderにするために最後に読み込んだテキストをXMLにしてるわけで、これ別にFileStreamで読み込むこともなく直接XMLとして読み込めますよね。。。




タグ:AIR flex
posted by オーイシ at 18:06| Comment(0) | TrackBack(0) | Flash | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/82244251

この記事へのトラックバック