actionscript-3 - Adobe AIR Android FileStream 问题

标签 actionscript-3 flash flash-builder animate-cc

我尝试在 上测试打击代码安卓设备,但我在文本字段中看不到任何数据。此代码在 上运行良好AIR桌面但在 安卓不。 AIR 之间有区别吗?文件流 上的功能桌面 安卓 ?什么是最好的 跨平台保存文件和读写的代码?

此代码适用于 Adob​​e 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();

最佳答案

这是正确的方法,我们将它用于 AIR 应用程序(桌面、Android、iOS)在设备/PC 上存储用户数据,File.applicationStorageDirectory也是。所以你的代码是跨平台的,如果它不能在 Android 上运行,你可能还有其他问题,但你的代码看起来不错。

读/写数据到File.applicationStorageDirectory您也不需要应用 list 中的任何显式权限。

关于actionscript-3 - Adobe AIR Android FileStream 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41955862/

相关文章:

javascript - 分别使用 2 个不同的 YouTube 视频作为音频和视频的 YouTube 播放器

JavaScript/Flash : When exactly are flash external callback methods triggered?

mobile - Haxe、as3hx、NME、Apache FlexJS - 将 Flash Builder Flex 项目转换为 HTML5+J

actionscript-3 - 在 ActionScript (NaN==parseFloat(input.text)) 中警告它总是假的。为什么?

actionscript-3 - 缩放和裁剪具有固定尺寸的图像

android - 在(Air for android)发布者处调用可能未定义的方法 loadmovie

actionscript-3 - 在 Flash 网站上添加元数据

actionscript-3 - AS3 AIR/FlashBuilder 如何在退出时释放套接字?

actionscript-3 - photoshop 事件文档

flash - 在 IE9 Beta 中可以使用 Flash ExternalInterface 吗?