PS:今天上午,非常郁闷,有很多简略基本的问题搞得我有些迷茫,哎,代码几天不写就忘。前目又不当COO,还是得用心记代码哦!
ActionScript
是 Macromedia(现已被Adobe购收)为其Flash品产开辟的 ,最初是一种简略的脚本言语,当初最新版本3.0,是一种全完的面向对象的程编言语,能功强大,类库富丰,语法似类JavaScript,多于用Flash互动性、娱乐性、实用性开辟,网页制作和RIA应用程序开辟。
ActionScript 是一种基于ECMAScript的脚本言语,可于用编写Adobe Flash动画和应用程序。 由于ActionScript和JavaScript都是基于ECMAScript语法的,理论上它们互相可以很流畅地从一种言语翻译到另一种。不过JavaScript的文档对象模型(DOM)是以浏览器口窗,文档和表单为主的,ActionScript的文档对象模型(DOM)则以SWF格式动画为主,可包含动画,音频,文字和事件处置。
ActionScript第一次以它前目的语法出现是Flash 5版本,这也是第一个全完可对Flash程编的版本。这个版本被命名为ActionScript1.0。Flash 6通过加增大批的内置数函和对动画素元更好的程编制控更进一步增强了程编环境的能功。Flash 7(MX 2004)引进了ActionScript2.0,它加增了强类型(strong typing)和面向对象征特,如式显类声明, 继承,接口和格严据数类型。ActionScript1.0和2.0用使雷同的编译情势编译成Flash SWF件文(即Shockwave Flash files,或 'Small Web Format').
时间表
Flash Player 2:第一个支撑脚本的版本,包含制控时间轴的gotoAndPlay, gotoAndStop, nextFrame和nextScene等作动。
Flash Player 3:增强了载入外部SWF件文的基本脚本支撑(loadMovie)。
Flash Player 4:第一个全完实现脚本能功(称为作动)的播放器。这些脚本具有简洁的语法和对环循,条件,变量和其它基本言语结构的支撑。
Flash Player 5:第一个具有真正意义上的ActionScript的版本。根据ECMAScript并用采基于原型程编,并许允全完的 过程式程编和面向对象程编。
Flash Player 6:加增了事件处置模型,并且支撑switch。
Flash Player 7: Flash Player 7 供给一些新特性如支撑CSS示显文本和增强示显效果。 Macromedia Flash编译器和Flash Player 7同时支撑基于ECMAScript 4 Netscape Proposal的类程编言语ActionScript 2.0。不过ActionScript 2.0能交叉编译成ActionScript 1.0的字节码,因此它能行运于Flash Player 6。
Flash Player 8:加增于用行运时图象据数制控和件文上传的新类库及APIs,ActionScript 2.0能功更为完善。
Flash Player 8.5(划计于2006春布发release版本,currently in public beta):加增ActionScript 3.0和一个称为AVM2(ActionScript Virtual Machine 2)新的虚拟机,它可以与前版本AVM1共存以便支撑旧容内。增强能性是该版本的要主目标。
Flash Player 9 2007宣布,这是adobe购收Macromedia后的第一个版本,并且也是Mac OS X上第一个Universal版本的Flash Player。
Flash Player 10
语法
在ActionScript 2.0 类、与函式馆物件(如影片片段)可与类系联在一同。类总写在外在件文档案内,并且这些件文必须有.as后缀。类是增设部份──对ActionScrip言语来讲,可以让程式员自行开辟,虽然有很多建内类譬如MovieClip类──可被用来动态地在屏幕上画出量向──经已足满需求了。类档案可用来使您程编更加易容,并且类档案如果需要的话可在很多专案间转移。
Flash ActionScript实现的特色如下,JavaScript程式员许也感兴趣:
一切计设是步异的;callback是普遍存在的,但事件对象不存在。
XML的实现从Flash 5便存在了。Flash可送和收XML,该项能功可用来透过网络服务器发明网上多玩者游戏。
ActionScript 代码常常直接写在Flash开辟环境。该环境供给考参、代码提示和句法夸大。原代码常常与影电一同存在.fla档案里。自外部件文档透过#include语法导入ActionScript代码也相称见常。在这类情况下,外部档案许也被Flash集成开辟环境建内编译器,或Motion Twin ActionScript2编译器(MTASC)编译。见参外部链接。
评论
程编员人们说Macromedia ActionScript 2.0编译器有点慢,常常花好几分钟才编译100个类别,然而开放源码编译器MTASC可以利用;它快多了。
ActionScript非常广大的语法常常让程编员人们皱眉,因为它常常让不净干代码难以读阅。
在Flash里用使很多量向图形可能拖慢执行很多应用程序的器机的效力,因为Flash每帧每帧重画每一个量向图。Flash 8引进了cacheAsBitmap 变量,它临时把量向图换转到位图,这类做法帮助降低了延滞。
Flash的ActionScript VM向倾在触发部内的停暂处置前就非常快到达它的运算极限,特别在麦金塔版的Flash播放器上更严峻。例如,简略从1算到5000会胁威某些用户Flash播放器的力能。
在Flash 8里很多人不喜欢引入(import)某些类直到要用到那些类别前最后一刻。可怜的是,ActionScript 3.0相称倚赖引入类别,没有导入撰写脚本(scripting)实际上不太可能。
.swf档案格式挺易容反编译,使它非常难以坚持源代码密机。
ActionScript 2.0 样本
面下打印Hello World。值得注意的是这只能在整合环境下执行,因为trace函式只有增援整合环境。
trace("Hello world!");
面下代码利用onMouseMove事件当标鼠挪动时输出现行标鼠位置。一样的这只有在整合环境下执行。
onMouseMove = function () {
trace("X: "+_root._xmouse);
trace("Y: "+_root._ymouse);
};
这个较先进的范例发明一个包含数字与字串的列阵,并利用形原函式(prototype function)与函式递归给变量名num指定一个数,给变量str指定一个字串。然后,利用MovieClip应用程序接口,文字区域被示显在屏幕上,文字区域头里写入了变量值。
var my_Array:Array = new Array("Hello", "ActionScript", 3, 7, 11, "Flash");
Array.prototype.pickNumber = function():Number {
var rand:Number = random(this.length);
return (typeof (this[rand]) == "number") ? this[rand] : this.pickNumber();
};
Array.prototype.pickString = function():String {
var rand:Number = random(this.length);
return (typeof (this[rand]) == "string") ? this[rand] : this.pickString();
};
var num:Number = my_Array.pickNumber();
var str:String = my_Array.pickString();
_root.createTextField("txt", 1, 10, 10, 530, 390);
txt.text = "Array = "+my_Array+"\nRandom Number = "+num+"\nRandom String = "+str;
ActionScript 3.0 样本
面下先进的Hello World程序前目需要在Flex 2.0公然Alpha测试版整合环境中编译。
package {
import flash.text.TextField;
import flash.display.MovieClip;
import flash.filters.DropShadowFilter;
public class HelloWorld extends MovieClip {
public function HelloWorld() {
var shad:DropShadowFilter = new DropShadowFilter(2, 45, 0x000000, 25, 3, 3, 2, 2);
var txt:TextField = new TextField();
txt.textColor = 0xFFFFFF;
txt.filters = [shad];
txt.width = 120;
txt.x = Math.random()*300;
txt.y = Math.random()*300;
txt.selectable = false;
txt.text = "Hello World! ["+Math.round(txt.x)+","+Math.round(txt.y)+"]";
addChild(txt);
}
}
}
//-----ActionScript3.0----------------- //as3.0最要主的念概就是在效力方面的进增,时平所入加的任何事件都可以被监听或从内存中移除 //以下例子就是监听与移除内存占用,这是as3.0最要主的基本念概
bt1.addEventListener(MouseEvent.CLICK,bt1_click);
function bt1_click(e:MouseEvent):void{ //触发的事件容内; }
//该按纽监听不需要时则remove掉,加增效力 bt1.removeEventListener(MouseEvent.CLICK,bt1_click);
文章结束给大家分享下程序员的一些笑话语录: IBM和波音777
波音777是有史以来第一架完全在电脑虚拟现实中设计制造的飞机,所用的设备完全由IBM公司所提供。试飞前,波音公司的总裁非常热情的邀请IBM的技术主管去参加试飞,可那位主管却说道:“啊,非常荣幸,可惜那天是我妻子的生日,So..”..
波音公司的总载一听就生气了:“胆小鬼,我还没告诉你试飞的日期呢!”