«

»

7月 08

AIR for Android メモ ファイル

このエントリーを含むはてなブックマークはてなブックマーク - AIR for Android メモ ファイル Googleブックマークに追加 このエントリをつぶやくこのWebページのtweets

AIR for Android メモ
ファイルの読み書きについて

・画像を参照して表示

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" initialize="init()">
	
	<fx:Script>
		<![CDATA[
			private var file:File = new File();
			private var loader:Loader = new Loader();
			
			private function init():void{
				file.addEventListener(Event.SELECT, onSelect);
				file.addEventListener(Event.COMPLETE, onComp);
				loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
			}
			
			protected function reffer():void
			{
				file.browse();
			}
			
			private function onSelect(e:Event):void{
				file.load();
			}
			
			private function onComp(e:Event):void{
				loader.loadBytes(file.data);
			}
			
			private function onComplete(e:Event):void{
				img.source = loader.content;
			}
		]]>
	</fx:Script>
	
	<fx:Declarations>
		<!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
	</fx:Declarations>
	<s:Button x="205" y="447" label="参照" click="reffer()"/>
	<s:Image id="img" x="86" y="122" width="310" height="263"/>
</s:Application>

・ファイルの読み書き

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
		xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView">
	
	<fx:Script>
		<![CDATA[
			protected function write(event:MouseEvent):void
			{
				var file:File = File.applicationStorageDirectory.resolvePath("myData.data");
				var stream:FileStream = new FileStream();
				stream.open(file, FileMode.WRITE);
				stream.writeUTF(tf.text);
				stream.close();
			}
			
			protected function read(event:MouseEvent):void
			{
				var file:File = File.applicationStorageDirectory.resolvePath("myData.data");
				var stream:FileStream = new FileStream();
				stream.open(file, FileMode.READ);
				tf.text = stream.readUTF();
				stream.close();
			}
			
		]]>
	</fx:Script>
	
	<fx:Declarations>
		<!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
	</fx:Declarations>
	<s:Button x="277" y="496" label="Write" click="write(event)"/>
	<s:Button x="109" y="496" label="Read" click="read(event)"/>
	<s:TextArea id="tf" x="10" y="10" width="460" height="415"/>
</s:View>

・ファイルの読み書き(AMF形式)
AMF形式はActionScript上で使う変数をそのまま保存できる。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark">
	
	<fx:Script>
		<![CDATA[
			protected function write(event:MouseEvent):void
			{
				var file:File = File.applicationStorageDirectory.resolvePath("myData.data");
				var stream:FileStream = new FileStream();
				stream.open(file, FileMode.WRITE);
				var obj:Object = {a:a_txt.text, b:b_txt.text, c:c_txt.text};
				stream.writeObject(obj);
				stream.close();
			}
			
			protected function read(event:MouseEvent):void
			{
				var file:File = File.applicationStorageDirectory.resolvePath("myData.data");
				var stream:FileStream = new FileStream();
				stream.open(file, FileMode.READ);
				var obj:Object = stream.readObject();
				a_txt.text = obj.a;
				b_txt.text = obj.b;
				c_txt.text = obj.c;
				stream.close();
			}
		]]>
	</fx:Script>
	
	<fx:Declarations>
		<!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
	</fx:Declarations>
	<s:Button x="123" y="534" label="Read" click="read(event)"/>
	<s:Button x="276" y="534" label="Write" click="write(event)"/>
	<s:TextArea id="a_txt" x="142" y="114" width="328"/>
	<s:TextArea id="b_txt" x="142" y="232" width="328"/>
	<s:TextArea id="c_txt" x="142" y="353" width="328"/>
	<s:Label x="39" y="134" text="A:"/>
	<s:Label x="38" y="258" text="B:"/>
	<s:Label x="38" y="377" text="C:"/>
</s:Application>

参考書

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次の HTMLタグおよび属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>