青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

教父的告白
一切都是紙老虎
posts - 82,  comments - 7,  trackbacks - 0

大家好,今天亦樂首次為大家帶來flash actionscript轉載教程。首先聲明出處(我自己是沒時間寫教程啦,要直接找我討論還好)

 版權聲明:轉載時請以超鏈接形式標明文章原始出處和作者信息及本聲明
http://goday.blogbus.com/logs/14062836.html

 

今天,我也正式宣布,開始成為閃客,以往對macromedia flash的許多頭疼問題都被adobe解決了,以往一直否認我喜歡做flash,現在總算可以為adobe flash 自豪。非常有系統的developing方式。RIA 平臺, on screen project就不這里說了。

 

這期帶來的是flash極重要元素之一,event事件。在游戲里就是所謂的Trigger. Adobe改良后的,大家謂稱的“冒泡機制”。有問題歡迎發問指教。

 

=思路大綱=

  1. ActionScript 2的問題
  2. AS3解決問題
  3. 結合問題,說明“冒泡”
  4. 冒泡的問題所在以及解決方法


1 - ActionScript 2的問題

stage里有一個mc,mc里有一個btn
點選mc實現拖動mc,鼠標松開停止拖動
點選mc實現mc隱藏。
最容易想到的方法,代碼如下:

mc.onPress = function() {
        this.startDrag();
};
mc.onRelease = function() {
        this.stopDrag();
};
mc.btn.onPress = function() {
        mc._visible=false
};

表面來看,這個思路是正確的。(實際上沒什么思路可言,很簡單的方法。)
實際怎么樣?當然是不能實現。
問題:點擊btn,不能觸發btn的動作!!!!
解釋:  因為btn處于mc內部,mc被加上了事件以后,按照as2的事件機制,mc內部的btn甚至是其他的元件都不能接受事件。或者可以認為mc的事件覆蓋了mc中其他元件的事件。
從非冒泡機制來說,在btn上點擊鼠標,首先接受到點擊事件的自然是btn的上一層(也就是mc),然后才是btn元件。Mc先接受到點擊事件,觸發相關的函數。然后呢?我們要實現的點擊btn的效果沒了。我們可以認為mc把我們的鼠標點擊事件據為私有了,不再往下傳遞。(如果是冒泡機制的話,這個動作就回繼續往下傳遞到btn,然后btn會執行。)那么這種效果在as2中還能實現么?答案自然是肯定的,不過方法就復雜了。
這里就不討論了。As3已經成為主流。
但是as3中的冒泡機制,讓我們可以簡單的解決這樣的難題。

2 - AS3解決問題

下面來看as3中怎么實現。
代碼如下:

import flash.events.*;
mc.addEventListener(MouseEvent.CLICK,mcfunction);
mc.btn.addEventListener(MouseEvent.CLICK,btnfucntion);

function mcfunction(event:MouseEvent) {
        trace("mc click");
}
function btnfucntion(event:MouseEvent) {
        trace("btn click");
}

 

看看代碼就覺得,好像沒用什么特別的解決方法,就加兩個偵聽函數,就搞定了。
這個代碼自然的不能再自然了,就好像做flash 先的安裝軟件一樣。
但是如此自然的代碼下面,使AS3的冒泡機制在提供支持。 

3 - 結合問題,說明冒泡機制:
Help中有一個冒泡機制的圖,相信大家都已經看過了
這里我聯系實例,另外做一個圖,幫助各位理解。

2D2D13C9009ACC1FF3AADD80E5C4FB85 

上圖為as2中的執行原理
下圖為as3中的執行原理
 2D8D966808DAEEA2C9701B5E09B334FE 
上圖也就是在as3中實現我們文章開始提出的例子的工作原理。
下面詳細描述一下

捕獲階段:
鼠標在btn上發出點擊事件,首先捕捉到該事件的事stage.,然后事件往下傳遞到mc,再到btn..(如果鼠標事件發生在btn按鈕中的一個label上,那么該事件還會繼續向下傳遞,直到找到label元件。)AS2中,一旦找到了可以相應事件的函數,就停止了,不會往下傳遞。這個道理應該說明白了
目標階段
找到我們的鼠標最底層的目標,也就是btn以后,那么就開始執行btn的偵聽函數了。
    如果鼠標事件發生的所在位置,是mc中的btn中的一個label。那么將先執行label的偵聽函數。(當然我們的例子中沒有label)
