論壇里有篇《循環(huán)播放圖片加鼠標(biāo)即?!返奶宇H受歡迎。 但作者并未對(duì)其細(xì)膩講解,不少人未諳其意,一知半解,做不出 效果故發(fā)一貼以釋眾疑 要讓幾張圖片循環(huán)滾動(dòng),最簡的原理就是把連續(xù)圖片再復(fù)制一份接到尾部, 待第一張圖片滾完之后被復(fù)制的接著滾動(dòng)。原理如圖所示
下載 (19.01 KB) 原理示意圖
2010-6-25 14:20
不管是用AS控制還是利用幀手工 制作都可以使用這個(gè)原理 當(dāng)?shù)谝唤M滾出顯視區(qū)時(shí),第二組正好接替進(jìn)入了顯視區(qū)回到我們第一幀的起始狀態(tài)。 如果用幀控制,只要直接跳回起始的第一幀就行了; 如果是用AS程序控制,我們?cè)侔训谝唤M的x軸位置重新設(shè)置接到第二組后面也一樣可以 構(gòu)成圖片循環(huán)滾動(dòng) 本教材重在講解AS3實(shí)例,幀控制實(shí)例并不詳解,但教材下給出了參考實(shí)例與實(shí)例 源文件,如果想 要鼠標(biāo)經(jīng)過即停效果可參考AS3控制實(shí)例代碼 實(shí)例(本例Flash版本為CS3,.語言為AS3): 1.按CTR+F8創(chuàng)建影片剪輯“content”,導(dǎo)入自己喜歡的圖片并排列好 2.切換到舞臺(tái),在圖層1拖入2個(gè)剛創(chuàng)建的影片剪輯:“content”,照示意圖中水平并排排列 第一個(gè)影片剪輯x坐標(biāo)要為0 3.新建圖層2代碼層,代碼如下
- addEventListener(Event.ENTER_FRAME,sliding);
- //動(dòng)畫開始后,每一幀都調(diào)用此函數(shù)sliding()
- function sliding(e:Event):void{
- for(var i:int=0;i<numChildren;i++){
- var mc:MovieClip = getChildAt(i) as MovieClip;
- //獲取舞臺(tái)中的影片剪輯
- mc.x-=5;
- //影片剪輯x坐標(biāo)減5,即不斷左移
- if(mc.x<=-560)
- mc.x=560;
- //如果影片剪輯x坐標(biāo)小于等于-560(影片剪輯的長度大?。?,則x坐標(biāo)變?yōu)?60
- mc.addEventListener(MouseEvent.MOUSE_MOVE,stopSliding);
- //當(dāng)鼠標(biāo)經(jīng)過影片剪輯時(shí)調(diào)用stopSliding()函數(shù)
- mc.addEventListener(MouseEvent.MOUSE_OUT,startSliding);
- //當(dāng)鼠標(biāo)離開影片剪輯時(shí)調(diào)用startSliding()函數(shù)
- }
- }
- function stopSliding(e:MouseEvent):void{
- removeEventListener(Event.ENTER_FRAME,sliding);
- }
- //刪除偵聽ENTER_FRAME事件,即影片剪輯停止運(yùn)動(dòng)
- function startSliding(e:MouseEvent):void{
- addEventListener(Event.ENTER_FRAME,sliding);
- }
- //添加偵聽ENTER_FRAME事件,即影片剪輯繼續(xù)左移
復(fù)制代碼
|