AS3学习笔记(1-6)

 首先 say hello 一下,在输出面板 trace 出 “Hello World!”。复习一下AS2的类代码:
class net.eidiot.learnAS3.HelloAs2{
    public function HelloAs2(){
        trace("Hello World!");
    }
}
为了让这段代码工作,需要在Flash IDE里场景的第一帧输入代码:
import net.eidiot.learnAS3.HelloAs2;
var hello:HelloAs2 = new HelloAs2();
再来看看AS3的类:
package net.eidiot.learnAS3
{
    import flash.display.Sprite;   
    public class HelloAs3 extends Sprite
    {
        public function HelloAs3(){
            trace("Hello World!");
        }
    }
}
打开Flash 9,在文档属性的“Document class”里输入包名和类名,如图:
[img]/uploads/allimg/080401/1736360.gif[/img]
下面来看看区别。在AS3的类里多了一个package关键字,后面跟上类的包名(如果fla和类放在相同的文件夹就可以什么都不跟)。这样在声明类的时候就不用带上包名了。
public class HelloAs3 extends Sprite
class 关键字的前面多了一个 public 。在AS3里类还可以是 internal 。如果声明类为 internal 则只有同一个包里的其他类可以引用导入,包外的任何类都将访问不到它。此类继承了 Sprite 。AS3的类如果想使用 MC 的事件或方法必须让它继承 MovieClip 或者 Sprite 。Sprite 可以理解为没有时间轴的 MovieClip 。
最后一步是把它设置为 fla 的 Document class ,这样类 HelloAs3 就和文档 helloAs3.fla 绑定在一起了。关于 Document class 可以参考黑羽的文章:
[url=http://www.blueidea.com/tech/multimedia/2006/3709.asp]Document Class特色为我们带来了什么[/url]

是不是感觉AS3太麻烦了?高射炮打蚊子,是要费劲一点的。
[1b]源文件:[/1b]
[url=http://www.blueidea.com/articleimg/2006/07/3854/hello.rar][1b]hello.rar[/1b][/url]
尝试用AS3做一个简单的计数器。先来看看最后的效果:
[url=http://www.blueidea.com/articleimg/2006/07/3854/timer.swf][1b]
[color="#444444"]实例效果[/color]
[/1b][/url]

[url=http://www.blueidea.com/articleimg/2006/07/3854/ShowTimer.swf]
[color="#444444"]查看类代码[/color]
[/url]

public function ShowTimer(){
    stage.scaleMode = StageScaleMode.NO_SCALE;
    stage.align = StageAlign.TOP_LEFT;
    initMc();
}
AS3里新加了很多的常量来代替字符串。这给我们带来了很大的方便。比如要限制影片的缩放模式为固定尺寸,AS2时的代码为
Stage.scaleMode = "noScale";
值是一个字符串,在输入的时候是没有代码提示的,很容易输错(我经常是到帮助文档里把字符串复制过来)。而在AS3里的代码为:
stage.scaleMode = StageScaleMode.NO_SCALE;
原来的字符串 “noScale” 由常量 StageScaleMode.NO_SCALE 代替。这样可以使用代码提示自动完成,有效避免了因为输错而造成的程序bug(而且很方便  )。同样的字符串常量还有一些事件类型比如 MouseEvent.CLICK 代替”click” 等等。
private function initMc():void{
    showTxt = new TextField();
    addShow(showTxt,10,10,310,20);
    addLabel(setDelayLabel,10,40,"delay:");
    //...other code
}
添加文本框和按钮。注意,需要再次引用的文本框必须显式初始化,否则在其他地方引用此变量将返回 null 。
private function addLabel(txt:TextField,x:uint,y:uint,text:String):void{
    txt = new TextField();
    txt.x = x;
    txt.y = y;
    txt.text = text;
    addChild(txt);
}
AS3里所有的东西都是 new 出来的。仅仅 new 出来还不行,必须使用 addChild() 把它添加到显示列表里。
 
private function addBtn(mc:Sprite,...,clickHanlder:Function):void{
    mc.mouseChildren = false;
    mc.graphics.beginFill(0x000000,0.3);
    mc.graphics.drawRect(0,0,w,h);
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1737.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值