亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Flash AS3教程:下雪動(dòng)畫(huà)效果

互聯(lián)網(wǎng)   發(fā)布時(shí)間:2008-10-06 01:25:44   作者:佚名   我要評(píng)論
  如果你對(duì)本篇文章很感興趣或是在學(xué)習(xí)Flash時(shí)遇到了什么困難,歡迎到我們的學(xué)院論壇來(lái)交流。   與AS2.0相比較,AS3.0有了很大的變化,它改變了我們以往的編程習(xí)慣。今天我們通過(guò)一個(gè)非常簡(jiǎn)單的入門(mén)練習(xí)-下雪效果,來(lái)認(rèn)識(shí)一下AS3.0,主要了解一下AS3.0與AS2.0的區(qū)別。
  如果你對(duì)本篇文章很感興趣或是在學(xué)習(xí)Flash時(shí)遇到了什么困難,歡迎到我們的學(xué)院論壇來(lái)交流。


  與AS2.0相比較,AS3.0有了很大的變化,它改變了我們以往的編程習(xí)慣。今天我們通過(guò)一個(gè)非常簡(jiǎn)單的入門(mén)練習(xí)-下雪效果,來(lái)認(rèn)識(shí)一下AS3.0,主要了解一下AS3.0與AS2.0的區(qū)別。

  首先,我們來(lái)介紹一下AS3的一些基礎(chǔ)知識(shí)。

  在AS3中怎樣把庫(kù)中的元件加載舞臺(tái)

  我們知道在AS2中我們可以通過(guò)attachMovie將庫(kù)中的mc加載到舞臺(tái)上。在使用這個(gè)命令前我們必須要做的事情是在庫(kù)中右擊元件,打開(kāi)連接面板,然后在標(biāo)識(shí)符框中為元件取上一個(gè)連接名,這樣才能用attachMovie()來(lái)加載它。現(xiàn)在我們?cè)贏S3中來(lái)做一下,在庫(kù)中右擊元件,打開(kāi)連接面板,這時(shí)你會(huì)叫道:“為什么我的標(biāo)識(shí)符框是灰色的,不能用。”不是你的是灰色的,而是在AS3中都是灰色的,因?yàn)樵贏S3中是不能用 attachMovie()來(lái)加載元件的。AS3據(jù)說(shuō)是完全面向?qū)ο缶幊痰恼Z(yǔ)言了,這就必須要了解類,對(duì)象等概念。類就是一類東西的一個(gè)名稱,比如動(dòng)物類就包括了所有動(dòng)物,動(dòng)物類下面的所有人就是人類了。又如所有電器可叫電器類,電器類下面又可有電視機(jī)類等。對(duì)象是某類的一個(gè)具體的實(shí)例。比如你就是人類中的一個(gè)具體的人,你就是人類的一個(gè)對(duì)象??吹竭@里你說(shuō):“我暈”,我說(shuō):“我更暈”。介紹類,對(duì)象這些概念看的人不容易看懂,說(shuō)的人更不容易說(shuō)清。在 AS3中要加載一個(gè)顯式對(duì)象(我們?cè)谖枧_(tái)上看得見(jiàn)的東西),必須要載入一個(gè)類,然后要聲明這個(gè)類的一個(gè)實(shí)例,再用new關(guān)鍵字創(chuàng)建它,最后用 addChild()將它加載到舞臺(tái)。我們將舞臺(tái)著是一個(gè)展臺(tái),將庫(kù)看著是一個(gè)倉(cāng)庫(kù),現(xiàn)在倉(cāng)庫(kù)中有一臺(tái)電視機(jī)要放到展臺(tái)上,該怎樣做呢?首先需要一個(gè)電視機(jī)類,然后需要聲明一個(gè)實(shí)例:

  var 電視機(jī)甲(實(shí)例名):電視機(jī)(類名)= new 電視機(jī)();

  addChild(電視機(jī)甲);

  現(xiàn)在我們回到flash中來(lái)看看,現(xiàn)在庫(kù)中有一個(gè)元件,我們要將它加載到舞臺(tái)上,應(yīng)該這樣做:

  在庫(kù)中右擊該元件,打開(kāi)連接面板,我們會(huì)看到一個(gè)叫類的文本框,在這里給這個(gè)類取一個(gè)名字,比如myl.確定。這樣我們就加載了一個(gè)叫myl的類了。接下來(lái),在場(chǎng)景的幀動(dòng)作中,輸入:

  var mymc:myl = new myl();

  addChild(mymc);

  mymc.x = 100;

  mymc.y = 100;

  測(cè)試影片,我們會(huì)看到,庫(kù)中的這個(gè)元件已被加載到舞臺(tái)的(100,100)坐標(biāo)處了。

  AS3的事件偵聽(tīng)機(jī)制

  什么是事件呢?當(dāng)某件事情發(fā)生的時(shí)候就做些什么事。這個(gè)某件事情就是事件。比如:press,當(dāng)鼠標(biāo)按下的時(shí)候,這就是一個(gè)事件。在AS2中,我們有兩種方式來(lái)實(shí)現(xiàn)事件驅(qū)動(dòng)。一種是將代碼直接寫(xiě)在元件上(mc或按鈕)。比如,在場(chǎng)景中有一個(gè)叫mymc的影片剪輯元件,我們?cè)谄渖宵c(diǎn)右鍵,打開(kāi)動(dòng)作面板,輸入:

  on(press){

  干點(diǎn)壞事;

  }

  這樣,當(dāng)我們?cè)趍ymc元件上按下鼠標(biāo)時(shí),就會(huì)去干點(diǎn)壞事。第二種方法是在幀動(dòng)作上輸入代碼:

  mymc.onPress = function(){

  干點(diǎn)壞事;

  }

  這樣,當(dāng)我們?cè)趍ymc元件上按下鼠標(biāo)時(shí),同樣會(huì)去干點(diǎn)壞事。

  接下來(lái),我們?cè)贏S3中來(lái)看看:在元件上點(diǎn)右鍵,打開(kāi)動(dòng)作面板,你會(huì)看到“無(wú)法將動(dòng)作應(yīng)用于當(dāng)前所選內(nèi)容”。哦嗬,搞不成。在AS3中無(wú)法將代碼寫(xiě)在元件上,只能寫(xiě)在幀動(dòng)作上。而AS3的事件偵聽(tīng),也有它自已,的格式,不管你樂(lè)意不樂(lè)意,你都必須這樣做。AS3在事件偵聽(tīng)格式是:

  function 函數(shù)名稱(事件對(duì)象:事件類型):void

  {

  // 此處是為響應(yīng)事件而執(zhí)行的動(dòng)作。

  }

  觸發(fā)事件的對(duì)象.addEventListener(事件類型.事件名稱, 函數(shù)名稱);

  必須先聲明一個(gè)函數(shù),將要執(zhí)行的代碼放在其中,然后觸發(fā)事件的對(duì)象用addEventListener去偵聽(tīng)事件,如果事件發(fā)生則調(diào)用函數(shù)。還用上面那個(gè)干壞事的例子。打開(kāi)幀動(dòng)作面板,輸入:

  function 干壞事(event:MouseEvent):void {

  干點(diǎn)壞事;

  }

  mymc.addEventListener(MouseEvent.CLICK,干壞事);

  這樣,當(dāng)我們?cè)趍ymc元件上按下鼠標(biāo)時(shí),會(huì)再一次去干點(diǎn)壞事。上面代碼中的MouseEvent是鼠標(biāo)事件的意思,CLICK是單擊的意思,即在元件上單擊就會(huì)觸發(fā)事件。

  在AS3中改變對(duì)象的位置和縮放對(duì)象

  我們知道,對(duì)象在舞臺(tái)上位置由其x,y軸的坐標(biāo)來(lái)決定。在AS2中有兩個(gè)屬性:_x,和_y,用來(lái)指定對(duì)象的x,y坐標(biāo),這一點(diǎn)在AS3中也是一樣的,只是AS3中去掉了下劃線,屬性名就叫x,y.比如,在AS2中,要將mymc的位置定在(100,100)處,要這樣:

  mymc._x = 100;

  mymc._y = 100;

  而在AS3中是這樣的:

  mymc.x = 100;

  mymc.y = 100;

  在AS2中對(duì)象的大小可以用width,height,_xscale,_yscale四個(gè)屬性來(lái)確定,在AS3中width和height是一樣的,不再說(shuō)它了。AS3用scaleX和scaleY屬性取代了_xscale,_yscale屬性。同時(shí)它們的值也是有區(qū)別的。AS2中的,_xscale, _yscale屬性值是百分比。而AS3中的scaleX和scaleY值是一分比。一分比?這是我發(fā)明的,博士專用名詞,嘿嘿。scaleX和 scaleY值實(shí)際就是放大縮小的倍數(shù)。比如,在AS2中 mymc._xscale = 30; 這是將mymc的寬度縮小到原來(lái)的30%。

  在AS3中 mymc.scalex = 30; 這是將mymc的寬度放大到原來(lái)的30倍。要將寬度縮小到30%,就要用

  mymc.scale = 0.3;

  好了,基礎(chǔ)知識(shí)就介紹這么多,本文就當(dāng)是AS3的入門(mén)教程吧,介紹的就幾個(gè)入門(mén)知識(shí)。

  下面我們就來(lái)做一個(gè)下雪效果的練習(xí),將上面的知識(shí)點(diǎn)運(yùn)用到實(shí)例中。

  實(shí)例練習(xí)-下雪效果

  效果演示:

  

  打開(kāi)flash cs3,選擇新建flash文件(ActionScript 3.0).

  導(dǎo)入一張背景圖片,在場(chǎng)景中放好。

  新建一個(gè)影片剪輯元件,將舞臺(tái)放大到800%,用橢園工具,畫(huà)一個(gè)無(wú)筆觸,填充色為放射將白色左色標(biāo)透明度為100%,右色標(biāo)透明度0%的橢園,大小這 4x3,用選擇工具調(diào)整一下,使其不太規(guī)則。在第30幀插入關(guān)鍵幀。插入引導(dǎo)層,畫(huà)一條由上向下的彎曲引導(dǎo)線?;氐降谝粚樱诘谝粠?0幀,分別將橢園放到引導(dǎo)線的兩端,建立補(bǔ)間動(dòng)畫(huà)。

  如圖:

  
