在ActionScript中更新SharedObject数据值

时间:2014-07-12 22:02:04

标签: actionscript-3 flash flex actionscript

我想在此代码中更新_third.data [“#ID”]的值。在将此文件存储在this.ID中时,我想用_third.data [“#ID”]添加内容

我想做的是:

            this.ID = "myvalue" + _third.data["#ID"];

但在输出中我得到myvalueundefined但是如果我从代码中删除“myvalue”它工作正常并给我正确的值请帮助我,我对actionscript的了解并不是那么多我刚刚从互联网上学到了一些。 / p>

以下是编码:

    public function main(_first:String, _second:Array, _third:SharedObject):Object{
            this.ID = _third.data["#ID"];
        };

我想做的是:

    public function main(_first:String, _second:Array, _third:SharedObject):Object{
            this.ID = "myvalue" + _third.data["#ID"];
        };

1 个答案:

答案 0 :(得分:1)

使用您的代码,我创建了以下测试用例。它与您的代码执行相同操作,并输出预期值。

package kazo 
{
    import flash.net.SharedObject;
    /**
     * ...
     * @author KM
     */
    public class TestCases 
    {

        private var ID      :String = null;

        public function TestCases() { }

        /**
         * Start the test case
         */
        public function start():void {
            trace('Starting test case');

            var SO:SharedObject = SharedObject.getLocal('TestCases');

            if (!SO.data["#ID"]) {
                trace('SO data not found, creating');
                SO.data["#ID"] = '123';
                SO.flush();
            }

            getID(SO);

        }

        /**
         * 
         * @param   _SO
         */
        public function getID(_SO:SharedObject):void {
            this.ID = "myvalue" + _SO.data["#ID"];
            // trace = myvalue123
            trace(this.ID);
        }

    }

}

迹:

(fcsh)Build succeeded
Done(0)
[Starting debug session with FDB]
Starting test case
myvalue123

如果您仍然遇到问题,我建议您尝试调用toString()上的值,以便:

this.ID = "myvalue" + _SO.data["#ID"].toString();

如果仍然不起作用,请将其存储在两个单独的String变量中,然后将它们组合起来。