麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

AS3腳本編寫的計時器效果代碼

2024-09-12 17:50:54
字體:
來源:轉載
供稿:網友
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);   mc.buttonMode = true;   mc.addEventListener(MouseEvent.CLICK,clickHanlder);   addChild(mc);   //   txt = new TextField();   txt.name = "btnText";   mc.addChild(txt); } 

在AS3里想要 mc 成為一個按鈕必須設置:

mc.buttonMode = true; 

這時看到鼠標經過mc時并沒有變成手形,原因在最后一行,把 txt 添加到了 mc 里用來顯示按鈕文字,以致鼠標事件的目標對象為txt而不是期望的mc。為了解決這個問題需要加上一句:

mc.mouseChildren = false; 

以保證mc為鼠標事件的目標對象(target objects)。

AS3里所有的可見對象都是DisplayObject的子類,而DisplayObject是EventDispatcher的子類

Sprite → DisplayObjectContainer → InteractiveObject → DisplayObject → EventDispatcher → Object 

也就是說所有的可見對象都可以直接addEventListener。

mc.addEventListener(MouseEvent.CLICK,clickHanlder); 

這里用常量 MouseEvent.CLICK 代替了事件類型 “click” 。此類常量以后不再贅述。

mc.graphics.beginFill(0x000000,0.3); mc.graphics.drawRect(0,0,w,h); 

AS3里所有的繪圖方法都放在了 Graphics 里。Sprite的graphics屬性就是一個Graphics。除了基本的 beginFill ,beginBitmapFill 之類,又增加了新的 drawCircle 、drawEllipse、drawRect 等方法,再也不用沒完沒了地 moveTo 、lineTo 了。  

public function startTimer(event:MouseEvent):void{   //...code here } 

下面是主要的內容了:Timer。

var delay:uint = setDelayTxt.text; var repeatCount:uint = setRepeatCountTxt.text; if(timer == null){   timer = new Timer(delay,repeatCount); } 

uint是AS3新加的數據類型,表示32位的正整數(int 表示32位有符號的整數)。Timer的構造函數接受兩個參數,delay 是 “timer” 事件延遲的毫秒數,repeatCount 是循環的次數,默認為0,即一直循環下去直到 stop 或者 reset 。

timer.addEventListener(TimerEvent.TIMER,timerHandler); timer.addEventListener(TimerEvent.TIMER_COMPLETE,timerCompleteHandler); 

timer廣播兩個事件,每隔 delay 指定的毫秒廣播一次 “timer” 事件,循環repeatCount次之后廣播 “timerComplete” 事件。

timer.start(); startBtn.getChildByName("btnText").text = " stop "; 

timer 在 start 之后開始執行,此時 running 屬性為 true 。把 startBtn 設置為 “stop”,注意AS3是拿不到startBtn的child的,因為 Sprite 不是動態類,無法聲明它的child。這時候想要拿到startBtn內的文本框就要使用 getChildByName 方法。當然要先給child一個name:

//function addBtn txt.name = "btnText"; 

最后是 stop 和 reset 的區別:reset 在 stop 之后把 currentCount 屬性設為 0 。可以通過 最后編譯的swf 體會一下。

fla文件下載

Flash動畫
在線播放

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av国产在线被下药迷网站 | 极品xxxx欧美一区二区 | 亚洲第一成人在线 | 欧美精品一区二区久久 | 热99精品视频 | 日本精品视频一区二区三区四区 | 91久久91久久精品免观看 | 亚洲精品一区二区三区免 | 欧美成人一区免费视频 | 久久久av亚洲男天堂 | 在线成人一区二区 | 羞羞视频2023 | 亚洲性生活视频 | 精品一区二区在线视频 | 老女人碰碰在线碰碰视频 | 日本欧美一区二区三区视频麻豆 | 9797色| 成人午夜在线免费视频 | 日韩在线播放中文字幕 | 国产精品成人av片免费看最爱 | 成人免费乱码大片a毛片视频网站 | 精精国产xxxx视频在线野外 | 免费在线观看亚洲 | 看免费黄色一级片 | fc2成人免费人成在线观看播放 | 日本中文字幕高清 | 欧美一级做性受免费大片免费 | 中国女人内谢8xxxxxx在 | 欧美一级做一a做片性视频 日韩黄色片免费看 | 末成年女av片一区二区 | 狠狠干五月天 | 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 国产欧美精品一区二区三区四区 | 91精品久久久久久久久网影视 | 国产日韩精品欧美一区视频 | 精品中文字幕视频 | 蜜桃一本色道久久综合亚洲精品冫 | 成人宗合网| 日韩理论电影网 | 久久区二区 | 国产电影精品久久 |