那些年,我还在学习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只在二个项目中用过,一个是做动画,一个是写代码的,此文以回忆那些学习的日子。

 

posted @ 2012-03-02 16:47  静悦  阅读(600)  评论(2编辑  收藏  举报