我有一个拖放项目,用户可以在其中拖动MovieClip的副本, 我想知道如何保存和加载可拖动副本的位置 使用SharedObject类。我目前使用SharedObject进行保存和加载 按钮。但它只保存最后拖动的MovieClip副本的位置。
如何在舞台上保存MovieClip副本的位置,以便何时保存 我点击加载按钮,它会加载所有副本的位置 我点击了保存按钮?
代码:
latestClone.addEventListener(MouseEvent.MOUSE_DOWN, onCloneClick);
function onCloneClick(e:MouseEvent):void
{
var target:MovieClip = e.currentTarget as MovieClip;
latestClone = target;
}
}
save.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
var mySo:SharedObject = SharedObject.getLocal("SaveData");
mySo.data.my_x = latestClone.x;
mySo.data.my_y = latestClone.y;
mySo.flush();
}
loader.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_2);
function fl_MouseClickHandler_2(event:MouseEvent):void
{
var mySo:SharedObject = SharedObject.getLocal("SaveData");
latestClone.x = mySo.data.my_x;
latestClone.y = mySo.data.my_y;
}
答案 0 :(得分:0)
使用SharedObject意味着您的应用程序不负责数据持久性,操作系统或用户可以随时删除该数据,甚至根本不允许该数据。
首先问题是,您的代码正在使用该数据,因为它始终存在。错误的方法,首先要做的是检查数据是否可用,例如:
function BaseController($scope, $http) {
$scope.fnamequery = '';
$scope.fnames = ["Aida", "Aidan", "Alla", "Allen", "Beverly", "Bea", "Caleb","Catherine"];
}
接下来保留一个全局对象并将值放入其中:
var globaldata:Object;
var data:Object = SharedObject.getLocal("SaveData").data;
if(data["mydata"] != undefined)
{
//there's some data here
globaldata = data["mydata"];
}
else
{
//there's no data
globaldata = {};
}
现在您已准备好使用该数据,如果它仍然存在:
globaldata["mc1"] = {x:mc1.x, y:mc1.y};
globaldata["mc2"] = {x:mc2.x, y:mc2.y};
//etc .....
data["mydata"] = globaldata;
//no need to call flush