冒泡階段:
執行了目標階段的偵聽函數以后,開始冒泡。
換一個說法是,返回btn的父級元件mc,如果能找到相關的偵聽函數,那么就執行,如果沒有,就繼續往上冒泡到btn的父級元件mc的父級元件stage。看能不能找到相關的偵聽函數。

注意一個:首先執行的函數一定是目標對象的偵聽函數。就像我們上面的例子一樣,點擊btn會先trace(“btn click”),然后冒泡到mc,執行trace(“mc click”)..然后繼續往上,如果stage我們也加一個偵聽函數,執行語句,那么還會繼續執行 trace(“stage click”).
到達stage頂層了,冒泡結束。
說到這里,各位看官也應該明白了as3的冒泡究竟是干什么用的了

4 - 冒泡的問題所在以及解決方法
  冒泡也有問題,并不是說它有缺陷,因為出現問題無法避免。
  問題在于,
  假如在上面的例子中,我們不想在點擊btn冒泡階段中執行mc的偵聽函數,我們只想執行btn的偵聽函數。怎么解決?
同樣的問題延伸出去,可以得到很多擴展和應用。
那么我們需要阻止他的冒泡的時候執行相關的偵聽函數。
Chm中的方法有

stopImmediatePropagation():void
防止對事件流中當前節點中和所有后續節點中的事件偵聽器進行處理。
stopPropagation():void
防止對事件流中當前節點的后續節點中的所有事件偵聽器進行處理。

用來修改我們上面的例子
代碼如下:

import flash.events.*;
mc.addEventListener(MouseEvent.CLICK,mcfunction);
mc.btn.addEventListener(MouseEvent.CLICK,btnfucntion);
function mcfunction(event:MouseEvent) {
        trace("mc click");
}
function btnfucntion(event:MouseEvent) {
        trace("btn click");
        event.stopPropagation();//修改在此處。簡單一句,解決問題
}

現在可以試試,點擊btn運行得到的結果就是

代碼:
btn click

說明,已經防止了冒泡階段中對mc偵聽函數的處理。也就沒有trace(“mc click”)了
As3事件機制遠遠不像這里寫的那么簡單,還有很多東西需要研究。
本文只為拋磚引玉,讓各位能先了解一下冒泡機制。
希望能多的朋友能提供相關的學習資料

posted on 2010-03-15 15:03 暗夜教父 閱讀(476) 評論(0)  編輯 收藏 引用 所屬分類: AS3