下雪效果

  放大至800%時(shí)

  
下雪效果
  打開(kāi)庫(kù),在元件上右擊,打開(kāi)連接面板,在類文本框中輸入:xl,確定。

  
下雪效果   回到主場(chǎng)景,新插入一圖層,命名為action,打開(kāi)動(dòng)作面板:輸入:

  var i:Number = 1;

  addEventListener(Event.ENTER_FRAME,xx);

  function xx(event:Event):void {

  var x_mc:xl = new xl();

  addChild(x_mc);

  x_mc.x = Math.random()*550;

  x_mc.scaleX = 0.2 Math.random();

  x_mc.scaleY = 0.2 Math.random();

  i ;

  if(i>100){

  this.removeChildAt(1);

  i=100;

  }

  }

  ok,完成。

  上面的代碼,在基礎(chǔ)介紹中都已說(shuō)明了,應(yīng)該一看就明白了。有幾句解釋一下。

  x_mc.scaleX = 0.2 Math.random();

  x_mc.scaleY = 0.2 Math.random();

  0.2 Math.random();會(huì)產(chǎn)生0.2-1.2間的隨機(jī)數(shù),這就讓雪花縮小到20%到放大到120%間,落下來(lái)的雪花,大小不一,顯得更加真實(shí)一些。

  removeChildAt(n);是刪除已加載的顯式對(duì)象,其中的n是已加載的對(duì)象的索引號(hào)。從addEventListener (Event.ENTER_FRAME,xx);這一句可以看出,運(yùn)行一幀,就會(huì)從庫(kù)中加載一個(gè)雪花,同時(shí)i加,這樣當(dāng)i等于100時(shí),場(chǎng)景中就已有 100個(gè)雪花了。這個(gè)時(shí)候我們用this.removeChildAt(1);將最先加載的雪花刪除。然后將i設(shè)為100,到下一幀,i就又大于100 了,那么要加載1個(gè)雪花,同時(shí)又刪除了一個(gè)雪花,這就達(dá)到了一個(gè)動(dòng)態(tài)平衡,場(chǎng)景中始終只有100個(gè)雪花。要不然,就會(huì)雪越下越多,造成雪災(zāi)就不好了。

