我有一个.swf文件,其中一个框架有一个整数值,我想在另一个.swf文件中打印。我通过使用保存了该特定帧中的值 " shareObject&#34 ;.问题是当我在另一个.swf文件中调用它时,我的.as文件只会读取.swf的第一帧,这就是为什么它会返回0,我很确定它是保存在我的硬盘中。它仅在我在第一帧中保存值时才有效,但我不想这样做。有没有办法获取特定帧或.swf文件的任何帧中的值?我真的需要帮助。任何建议都非常感谢。我顺便使用了动作脚本3.0。
这是我保存值的第一个.swf文件:(它是其中一个框架中的代码)
var saveRewardData:SharedObject;
var SaveReward1:int = 0;
SaveReward1 = 1;
saveData(); //<---Save reward data
init(); // this line goes directly beneath the variables
function init():void{ // call once to set everything up
saveRewardData = SharedObject.getLocal("RewardInitializer"); // give the save data a location
if(saveRewardData.data.savedScore == null){ // checks if there is save data
trace("No saved data yet."); // if there isn't any data on the computer...
saveRewardData.data.savedScore = SaveReward1; // ...set the savedScore to 0
} else {
trace("Save data found."); // if we did find data...
loadData(); // ...load the data
}
}
function saveData():void{
saveRewardData.data.savedScore = SaveReward1; // set the saved score to the current score
trace("Data Saved!");
saveRewardData.flush(); // immediately save to the local drive
trace(saveRewardData.size); // this will show the size of the save file, in bytes
}
function loadData():void{
SaveReward1 = saveRewardData.data.savedScore; // set the current score to the saved score
trace("Data Loaded!");
trace(SaveReward1);
}
这是我的.as文件,其中调用了第一个.swf文件的值:
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
public class Reward1 extends Sprite
{
public var loader:Loader;
public function Reward1()
{
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
loader.load(new URLRequest("Level1.swf"));
}
public function onLoaded(e:Event):void
{
trace("Child Loaded");
trace(loader.content['SaveReward1']);
}
public function go0():int{
return loader.content['SaveReward1'];
}
}
}
这是我的第二个.swf文件,其中我打印了&#39; SaveReward1&#39;但它返回0,因为它保存在中间框架中,而不是在第一帧中:
var got1:Reward1 = new Reward1();
got1.loader.contentLoaderInfo.addEventListener(Event.COMPLETE, reward1);
function reward1(e:Event):void {
trace(got1.go0());
}