A. 請問在js中可以用什麼代碼代替AS3中的writeUTFBytes、writeInt與position命令
//js代碼
functionstring2ByteArray(str){
letbytes=[]
for(leti=0;i<str.length;i++){
constcode=str.charCodeAt(i)
bytes=bytes.concat([code])
}
returnbytes
}
//as代碼
(str:String):ByteArray{
varbytes:ByteArray;
if(str){
bytes=newByteArray();
bytes.writeUTFBytes(str);
}
returnbytes;
}
上面倆代碼返回結果相同。
B. JS與AS如何通信
'JS給AS設置變數
function setflash(varn, value){
var flash = document.getElementById("index");
flash.SetVariable(varn,value);
}
'JS獲取AS變數
function getVar(varn){
var v = GetVariable(varn)
}
'JS控制AS跳轉
function goto() {
n++;
document.myFlash.GotoFrame(n);
}
'AS調用JS函數
on (release) {
getURL(\"JavaScript:alert('hello,world')\");
}
'JS間接調用AS函數
原理:JS改變AS的值,AS跟據值版的變化權調用其函數
var stat=0;
setInterval(test,300){
if (stat==1) doFlash();
}
function doFlash(){
}
JS
flash.SetVariable(star,1);
C. js與as怎麼相互調用,as裡面可以直接彈出一個對話框或者跳轉到一個新的頁面嗎
AS調用JS函數:
ExternalInterface.call(JS中的函數名,參數一,參數二);//調用JS中的一個函數
以下AS代碼回:
import flash.external.ExternalInterface;
例子:ExternalInterface.call('alert',『hello world!』答);//會彈出JS的提示框
JS調用AS函數:
ExternalInterface.addCallback(提供給JS調用的名稱,調用的函數); //提供一個函數給JS調用
以下AS代碼:
import flash.external.ExternalInterface;
import mx.controls.Alert;
public function asFunc(a:int,b:int):int
{
Alert.show(a+b);
}
ExternalInterface.addCallback("add",asFunc);
以下JS代碼:
add(1,2);//調用的其實是AS中的asFunc方法 ,會在Flash中彈出提示框
D. Animate軟體基礎:AS與JS區別
自從Flash軟體進化為Animate後,它具備了兼容AS腳本文檔和HTML5文檔的能力。其中,HTML5文檔的製作需要依賴JavaScript(JS)。
盡管兩者在外觀上相似,AS和JS在內在結構和功能上卻有顯著差異。在文檔生成的內容上,它們的應用場景也各不相同。在進行Animate作業時,務必明確是選擇使用AS腳本還是JS腳本,因為這將決定最終作業的形式。若目標是swf文件,務必採用AS3腳本;如果是為了網頁格式,可能需要JS。
重要的是要明確,AS腳本與JS腳本是不可互換的。盡管可以通過技術手段將swf文件轉換為HTML5頁面內容,但原始的腳本文件轉換是不支持的。
因此,在使用Animate創作時,選擇正確的文檔類型至關重要,這將直接影響到最終作品的呈現形式。