Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3 sharedObject-如何在btnCLICK上加载我的上一个sharedObject_Actionscript 3_Flash_Mouseevent_Shared Objects_Local Shared Object - Fatal编程技术网

Actionscript 3 AS3 sharedObject-如何在btnCLICK上加载我的上一个sharedObject

Actionscript 3 AS3 sharedObject-如何在btnCLICK上加载我的上一个sharedObject,actionscript-3,flash,mouseevent,shared-objects,local-shared-object,Actionscript 3,Flash,Mouseevent,Shared Objects,Local Shared Object,我在AS3中蹒跚而行,我又回到了希望能够从sharedObject加载我最后一次保存的想法。任何帮助都将不胜感激,因为我还是AS3的新手。 我还想把它连接到一个负载btn // SAVE FUNCTIONS --------------------------------------- //--------------------------------------------------- //--------------------------------------------------

我在AS3中蹒跚而行,我又回到了希望能够从sharedObject加载我最后一次保存的想法。任何帮助都将不胜感激,因为我还是AS3的新手。 我还想把它连接到一个负载btn

// SAVE FUNCTIONS ---------------------------------------
//---------------------------------------------------
//---------------------------------------------------

var mySO:SharedObject = SharedObject.getLocal("iDesign");

bones_mc.x = mySO.data.my_x;
bones_mc.y = mySO.data.my_y;

if (!mySO.data.my_y) {
bones_mc.x = 424;
bones_mc.y = 119;
}

//---- THIS IS THE SAVER BTN
save_btn.addEventListener (MouseEvent.CLICK, clickersave);

function clickersave (e:MouseEvent):void {
mySO.data.my_x = bones_mc.x;
mySO.data.my_y = bones_mc.y;
mySO.data.mybut_x = btrfly_mc.x;
mySO.data.mybut_y = btrfly_mc.y;
mySO.data.mytig_x = tiger_mc.x;
mySO.data.mytig_y = tiger_mc.y; 
mySO.data.mybow_x = pink_bow_mc.x;
mySO.data.mybow_y = pink_bow_mc.y;      
mySO.flush ();
}
//----
bones_mc.buttonMode=true;

btrfly_mc.x = mySO.data.mybut_x;
btrfly_mc.y = mySO.data.mybut_y;

if (!mySO.data.mybut_y) {
btrfly_mc.x = 112;
btrfly_mc.y = 295;
}

btrfly_mc.buttonMode=true;

tiger_mc.x = mySO.data.mytig_x;
tiger_mc.y = mySO.data.mytig_y;

if (!mySO.data.mytig_y) {
tiger_mc.x = 804;
tiger_mc.y = 411;
}

tiger_mc.buttonMode=true;

pink_bow_mc.x = mySO.data.mybow_x;
pink_bow_mc.y = mySO.data.mybow_y;

if (!mySO.data.mybow_y) {
pink_bow_mc.x = 923;
pink_bow_mc.y = 579;
}

load_btn.addEventListener (MouseEvent.CLICK, loadlast);

function loadlast (e:MouseEvent):void {
bones_mc.x = mySO.data.my_x; 
bones_mc.y = mySO.data.my_y
//mySO.data.mybut_x = btrfly_mc.x;
//mySO.data.mybut_y = btrfly_mc.y;
//mySO.data.mytig_x = tiger_mc.x;
//mySO.data.mytig_y = tiger_mc.y;   
//mySO.data.mybow_x = pink_bow_mc.x;
//mySO.data.mybow_y = pink_bow_mc.y;        
mySO.flush ();
}

当我想检查某人正在玩的游戏是否有Flash cookie时,我声明a_cookiesActive:Boolean并使用以下代码:

try {
    so = SharedObject.getLocal("savedData");
    _cookiesActive = true;
} catch (error) {
    _cookiesActive = false;
};
然后,如果_cookiesActive==true,则可以访问so.data和上次玩游戏时可能设置的任何变量,即:

bones_mc.x = so.data.my_x;
bones_mc.y = so.data.my_y;
…等等。
顺便说一下,上面示例中注释掉的代码将把变量保存到SharedObject,而不是加载它们。所以你已经有了保存它们的代码


正如您所建议的,在点击按钮时加载它们只是让代码将变量从SharedObject传递到点击处理函数中的游戏变量的问题。

嘿,谢谢您在这方面提供的额外帮助。当我有机会的时候,我将不得不尝试一下。嗯,我试图剪切并粘贴上面的代码片段,将“so”修改为mySO和“savedDate”,它抛出了一个未定义属性的错误。为了激活上面的代码(注释掉的代码),我如何让load_btn工作并调用sharedObject?请原谅我太慢了。也许我应该说——您需要导入flash.net.SharedObject;在我们的类开始时,在变量定义中,您需要将'so'声明为SharedObject,即private var so:SharedObject;注意,so=SharedObject.getLocal(“sharedData”)调用SharedObject类上的静态方法“getLocal”;返回一个SharedObject对象。因此,您不需要以正常方式实例化SharedObject(即so=new SharedObject())。此外,要在按钮上加载以前的保存,请按:load_btn.addEventListener(MouseEvent.CLICK,loadPrevious);然后,在loadPrevious处理程序中,检查_cookiesActive=true,如果是,则将游戏变量设置为“so”中相应的变量,即:bones_mc.x=so.data.my_x;(假设您已经使用代码的注释掉部分将变量保存到“so”)。我已经为您的脚本添加了工作加载代码ref.bones_mc.x=mySO.data.my_x;bones_mc.y=mySO.data.my_y;节省最后一个X和Y的骨骼\u mc谢谢