亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 辦公 > Flash > 正文

通過實例學習Flash AS3.0――案例五

2020-07-17 13:20:07
字體:
來源:轉載
供稿:網友
相關文章: 通過實例學習Flash AS3.0——案例四
首先聲明:本人大菜鳥一個,剛接觸AS3不久,許多理念還沒來得及灌輸,這些case都是從網上down的,但因為解說是英文的,不利我們學習,我就充當一個translater,順便可以讓自己鞏固一下知識。
水平有限,錯誤難免,歡迎大蝦小蝦,大鳥小鳥指正。
下面進入正題:
案例5:熟悉AS3的package,以及多個package之間的相互通信
說明:一個很簡單的demo,有4個按鈕,當鼠標劃過和移開時會呈現出不同的狀態,單擊后變成disabled,再點擊其他的按鈕時,之前disabled的按鈕恢復,被點擊的按鈕失效。
演示:http://www.live-my-life-with-yuyi.com/as3_cases/communicating/
準備工作:打開源文件communicating_final.fla,點擊屬性里的發布設置,點擊Actionscript3旁邊的設置,在最下面的classpath里,引入classes的文件夾的路徑,然后點擊確定,前期工作就準備完了。
代碼
源文件里的代碼很簡單:
import todd.interactive.ButtonSet;
var buttons:ButtonSet = new ButtonSet();
buttons.addButtons([one_mc,two_mc,three_mc,four_mc]);
addChild(buttons);
導入ButtonSet類,實例化,然后調用里面的一個方法,最后將它放到舞臺上。
classes文件夾下面的todd->interactive文件夾里有兩個as文件,其中一個就是剛剛調用的ButtonSet,來看看ButtonSet的源碼:
package todd.interactive
{
//其實只需載入display和events就可以了,不過多載入幾個并不影響文件大小和效率
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.net.*;
import flash.geom.*;
import flash.ui.*;
import flash.utils.*;
import fl.transitions.*;
import fl.transitions.easing.*;

public class ButtonSet extends MovieClip
{
public var buttons:Array;

public function ButtonSet()
{

}

public function addButtons(buttonSet:Array):void
{
buttons = buttonSet;
for(var i:int = 0; i < buttons.length; i )
{
addChild(buttons[i]);
}
}
}
}
一個類應該被放在一個package里面,就像錢應該被放到錢包里一樣。package后面定義的是該類的路徑。然后一系列常用的類。
定義了一個全局變量buttons,在變量前面加一個public就可以了。這樣就能在整個類中被訪問到。
類名應該和文件名一樣(區分大小寫),然后定義一個同名函數,這個函數會在類被初始化時調用,就像php4的類一樣。這里只是搭了個架子,沒有具體內容。
然后定義了一個函數addButtons,它的作用就是將一些mc或者sprites放到自己的container里(addChild)。
還有一個類:DisablingButton,也是位于todd->interactive文件夾下,這也是這個案例的核心。對了,之前已經將RectButton的linkage里的baseClass設置為todd.interactive.DisablingButton。
代碼稍微有點長,且聽我細細道來
package todd.interactive{
import flash.display.*;
import flash.events.*;
import todd.interactive.ButtonSet;
public class DisablingButton extends MovieClip {
var labels:Array;
var thisParent:*;
var thisIndex:int;
public function DisablingButton() {
labels = this.currentLabels;
this.addEventListener(MouseEvent.CLICK, disableButton);
this.addEventListener(MouseEvent.ROLL_OVER, over);
this.addEventListener(MouseEvent.ROLL_OUT, out);
this.addEventListener(Event.ADDED,setParent);
}
function disableButton(event:MouseEvent):void {
for (var i:int = 0; i < labels.length; i ) {
if (labels[i].name == "disable") {
this.gotoAndPlay("disable");
}
}
this.removeEventListener(MouseEvent.CLICK, disableButton);
this.removeEventListener(MouseEvent.ROLL_OVER, over);
this.removeEventListener(MouseEvent.ROLL_OUT, out);
enableOthers();
}
function enableButton():void {
this.addEventListener(MouseEvent.CLICK, disableButton);
this.addEventListener(MouseEvent.ROLL_OVER, over);
this.addEventListener(MouseEvent.ROLL_OUT, out);
this.gotoAndStop(1);
}
function over(event:MouseEvent):void {
for (var j:int = 0; j < labels.length; j ) {
if (labels[j].name == "over") {
this.gotoAndPlay("over");
}
}
}
function out(event:MouseEvent):void {
for (var k:int = 0; k < labels.length; k ) {
if (labels[k].name == "out") {
this.gotoAndPlay("out");
}
}
}
function setParent(event:Event):void {
if (this.parent is ButtonSet) {
thisParent=this.parent;
for (var w:int=0; w < thisParent.buttons.length; w ) {
if (this == thisParent.buttons[w]) {
thisIndex=w;
}
}
}
}
function enableOthers():void {
for (var z:int=0; z < thisParent.buttons.length; z ) {
if (z != thisIndex) {
thisParent.buttons[z].enableButton();
}
}
}
}
}
載入了兩個常用類后,又載入了剛剛定義的ButtonSet類,這樣我們就能使用ButtonSet的一些方法了。
注意:這個類必須繼承Movieclip類,因為該類的對象是一個mc。
然后定義了一些全局變量(默認均為public)。
創建析構函數DisablingButton,labels = this.currentLabels; 這句話的意思是取得當前mc的label屬性,以array的形式返回,包含了label.frame,label.name等等的屬性。
然后監聽自己的鼠標點擊、移入、移出事件。
this.addEventListener(Event.ADDED,setParent);這句話的意思是當自己被添加進一個容器時調用setParent函數。
disableButton這個函數作用是,將當前mc的狀態變成disabled,然后取消監聽事件,同時激活其他的按鈕。
enableButton函數的作用就是激活自己的監聽事件,并初始化自己的狀態。
over和out函數很簡單,就是設置自己當前的狀態。
setParent函數的最終目的是捕獲點擊事件發生在哪個mc上(gotoAndPlay方法將觸發EVENT.ADDED,所以over和out函數都將觸發setParent函數,這也是一個待改進的地方)。
enableOthers函數顧名思義,激活其他的按鈕。因為setParent已經記住了,最后的點擊事件發生在哪個mc上,所以只要遍歷一下buttons,然后激活其他的mc就可以了。
案例分析完畢。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久99视频免费| 国产91精品最新在线播放| 富二代精品短视频| 这里只有精品在线播放| 国产剧情久久久久久| 国产色婷婷国产综合在线理论片a| 国产黑人绿帽在线第一区| 久久这里有精品视频| 青青久久av北条麻妃黑人| 欧美日韩精品国产| 国内外成人免费激情在线视频| 青青草原一区二区| 伊人亚洲福利一区二区三区| 欧美成人免费小视频| 亚洲娇小xxxx欧美娇小| 欧美性感美女h网站在线观看免费| 日韩精品高清在线观看| 亚洲影院污污.| 日本亚洲精品在线观看| 久久久影视精品| 国产精品亚洲片夜色在线| 91精品视频免费观看| 亚洲午夜色婷婷在线| 精品欧美激情精品一区| 欧美日韩成人精品| 亚洲精品国产综合区久久久久久久| 欧美在线视频一区| 7777免费精品视频| 亚洲一二在线观看| 日韩免费观看高清| 欧美肥臀大乳一区二区免费视频| 亚洲国产精品va在线| 亚洲欧洲黄色网| 亚洲国产99精品国自产| 91精品视频在线| 日韩av一区二区在线观看| 亚洲成年网站在线观看| 久久精品国产成人精品| 成人精品视频久久久久| 日韩经典中文字幕在线观看| 久久精品国产亚洲一区二区| 日韩av最新在线观看| 理论片在线不卡免费观看| 日韩免费在线观看视频| 国产精品欧美在线| 日韩高清免费在线| 久久精品视频网站| 久久手机精品视频| 日韩精品视频中文在线观看| 国产欧美韩国高清| 性视频1819p久久| 青青草原一区二区| 欧美一区亚洲一区| 日本精品久久中文字幕佐佐木| 国产精自产拍久久久久久蜜| 一区二区在线免费视频| 日韩精品极品在线观看播放免费视频| 久久青草福利网站| 欧美电影在线播放| 国产欧美一区二区白浆黑人| 日本久久久久久久久久久| 亚洲精品国产精品国产自| 91精品久久久久久久| 91欧美精品成人综合在线观看| 中文字幕日韩av| 国产成人精品久久久| 91超碰中文字幕久久精品| 亚洲综合中文字幕在线观看| 欧美激情国产精品| 在线激情影院一区| 91色精品视频在线| 久久国产精品久久精品| 国产mv免费观看入口亚洲| 亚洲一区二区三区四区视频| 国产女同一区二区| 亚洲精品日韩在线| 国产精品h在线观看| 国产日韩在线免费| 国产精品视频自在线| 91亚洲国产成人久久精品网站| 在线视频欧美日韩精品| 欧美午夜www高清视频| 亚洲天堂男人天堂女人天堂| 久久精品久久久久电影| 日韩欧美在线视频日韩欧美在线视频| 95av在线视频| 亚洲日韩中文字幕| 不卡av电影在线观看| 国产精品女人久久久久久| 狠狠色噜噜狠狠狠狠97| 91美女高潮出水| 北条麻妃99精品青青久久| 成人免费淫片视频软件| 5566日本婷婷色中文字幕97| 大胆欧美人体视频| 久久精品一本久久99精品| 精品国产福利视频| 亚洲乱码一区二区| 日韩欧美在线网址| 欧日韩在线观看| 亚洲自拍中文字幕| 成人精品久久一区二区三区| 成人免费视频网址| 亚洲成人精品视频| 亚洲最大在线视频| 精品亚洲一区二区三区四区五区| 91精品国产综合久久香蕉| 日韩视频免费看| 国产91av在线| 91中文在线观看| 国产z一区二区三区| 欧美亚洲午夜视频在线观看| 久久频这里精品99香蕉| 中文字幕成人在线| 亚洲美女av网站| 欧美日韩国产成人| 91爱爱小视频k| 欧美专区第一页| 成人久久精品视频| 久久久成人精品视频| 日韩一区二区在线视频| 亚洲精品国产美女| 国产精品18久久久久久首页狼| 久久人人爽国产| 777国产偷窥盗摄精品视频| 欧美国产精品日韩| 国产999精品视频| 欧美丰满少妇xxxx| 久久777国产线看观看精品| 欧美激情视频三区| 久久99精品久久久久久噜噜| 欧美成人在线网站| 欧美天天综合色影久久精品| 久久亚洲综合国产精品99麻豆精品福利| 亚洲最大的成人网| 懂色av影视一区二区三区| 国产精品激情av电影在线观看| 午夜精品免费视频| 亚洲一级黄色片| 国产欧美一区二区三区视频| 久久久久久网站| 日韩免费观看网站| 久久视频免费观看| 一本一本久久a久久精品牛牛影视| 亚洲成人久久网| 国产福利视频一区二区| 色综合久久88色综合天天看泰| 欧美影院久久久| 日韩精品视频观看| 久久精品久久久久久国产 免费| 亚洲精品国产福利| 午夜精品久久久久久久99热浪潮| 国产一区二区丝袜| 久久久久这里只有精品| 欧美日韩国产色| 久久久久久久久国产| 日本欧美精品在线| 欧美性生活大片免费观看网址| 国产精品精品国产| 欧美日本国产在线| 91情侣偷在线精品国产| 亚洲va男人天堂| 色偷偷av一区二区三区| 92福利视频午夜1000合集在线观看|