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创作时,选择正确的文档类型至关重要,这将直接影响到最终作品的呈现形式。