那些年,我还在学习actionscript
说起那些年学习的时候,其实最开学的就是flash,当然不算课堂上学的哈,然后就慢慢的学AS3.0,也许是小时看到画片的原因,就开始了动画,一直到写代码,actionscript和javascript一样的不是那么好学,其自我感觉的原因是VS用多了,没有智能感应就觉得不爽,唉,想起还是用记事本容易记住API,下面就来看一下以前的学习笔记吧(本来是有一个游戏的,电脑上找不到了)!
一、 面象对象的AS3.0
1、 在flash中,新建一个元件,可以为其导出类,这样就得到了一个关于该对象的一个类,这个类可以是黙认的,也可以是自定义的一个类,既然是这样,那个就可以对这个类创建对象,这就象C++或是C#中的类一样的使用。
2、 在flash中,我们可以在帧中写AS代码,也可新建一个类来关联其场景中的动画,更准确的说就是场景中的对象;以达到控制其操作的作用。
二、flash中的文本
1、 flash中有三种文本,分别是:静态文本、动态文本以及输入文本。
2、 静态文本的text属性是只读的,而动态文本的属性可以在代码中到其进行改变,而输入文本可以让用户在flash中输入文本,同样可以在代码中对其进行控制。
三、flash中的文本的使用
1、 用户登录
在舞台中,添加四个文本框,二个静态和二个输入文本,用来作为输入文本的用户名和密码,新建一个类作为一个输入文本的处理,这样来模拟登录。
使用函数作为匹配操作,对就的代码如下:
package { import flash.display.MovieClip; //包的导入 import flash.events.KeyboardEvent;//键盘的操作事件 import flash.ui.Keyboard;//键盘码 import flash.events.Event;//事件处理 public class Main extends MovieClip { //该类必须继承于MovieClip var name1:String="whc"; var pswtext:String="******"; public functionMain() { psw.addEventListener(KeyboardEvent.KEY_DOWN,onEnter);//添加一个按下的事件 } public function onEnter(event:KeyboardEvent):void { if (event.keyCode==Keyboard.ENTER) { info.text=comparefun(Name.text,psw.text); } } function comparefun(test:String,psw:String):String { var restring:String; if (test==name1) { restring=name1; } else { restring+="用户名出错!!!"; return restring; } if (psw==pswtext) { restring+=pswtext; } else { restring+="密码错误!!!"; return restring; } restring="Hello World !!!"; return restring; }}}
四、事件与类
1、 时间Timer:用来给某一个对象添加一个时间的事件,如:TimerEvent.TIMER
import flash.events.TimerEvent; import flash.utils.Timer;
Timer类的构函数有多个重载,有一个参数和二个参的重载,(参数为多少时间执行一次)(参数不多少时间执行一次,执行多少次);
Timer的对象可以用currentCount得到其当前的次数,还有一个就是事件访问其值:evt.target.currentCount
Timer对象的函数:start()、stop();
Date类:可用来得到当前的时间。就象是C#中的dateTime一样的功能,如:
var now:Date=new Date();
erfiled.text=now.toString();
2、 键盘事件KeyboardEvent:给某个对象添加一个键盘按下的事件,如上面的代码:
psw.addEventListener(KeyboardEvent.KEY_DOWN,onEnter);后面是执行函数,其接受的参数得是一个KeyboardEven,如上面的代码:onEnter(event:KeyboardEvent)
import flash.events.KeyboardEvent; import flash.ui.Keyboard; import flash.events.Event;
3、 鼠标事件MouseEvent,给某个对象添加一个鼠标点击事件如:
btn.addEventListener(MouseEvent.CLICK,startb);
4、 loader类:是一个加载器,用来加载各种文件,是一个内置的类,须要的包有:
import flash.display.Loader; import flash.net.URLRequest; loader对象的方法以:load()方法,使用如下: var loader:Loader = new Loader();//注册加载器 var url:URLRequest=new URLRequest("1.png");//注册加载地址 loader.load(url); addChild(loader); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,LoadComplete); //Event.COMPLETE事件是一个异步的事件
5、 Bitmap类:是一个位图的类,可用来对位图的操作;
6、Sprite容器类,用来放我们的图片等信息,是基本显示列表构造块:一个可显示图形并且也可包含子项的显示列表节点;
五、上传头像实例
利用flash可以与asp.net或其它web技术完成一个上传图片的程序,这也很实用,下面就来看一下吧!
1、 代码:
package { import flash.display.Sprite; import flash.net.FileReference; import flash.net.FileFilter; import flash.net.URLRequest; import flash.events.*; import flash.display.*; import flash.display.Loader; public class Main extends Sprite { private var url:URLRequest; private var file:FileReference; private var file01:FileReference; private var bitmap:Bitmap; private var loader:Loader=new Loader(); public function Main() { init(); } private function init():void { url=new URLRequest("uploader.aspx"); file=new FileReference(); file.addEventListener(Event.SELECT, selectHandler); file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); file.addEventListener(ProgressEvent.PROGRESS, progressHandler); file.addEventListener(Event.COMPLETE, completeHandler); mc.addEventListener(MouseEvent.CLICK,onclick); tr.addEventListener(MouseEvent.CLICK,onmouse); } private function onclick(Evt:MouseEvent):void { var fileFilter:FileFilter=new FileFilter("*.png;*.gif;*.jpg","*.png;*.gif;*.jpg"); file.browse([fileFilter]); } private function selectHandler(event:Event):void { file=FileReference(event.target); trace("selectHandler: name=" + file.name + " URL=" + url.url); file.load(); } private function ioErrorHandler(event:IOErrorEvent):void { Msg.text="出错了......"; trace("ioErrorHandler: " + event); } private function progressHandler(event:ProgressEvent):void { var file:FileReference=FileReference(event.target); Msg.text="正在上传......"; trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); } private function completeHandler(event:Event):void { Msg.text="完成了!"; loader.loadBytes(file.data); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadComplete); } private function onLoadComplete(e:Event):void { loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,onLoadComplete); var _sprite:Sprite=new Sprite(); bitmap=Bitmap(e.target.content); bitmap.width=120; bitmap.height=160; _sprite.addChild(bitmap); _sprite.x=(stage.stageWidth-_sprite.width)/2; _sprite.y=10; addChild(_sprite); } private function onmouse(Evt:MouseEvent):void { file.upload(url); } } }
2、 界面设计(审美有限)
3、 测试
总结
Flash/as3.0内容很多,比如说读取XML、flash沙箱操作、缓动(那时了解了一下caurina)、flash游戏开发等。那时学习flash只在二个项目中用过,一个是做动画,一个是写代码的,此文以回忆那些学习的日子。