1

我使用外部 AS3 类文件创建了一个应用程序,它可以在 PC 桌面上完美运行(导出为演示文件)。

但是,我现在需要移动同一个应用程序才能在移动平板电脑(Android 设备)上工作。

由于我需要存储信息(用户选择的视频播放列表),我需要能够保存播放列表(因为此播放列表必须在用户下次在移动设备上输入应用程序时播放。)我一直在使用该文件。参考到一个 txt 文档来保存播放列表,但我认为这将不再起作用:-(。

我对此进行了大量研究,但最终找不到这两个问题的答案

Will shard objects keep saved on Android Tablet device even if the app is closed 
and then restarted ?

 

If so , how to I create shared Objects specifically for Android tablet ?

我查看了http://www.adobe.com/devnet/flash/articles/saving_state_air_apps.html 但它适用于 iPhone,并不具体。

我也看过这个:SharedObject not working on AIR mobile,但同样没有大量帮助,并且仍然没有回答我关于在重新打开应用程序时存储共享对象的问题。

我不能真正使用 SQL 数据库,因为我必须在 Flex 中重新编码与我已经完成的 AS3 代码不同的所有内容。

我已经针对 Android 设备中的共享对象进行了大量研究和搜索,但没有明确的教程等。也许人们还没有完全了解它这样一个新事物

非常感谢所有的帮助。

4

2 回答 2

3

您可以毫无问题地使用 SharedObject。

从这里您可以看到空中手机不支持的内容:链接

于 2013-03-05T09:45:55.033 回答
2

查看 Adob​​e 帮助页面 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html

这里有一些样本

private var mySo:SharedObject;

function test():void
{
     mySo = SharedObject.getLocal("application-name");
     mySo.data.savedValue = input.text;

     var flushStatus:String = null;
     try {
        flushStatus = mySo.flush(10000);
     } catch (error:Error) {
        trace("Error...Could not write SharedObject to disk\n");
     }

     if (flushStatus != null) {
        switch (flushStatus) {
           case SharedObjectFlushStatus.PENDING:
                trace("Requesting permission to save object...\n");
                mySo.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
                break;
           case SharedObjectFlushStatus.FLUSHED:
                trace("Value flushed to disk.\n");
                break;
        }
    }
}

private function onFlushStatus(event:NetStatusEvent):void {
        trace("User closed permission dialog...\n");
        switch (event.info.code) {
            case "SharedObject.Flush.Success":
                trace("User granted permission -- value saved.\n");
                break;
            case "SharedObject.Flush.Failed":
                trace("User denied permission -- value not saved.\n");
                break;
        }

        mySo.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
    }
于 2013-03-05T10:02:06.753 回答