Androidデバイスでブローコードをテストしようとしましたが、テキストフィールドにデータが表示されませんでした。このコードはAIR Desktopでは有効ですが、のAndroidではうまくいきます。 AIR FileStream機能on デスクトップおよびAndroid? Whats best クロスプラットフォームファイルを保存して読み書きするコードですか?Adobe AIR Android FileStreamの問題
このコードはAdobe Animate CC Android エミュレータで動作します。正しい方法だ
import flash.filesystem.*;
var prefsFile:File;
[Bindable] var prefsXML:XML;
var stream:FileStream;
function appStart():void
{
prefsFile = File.applicationStorageDirectory;
prefsFile = prefsFile.resolvePath("preferences.xml");
readXML();
}
function readXML():void
{
stream = new FileStream();
if (prefsFile.exists) {
stream.open(prefsFile, FileMode.READ);
processXMLData();
}
else
{
saveData();
}
}
function processXMLData():void
{
prefsXML = XML(stream.readUTFBytes(stream.bytesAvailable));
stream.close();
trace(prefsXML.Data1);
trace(prefsXML.Data2);
trace(prefsXML.Data3);
txt_D1.text = prefsXML.Data1;
txt_D2.text = prefsXML.Data2;
txt_D3.text = prefsXML.Data3;
}
function windowClosingHandler(event:Event):void
{
saveData();
}
function saveData():void
{
createXMLData();
writeXMLData();
}
function createXMLData():void
{
prefsXML = <preferences/>;
prefsXML.Data1 = 1;
prefsXML.Data2 = 2;
prefsXML.Data3 = 3;
}
function writeXMLData():void
{
var outputString:String = '<?xml version="1.0" encoding="utf-8"?>\n';
outputString += prefsXML.toXMLString();
outputString = outputString.replace(/\n/g, File.lineEnding);
stream = new FileStream();
stream.open(prefsFile, FileMode.WRITE);
stream.writeUTFBytes(outputString);
stream.close();
}
appStart();
設定ですべての権限を選択してもう一度コンパイルしました。今それは動作します。 –
@MohammadSamirあなたはすべてのアクセス権**を必要としません。あなたのファイルがそうでない場合には、(SDカード、電話の連絡先、GPSなど...)なぜならすべてのものにアクセスする必要があるアプリによって、一部の人はオフになります。 'File.applicationStorageDirectory'内に保存/ロードされました... –