通过类将.swf文件中特定帧的数据显示到另一个.swf文件中

时间:2014-12-15 11:41:14

标签: actionscript-3 flash actionscript

我有一个.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());

}

0 个答案:

没有答案