<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产美女精品一区二区三区| 一区二区免费在线观看| 久久成人18免费观看| 一区二区三区免费观看| 99成人在线| 一二三区精品福利视频| 亚洲嫩草精品久久| 欧美亚洲视频| 久久综合婷婷| 欧美精品播放| 欧美色精品在线视频| 国产模特精品视频久久久久| 精品粉嫩aⅴ一区二区三区四区| 精品成人一区| 99在线|亚洲一区二区| 亚洲在线一区| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品人人做人人爽| 国产欧美大片| 亚洲国产另类 国产精品国产免费| 亚洲激情啪啪| 亚洲欧美视频在线| 男人天堂欧美日韩| 日韩视频免费| 久久久www成人免费精品| 欧美国产精品久久| 国产婷婷色一区二区三区| 亚洲精品久久7777| 久久av老司机精品网站导航| 蜜桃久久av| 亚洲欧美日本精品| 欧美精品1区2区| 国产自产高清不卡| 亚洲一区自拍| 亚洲激情视频网| 亚洲小说春色综合另类电影| 久久亚洲欧洲| 国产在线播放一区二区三区| 亚洲性视频h| 亚洲激情视频在线| 久久综合精品国产一区二区三区| 国产精品久久久久久久久久久久| 亚洲国产精品99久久久久久久久| 久久精品国产2020观看福利| 亚洲精品中文字幕在线| 久久久久久亚洲精品中文字幕| 国产精品爽爽ⅴa在线观看| 亚洲黄色av一区| 久久久久成人精品免费播放动漫| 99视频一区二区三区| 免费成人在线观看视频| 国内精品久久久久久| 午夜国产欧美理论在线播放 | 午夜精品免费| 亚洲国产精品久久人人爱蜜臀| 久久疯狂做爰流白浆xx| 国产欧美精品日韩| 亚洲欧美国产另类| 一区二区三区久久久| 欧美国产视频日韩| 91久久精品国产91久久| 欧美aⅴ一区二区三区视频| 久久精品国产欧美激情| 狠狠色香婷婷久久亚洲精品| 久久久999国产| 亚洲欧美自拍偷拍| 国产视频一区在线| 久久精品国产99精品国产亚洲性色| 亚洲视频欧洲视频| 欧美三区在线| 欧美一区二区女人| 欧美一区二区高清在线观看| 国产一区二区高清不卡| 久久久.com| 久久综合久久综合九色| 亚洲精品免费在线| 99视频在线观看一区三区| 国产精品网站一区| 久久久精品网| 欧美91大片| 亚洲欧美日韩精品一区二区| 亚洲男女自偷自拍图片另类| 韩国v欧美v日本v亚洲v| 欧美成人一区二区三区片免费| 男人的天堂亚洲| 亚洲视频www| 欧美一区二区| 亚洲美女视频在线观看| 亚洲一区精品视频| 国产一区二区三区免费不卡| 免费观看久久久4p| 欧美日韩在线观看一区二区| 亚洲欧美日韩一区二区| 久久人人爽爽爽人久久久| 亚洲免费av片| 欧美一级视频精品观看| 亚洲裸体在线观看| 亚洲影音一区| 亚洲精品国产精品乱码不99按摩 | 亚洲专区在线视频| 国产在线精品成人一区二区三区 | 亚洲视频一区二区免费在线观看| 亚洲一区二区在线免费观看视频 | 久久久国产一区二区| 久久午夜视频| 久久久精品性| 亚洲一线二线三线久久久| 久久婷婷亚洲| 欧美伊人久久| 欧美国产在线视频| 久久爱www久久做| 欧美三日本三级少妇三99| 久久精品国产一区二区三区| 欧美日韩免费网站| 国产欧美一区二区白浆黑人| 亚洲激情视频在线| 激情综合亚洲| 性8sex亚洲区入口| 亚洲性xxxx| 欧美久久久久中文字幕| 美女视频黄免费的久久| 国产女优一区| 亚洲欧美精品suv| 亚洲视频一区在线观看| 欧美电影在线观看| 免费成人小视频| 好吊色欧美一区二区三区四区| 亚洲一区二区三区激情| 亚洲尤物在线| 国产精品久久久久高潮| 日韩亚洲一区二区| 一区二区三区国产精品| 欧美国产日韩视频| 欧美激情免费在线| 亚洲欧洲日韩在线| 欧美ed2k| 亚洲精品一品区二品区三品区| 亚洲激情网站免费观看| 久久久久免费| 免费观看在线综合| 亚洲高清在线精品| 美腿丝袜亚洲色图| 欧美激情亚洲综合一区| 亚洲精品免费看| 欧美日韩国产综合视频在线观看| 亚洲国产精品传媒在线观看| 亚洲三级免费观看| 欧美日韩国产小视频| 日韩一区二区电影网| 亚洲一区二区四区| 国产麻豆日韩| 久久精品女人的天堂av| 蜜桃久久精品乱码一区二区| 亚洲国产精品欧美一二99| 免费成人网www| 日韩视频一区二区三区在线播放免费观看| 亚洲人午夜精品免费| 欧美视频中文字幕| 性亚洲最疯狂xxxx高清| 麻豆精品视频在线| 亚洲另类在线视频| 国产精品s色| 欧美一区在线直播| 欧美激情二区三区| 亚洲欧美电影在线观看| 国产视频亚洲| 欧美成人资源网| 亚洲一二三区在线| 麻豆久久婷婷| 亚洲视频一区二区| 在线观看日韩av| 欧美日韩在线免费| 欧美一级大片在线观看| 亚洲高清在线播放| 午夜精品视频在线观看| 亚洲成色精品| 欧美视频精品在线| 久久精品夜夜夜夜久久| 亚洲精品久久视频| 久久久精品视频成人| 一区二区三区四区五区精品视频| 国产偷国产偷精品高清尤物| 欧美成人黑人xx视频免费观看| 亚洲影院色无极综合| 亚洲国产精品va在线看黑人动漫| 欧美亚洲日本网站| 亚洲伦伦在线| 亚洲国产91色在线| 国产视频亚洲精品| 国产精品久久久久久久第一福利| 欧美va天堂| 久久精品女人| 亚洲午夜精品视频| 亚洲精品精选| 欧美国产视频一区二区| 久久精品视频网| 亚洲欧美日韩综合国产aⅴ| 亚洲美女黄网| 日韩视频免费看| 亚洲欧洲精品一区二区精品久久久|