有什么方法可以保存Flash中当前舞台上的对象吗?将动画片段和按钮的状态保存到文件。
例如,如果用户拖动从面板是所述接口的一部分,并且某处其放置在台上,然后通过点击Button
添加TextField
特定MovieClip
。
有没有办法将位置,属性和其他各种东西保存到外部文件?因此,如果用户点击一个'加载'按钮,当程序下次运行时它会将MovieClip
和文本加载到空白阶段,并且它们会处于完全相同的位置?
有什么方法可以保存Flash中当前舞台上的对象吗?将动画片段和按钮的状态保存到文件。
例如,如果用户拖动从面板是所述接口的一部分,并且某处其放置在台上,然后通过点击Button
添加TextField
特定MovieClip
。
有没有办法将位置,属性和其他各种东西保存到外部文件?因此,如果用户点击一个'加载'按钮,当程序下次运行时它会将MovieClip
和文本加载到空白阶段,并且它们会处于完全相同的位置?
是的,您可以将这些信息保存在XML文件中。
示例XML的可能是像这样,
WorkSpace.xml
<stageObjects>
<object libName="myTextField" type="TextField" xPos="20" yPos"10" txt="SomeText" />
<object libName="myMovieClip" type="MovieClip" xPos="20" yPos"10" />
</stageObjects>
在您的应用程序负载,读取这个XML文件,并采取必要的行动。
如果我有任何类型的本地客户端级别的游戏,并且我使用Flash来保存本地值以达到相同的目的,我会利用SharedObject Class。它不是传统的MIME类型,它也有.sfo扩展名,通常存储在随机目录中。所以只有在用户刷新其“常规”浏览数据时才能清除它们。不要太复杂,这个演示将允许你保存数据,关闭SWF文件,重新打开它并找到最后的设置。
package {
import flash.display...
import flash.events...
import flash.events.NetStatusEvent;
import flash.net.SharedObject;
import flash.net.SharedObjectFlushStatus;
import flash.text.TextField;
import flash.text...
public class SharedObjectClass {
private var _so:SharedObject;
private var _in:TextField = new TextField();
public function SharedObjectClass() {
_so = SharedObject.getLocal("application-name");
addChild(_in.text = String(_so.data.savedValue));
}
private function saveValue(event:*=null):void {
_so.data.savedValue = _in.text;
var flushStatus:String = null;
try {
flushStatus = _so.flush(10000);
} catch (error:Error)
//..nothing?
}
if(flushStatus != null) {
if(flushStatus == SharedObjectFlushStatus.PENDING) {
_so.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
}
}
}
private function clearValue(event:*=null):void {
delete _so.data.savedValue;
}
private function onFlushStatus(event:NetStatusEvent):void {
switch (event.info.code) {
case "SharedObject.Flush.Success":
break;
case "SharedObject.Flush.Failed":
break;
}
_so.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
}
}
}
价值_co
永远是你参考这个对象,重命名它会创建一个新的实例。我已将这些文件分开,并且它们都是写入良好的XML文件,适用于AMF For Servers。在这个例子中,简单描述了“保存”,“清除”和“冲洗方法”。
对,我明白了。我的应用程序基本上由'Buttons'组成,它们在点击时将'Movieclips'添加到舞台上。我也有一个创建“TextField”和“ColorPicker”来改变文本颜色的按钮。我可以将'xPos'和'yPos'设置为从舞台获取对象的x和y值吗? – user3306038
将每个操作都记录在XML文件中。在此之前,您首先剪切了您的XML结构,以便您可以在应用中执行各种操作和操作。 –
你是否知道在实践中是否有任何有用的文件或例子可以帮助我? – user3306038