相關(guān)文章

  • flash cs6鼠標(biāo)跟隨效果實(shí)現(xiàn)代碼分享

    flash cs6想要實(shí)現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來(lái)看看使用as2.0實(shí)現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下
    2019-05-19
  • Flash cs6怎么使用代碼輸入中英文文本?

    Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來(lái)輸入文本,該怎么使用代碼輸入文本呢?請(qǐng)看下文詳細(xì)的教程,需要的朋友
    2018-03-11
  • flash as3.0怎么定義抽象類和抽象?

    flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來(lái)看看簡(jiǎn)單的例子,需要的朋友可以參考下http://chabaoo.cn/softs/408402.
    2018-02-28
  • flash cs6中怎么使用ActionScript3.0?

    flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下
    2018-01-25
  • Flash中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?

    本教程給大家分享一個(gè)Flash小教程,教大家在Flash CS6中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?方法很簡(jiǎn)單,感興趣的朋友歡迎前來(lái)一起分享學(xué)習(xí)
    2018-01-12
  • Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置?

    本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置,教程講解的詳細(xì),感興趣的朋友歡迎前來(lái)分享學(xué)習(xí)
    2017-11-20
  • 在Flash CS6中使用with函數(shù)繪制背景圖教程

    本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門(mén)學(xué)習(xí)
    2017-11-18
  • Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程

    Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來(lái)看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下
    2017-10-11
  • Flash怎么制作來(lái)回?fù)u擺的花朵的動(dòng)畫(huà)?

    Flash怎么制作來(lái)回?fù)u擺的花朵的動(dòng)畫(huà)?Flash中想要給花朵制作一段搖擺的動(dòng)畫(huà)效果,該怎么制作呢?下面我們就來(lái)看看詳細(xì)的教程,很簡(jiǎn)單,需要的朋友可以參考下
    2017-05-23
  • Flash怎么制作流動(dòng)七彩色的文字?

    Flash怎么制作流動(dòng)七彩色的文字?想要讓文字動(dòng)起來(lái),該怎么使用flash給文字制作一個(gè)流動(dòng)七彩色的動(dòng)畫(huà)呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下
    2017-04-23

最新評(píng)論