处理外部信息(xml,html,js,shareObject)
生活随笔
收集整理的這篇文章主要介紹了
处理外部信息(xml,html,js,shareObject)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Accessing External Data
有時候訪問游戲的外部信息是非常必要的, 你可以載入來自網頁或者文本域的外部參數,也可以保存或者下載本地信息,
External Variables
假設你有一個游戲是根據一些選項而變化的
你可以從flash影片所在的html頁面獲取一些參數, 有幾種不同的方法能實現這個,但是如果你使用通過publish setting設置而發布生成的html模版的話,你能通過設定AC_FL_RunContent 函數中的參數flashvars 開實現傳遞。
看這個比較短的函數, 這里包含我添加的參數flashvars
<script language=”javascript”>
AC_FL_RunContent(
‘codebase’,
‘http://download.macromedia.com/p ... flash.cab#version=9,0,0,0’,
‘width’, ‘550’,
‘height’, ‘400’,
‘src’, ‘ExternalVariables’,
‘quality’, ‘high’,
‘flashvars’, ‘puzzleFile=myfilename.jpg&difficultyLevel=7’
);
</script>
Flashvars是一對屬性名等于值的格式, 他們之間用&分開,上面的參數我們設置了puzzleFile等于myfilename.jpg, diffcultyLevel等于7
Flash播放的時候,flash能通過LoaderInfo對象獲取這些參數, 下面的這行代碼是獲得了參數并且把參數裝載到一個對象里面
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
如想訪問單個的參數值,你可以使用這樣的代碼實現
var diffLevel:String = paramObj[“difficultyLevel”];
你可以使用這個方法傳遞任何數字,例如圖片的名字,開始的關卡,速度,位置等等
Loading Data
調用外部文本文件是容易的,我們可以調用xml格式的文件,那將是非常方便的
例如我們的xml是這樣的
<LoadingData>
<question>
<text>This is a test</text>
<answers>
<answer type=”correct”>Correct answer</answer>
<answer type=”wrong”>Incorrect answer</answer>
</answers>
</question>
</LoadingData>
如果你想調用xml里面的數據,我們需要URLRequest 和 URLLoader 兩個對象的幫忙,然后你可以監聽載入xml文件是否完成,如果完成可以觸發一個函數的實現!
var xmlURL:URLRequest = new URLRequest(“LoadingData.xml”);
var xmlLoader:URLLoader = new URLLoader(xmlURL);
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
我們可以寫這個函數去讀取xml里面的信息并trace出來
function xmlLoaded(event:Event) {
var dataXML = XML(event.target.data);
trace(dataXML.question.text);
trace(dataXML.question.answers.answer[0]);
trace(dataXML.question.answers.answer[0].@type);
}
我們需要把xml文件內容轉換成XML對象,然后便可以輕松訪問了
讀黑羽舵主的殿堂之路看到xml可以直接寫在flash里面,所以我們可以直接創建XML對象,只不過不是外部調用而已
Var dataXML: XML =
<LoadingData>
<question>
<text>This is a test</text>
<answers>
<answer type=”correct”>Correct answer</answer>
<answer type=”wrong”>Incorrect answer</answer>
</answers>
</question>
</LoadingData>
trace(dataXML.question.text);
trace(dataXML.question.answers.answer[0]);
trace(dataXML.question.answers.answer[0].@type);
Saving Local Data
游戲中我們通常要存儲數據到本地,例如你可以存儲游戲先前的分數,或者一些游戲選項,去存儲數據到本地,我們需要 SharedObject 對象。
看下面代碼, 訪問SharedObject對象同時會在本地相應的目錄生成 命名為 mygamedata的sol文件,這個文件就是用來存儲本地數據的,設定myLocalData.data為gameinfo,會在 mygamedata文件里面生成gameinfo = “Store this”, 當我們第一次運行下面的代碼的時候,是訪問不到本地數據的,因為第一次下面代碼完成了本地創建和存儲的工作,但第2次運行的時候就會讀出Store this了,也就是讀取的是先前的數據。
var myLocalData:SharedObject = SharedObject.getLocal(“mygamedata”);
trace(“Found Data: “+myLocalData.data.gameinfo);
myLocalData.data.gameinfo = “Store this.”;
有時候訪問游戲的外部信息是非常必要的, 你可以載入來自網頁或者文本域的外部參數,也可以保存或者下載本地信息,
External Variables
假設你有一個游戲是根據一些選項而變化的
你可以從flash影片所在的html頁面獲取一些參數, 有幾種不同的方法能實現這個,但是如果你使用通過publish setting設置而發布生成的html模版的話,你能通過設定AC_FL_RunContent 函數中的參數flashvars 開實現傳遞。
看這個比較短的函數, 這里包含我添加的參數flashvars
<script language=”javascript”>
AC_FL_RunContent(
‘codebase’,
‘http://download.macromedia.com/p ... flash.cab#version=9,0,0,0’,
‘width’, ‘550’,
‘height’, ‘400’,
‘src’, ‘ExternalVariables’,
‘quality’, ‘high’,
‘flashvars’, ‘puzzleFile=myfilename.jpg&difficultyLevel=7’
);
</script>
Flashvars是一對屬性名等于值的格式, 他們之間用&分開,上面的參數我們設置了puzzleFile等于myfilename.jpg, diffcultyLevel等于7
Flash播放的時候,flash能通過LoaderInfo對象獲取這些參數, 下面的這行代碼是獲得了參數并且把參數裝載到一個對象里面
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
如想訪問單個的參數值,你可以使用這樣的代碼實現
var diffLevel:String = paramObj[“difficultyLevel”];
你可以使用這個方法傳遞任何數字,例如圖片的名字,開始的關卡,速度,位置等等
Loading Data
調用外部文本文件是容易的,我們可以調用xml格式的文件,那將是非常方便的
例如我們的xml是這樣的
<LoadingData>
<question>
<text>This is a test</text>
<answers>
<answer type=”correct”>Correct answer</answer>
<answer type=”wrong”>Incorrect answer</answer>
</answers>
</question>
</LoadingData>
如果你想調用xml里面的數據,我們需要URLRequest 和 URLLoader 兩個對象的幫忙,然后你可以監聽載入xml文件是否完成,如果完成可以觸發一個函數的實現!
var xmlURL:URLRequest = new URLRequest(“LoadingData.xml”);
var xmlLoader:URLLoader = new URLLoader(xmlURL);
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
我們可以寫這個函數去讀取xml里面的信息并trace出來
function xmlLoaded(event:Event) {
var dataXML = XML(event.target.data);
trace(dataXML.question.text);
trace(dataXML.question.answers.answer[0]);
trace(dataXML.question.answers.answer[0].@type);
}
我們需要把xml文件內容轉換成XML對象,然后便可以輕松訪問了
讀黑羽舵主的殿堂之路看到xml可以直接寫在flash里面,所以我們可以直接創建XML對象,只不過不是外部調用而已
Var dataXML: XML =
<LoadingData>
<question>
<text>This is a test</text>
<answers>
<answer type=”correct”>Correct answer</answer>
<answer type=”wrong”>Incorrect answer</answer>
</answers>
</question>
</LoadingData>
trace(dataXML.question.text);
trace(dataXML.question.answers.answer[0]);
trace(dataXML.question.answers.answer[0].@type);
Saving Local Data
游戲中我們通常要存儲數據到本地,例如你可以存儲游戲先前的分數,或者一些游戲選項,去存儲數據到本地,我們需要 SharedObject 對象。
看下面代碼, 訪問SharedObject對象同時會在本地相應的目錄生成 命名為 mygamedata的sol文件,這個文件就是用來存儲本地數據的,設定myLocalData.data為gameinfo,會在 mygamedata文件里面生成gameinfo = “Store this”, 當我們第一次運行下面的代碼的時候,是訪問不到本地數據的,因為第一次下面代碼完成了本地創建和存儲的工作,但第2次運行的時候就會讀出Store this了,也就是讀取的是先前的數據。
var myLocalData:SharedObject = SharedObject.getLocal(“mygamedata”);
trace(“Found Data: “+myLocalData.data.gameinfo);
myLocalData.data.gameinfo = “Store this.”;
總結
以上是生活随笔為你收集整理的处理外部信息(xml,html,js,shareObject)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: *** 隧道和加密技术知识要点
- 下一篇: 分布学在flash当中的应用体现