0

我正在尝试使用共享对象来保存进度,我已经弄清楚了它们是如何工作的,但是现在我应该尝试弄清楚如何使我的“保存进度”按钮不仅记住“this.currentFrame”,而且还如果这是在主时间轴上,或者不是,那么这是在哪个影片剪辑中,以便当我上传共享对象时,它会转到正确的位置,在主时间轴或影片剪辑中。

谢谢!

4

1 回答 1

1

我有一种感觉 SharedObjects 可能无法保存实际的影片剪辑引用并能够可靠地恢复它们(如果我错了,请纠正我),但是您可以只将具有键数据对的对象存储在 SharedObject 中,而不仅仅是单独的帧号。或者,如果您要记住未知数量的帧号(和影片剪辑),请存储一组键数据对对象,并在加载时循环它们。

存储每个剪辑数据的方法示例:

var someClip:Object = new Object();

// some id that refers to the clip (maybe an array/dictionary index)
// (or try replacing with the actual reference to the movie clip to see if it works)
someClip.id ="clipName";
someClip.frameNumber = 1; // the frame number of the clip to remember

然后只需将“someClip”对象存储到 SharedObject 数据中的数组中。

也许更“紧凑的方式”是取消临时对象并将键数据对存储为带有分隔符的字符串。例如,您可以只存储字符串“clipName,1”,然后在需要加载时,沿逗号拆分以获取剪辑 id 并将帧号解析回一个 int。

或者我猜你也可以将帧号存储在剪辑 id 索引的字典中,并将其存储在 SharedObject 数据中(因为它可以节省加载时的 int 解析步骤)。

于 2012-11-18T23:45:55.933 回答