【问题标题】:What is the proper way to add a SharedObject to a .AS file?将 SharedObject 添加到 .AS 文件的正确方法是什么?
【发布时间】:2013-06-26 22:35:23
【问题描述】:

在将 SharedObject 添加到 .AS 文件时遇到问题,我正在尝试将用户名添加到红色 5 中的 .flv 文件中,例如“username_myfile”我不确定我是否添加了将名称保存在正确位置的代码类的一部分。有没有一种将 SharedObject 添加到 .AS 文件的正确方法?

-- 补充:

import flash.net.SharedObject;

package app
{
    import flash.display.BitmapData;
    import flash.display.Stage;
    import flash.external.ExternalInterface;
    **import flash.net.SharedObject;**

    public class DataHolder
    {
        private static var dataHolder:DataHolder;


        public var savedstuff:SharedObject = SharedObject.getLocal("myStuff2","/");

        if (savedstuff.size > 0)
        {
            public var username = savedstuff.data.username;

        }

             public var filename:String = (String(username) + "_myfile");

        public var rtmpPath:String = "rtmp://numbershere.compute-1.amazonaws.com/oflaDemo/";



        public var recorder:Recorder;
        public var navigation:Navigation;

        public var cameraFPS:Number = 30;
        public var cameraWidth:Number = 640;
        public var cameraHeight:Number = 480;
        public var cameraQuality:Number = 88;// camera quality

        public var timelimit:Number = 25;// limit count of seconds

        public var stage:Stage;

        public function DataHolder()
        {
            if (dataHolder)
            {
                throw new Error("Only one DataHolder instance should be instantiated");
            }
        }

        public static function getInstance():DataHolder
        {
            if (dataHolder == null)
            {
                dataHolder = new DataHolder();
            }
            return dataHolder;
        }
    }
}

【问题讨论】:

  • @RobertHarvey 谢谢!
  • 你的代码看起来很奇怪。 if 语句直接在类定义中?甚至是什么问题?它编译了吗?
  • 我添加了这个,现在得到的错误更少import flash.net.SharedObject;
  • DataHolder.as,第 14 行 1120:访问未定义的属性 savedstuff

标签: actionscript-3 local-shared-object


【解决方案1】:

去掉你共享对象的条件声明,照常声明,即:

private var savedStuff:SharedObject;

然后,在你的构造函数中:

try {
    savedStuff = SharedObject.getLocal("savedData");
} catch (error) {
    cookiesActive = false;
};

然后勾选cookiesActive==true,将数据保存到SharedObject,例如:

if (cookiesActive) {
    savedStuff.data.levelsFinished = 1;
}

【讨论】:

  • 您是否尝试过删除 SharedObject 导入周围的“**”星?它应该正常导入(就像任何其他必需的类一样)。我还应该指出,您需要声明布尔变量“cookiesActive”,即; '私有 var cookiesActive: 布尔值'。你得到什么错误?代码不起作用怎么办?
猜你喜欢
  • 2018-09-15
  • 1970-01-01
  • 2010-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 2023-04-09
  • 1970-01-01
相关资源
最近更新 更多