跳到主要內容

Tweener載入圖片特效

借一下Albert的網站來做個教學
http://www.albertlan.com/client/mocafusion/
點選網站WORKS選項
小圖被點下後, 開始載入圖片,
後方的背景會跟著縮放, 載入完成後, 會有一個亮度的效果
製作方法如下:

1.按下按鈕後, 開始載入指定的圖片
2.讓背景的黑色框縮小成280x22
讓進度bar縮小成2x20, 當縮小完成後, 開始指入圖片
3.載入進度同時, 讓進度bar縮放。
4.載入成功後, 讓進度bar縮放跟圖片一樣的寬高。
讓背景縮放比圖片的寬高都多出20。
同時讓圖片至中。
5.圖片由亮至沒有效果。
import caurina.transitions.Tweener;
//匯入Tweener
import caurina.transitions.properties.ColorShortcuts;
//匯入ColorShortcuts
ColorShortcuts.init();
//啟動ColorShortcuts.init函式
//這樣即可在Tweener裡來調整亮度。

var ldr:Loader = new Loader();
this.addChild(ldr);
//Loader物件, 載入圖片。
ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler);
//偵聽載入進度。
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
//偵聽完成進度

b0.addEventListener(MouseEvent.CLICK,clickHandler);
b1.addEventListener(MouseEvent.CLICK,clickHandler);
//偵聽場景上的按鈕。
function clickHandler (e:MouseEvent):void {
  if(e.currentTarget == b0){
    loadImage("1.jpg");
  }else{
    loadImage("2.jpg");
 }
}
function loadImage (pURL:String):void {
 //按下按鈕後。
 ldr.visible = false;
 //讓ldr不可見。
 Tweener.addTween(progress_mc,{
  time:.7,
  width:2,
  height:20
 });
 //使用Tweener修改progress_mc的寬高。
 Tweener.addTween(bg_mc,{
  time:.7,
  width:280,
  height:22,
  onComplete:function(){
   ldr.load(new URLRequest(pURL));
  }
 });
 //使用Tweener修改bg_mc的寬高, 完成後開始載入圖片。
}
function progressHandler(e:ProgressEvent):void {
 var _percentage:Number = e.bytesLoaded/e.bytesTotal;
 progress_mc.width = 280 * _percentage;
 //載入進度。
}
function completeHandler(e:Event):void {
 ldr.x = stage.stageWidth/2 - ldr.width/2
 ldr.y = stage.stageHeight/2 - ldr.height/2
 //載入完成後, 讓圖片置中
 Tweener.addTween(progress_mc,{
  time:.7,
  width:ldr.width,
  height:ldr.height
 });
 //修改progress_mc的寬高,和圖片一樣。
 Tweener.addTween(bg_mc,{
  time:.7,
  width:ldr.width +20,
  height:ldr.height +20,
  onComplete:onTweenerComplete
});
}
function onTweenerComplete () {
 ldr.visible = true;
 //讓圖片出現。
 Tweener.addTween(ldr, {time:0, _brightness:2.5 } );
 //把亮度調高,再使用Tweener讓亮度變回0
 Tweener.addTween(ldr, {time:.8, _brightness:0 } );
}
附上AS2和AS3的原始碼
AS2_AS3_SourceCodeDown

留言

匿名表示…
想請教一下 奶茶
這個範例中,如果我同時要載入數個圖片 那要怎麼去個別指定loader去做各自載入圖中及載入完畢的動作??
milkmidi寫道…
function completeHandler(e:Event):void {
//使用e.currentTarget.loader
//就可以得到發出件的Loader了
}
匿名表示…
老師您好:
我需要載入約十張照片
關於第3個按鈕部分,我有新增按鈕,按鈕命名為b2(因為第一個按鈕為b0,我是以此類推),
程式新增:b2.onRelease = clickHandler;
請問這樣對嗎?
(我是試成功按鈕部分可按,有放入其他圖片,
圖片皆有按照順序命名,但對應不到載入的圖片,問題如下)

下面這邊怎麼改都不對
function clickHandler ():Void {
if(this == b0){
loadImage("1.jpg");
}else{
loadImage("2.jpg");
}
}

之後
我看到老師幫別人回答載入多張圖片的問題
所以我將
function clickHandler ():Void {
改成
function completeHandler(e:Event):void {
後面語法也反覆寫出不同的組合,
但是怎麼試都不成功,
可以麻煩老師幫我寫出載入多張圖片的程式嗎?
雖然很冒昧打擾老師,不過我很需要研究,
所以要麻煩老師幫忙。
milkmidi寫道…
.onRelease是AS2的寫法
你是要問AS2呢,還是AS3呢
匿名表示…
不好意思!忘了說,我需要的是AS2!謝謝!
milkmidi寫道…
b2.onRelease = clickHandler;
function clickHandler ():Void {
if(this == b0){
loadImage("1.jpg");
}else if(this == b1){
loadImage("2.jpg");
}else if(this == b2){
loadImage("3.jpg");
}
}
匿名表示…
謝謝老師!
原來我一直試不成功是因為我沒加(this == b2){
^^很謝謝老師!
匿名表示…
老師,請問AS2
假設時間軸上1~10影格
我第一影格是做"Tweener載入圖片特效"
然後我做一個按鈕
在第10影格設標籤,要使按了按鈕後能跳到第10格影格

但跳到第10影格後
載入的圖片會一直出現
照理說我設標籤,要讓他跳到影格10
但載入圖片沒有因為跳標籤影格而不見
載入圖片一直顯示在上面

該寫什麼程式,讓Tweener特效跳標籤影格後,載入圖片也能隨之消失呢?
milkmidi寫道…
那就手動把他移除了
xxx_mc.removeMovieClip();
這樣即可
匿名表示…
謝謝老師都很有耐心幫我解答問題!^^
真的很感激!!!
匿名表示…
老師,請問一下,如果我要像
http://www.albertlan.com/client/mocafusion/
裡面的WORKS一樣,要一點進去就自動load第一張圖片,我要加哪句語法,然後那句語法位置要放在誰和誰的中間呢?我需要的是AS2。謝謝老師!
milkmidi寫道…
加這行即可
loadImage("1.jpg");
匿名表示…
老師想請問一下,為什麼AS3.0的寫法,你直接用loadImage就可以載入圖片了,而沒有用到URLRequest,我改成用URLRequest反而無法載入圖片呢?
Unknown寫道…
樓上的兄弟,
loadImage("值'')是奶綠老師包裝的一個方法

"function loadlmage (值) { 內容 }",

內容裡兩個tweener函式庫方法的動作,在最後一個onComplete:function(){
ldr.load(new URLRequest(pURL));
} 方法

意思是tweener動作完成後,會執行新的方法,這個方法就是你常用的載入圖片AS3.0寫法
milkmidi寫道…
謝謝列夫的回答
我再補充一下
包成function的好處
就是可以漸化程式碼
以我寫的範例檔
每次都固定要做的事
1.載圖,
2.變亮
3.由亮變回來
這三件事
如果每次按一張圖片, 就要寫這三行程式碼,不是很麻煩嗎
那就把他包裝成一個指令
按一下就可以一次跑完
就像使用Photoshop的Action一樣
把要做的事先錄起來
按下去後,就可以批次做完
Orange寫道…
老師您好,我想請教一下
如果我想加入“下一張”和“上一張”功能按鈕,as2應該怎樣寫。謝謝
匿名表示…
老師想請問一下,tweener能否做淡入淡出的效果?參考您書中的範例,可以將PV3D中的物件移動,但若想將物件以淡出方式隱藏,在tweener中設定該物件visible:true,這樣的效果看到物件直接消失,沒有淡出的效果,不知老師能指點一下嗎?謝謝
milkmidi寫道…
將visible:false
改成alpha:0
如果是PV3D的物件話
要開啟useOwnContainer屬性喔
匿名表示…
老師請教一下,PV3D中已經建立好的物件寬度、高度,能否在tweener中放大縮小?例如cube的寬度、高度,物件建立時就已經設定好寬度和高度,Tweener中是否就沒辦法讓這個方塊寬度或是高度產生變形?
milkmidi寫道…
雖然不能直接重新指定width
但可以更改scaleX,scaleY,scaleZ
這樣試試
milkmidi寫道…
可以參考這篇
http://wonderfl.net/code/9885f475bda5c83ddf64196fc84a967ddb031d8d
去extends Plane
然後透過數學去轉換,就可以有width和height屬性
匿名表示…
老師你好
我移動了載入的位子
但是圖片載出來並沒有對應到一樣的位子
請問要怎麼改??
謝謝
匿名表示…
奶綠大

如果我單純只是要讓他移動要怎麼做?

不要用按鈕式的,要怎麼寫?

從裡面我搞不太懂!

拜託指導一下!
C.Jessie寫道…
老師~
不好意思 我是一個初學者
我想要請問一下像下面這個網站
http://www.carlmarletti.fr/
我想要練習做類似這網站的東西也可以說特效作法之類是一模一樣
那請問我一開始的flash的文件舞台的大小應該要設定多少呢?
因為我試過用不同解析度的電腦觀看這網站
都能夠完整的顯示也不會有捲軸

另外還有幾個問題
*剛點進去有一個白色刀子往右跑然後主體才出現的那個特效是如何做的呢?

*還有照片滑鼠移過去透明度的變化和點每一個項目他文字變大的速度感覺有彈性的感覺是類似像移動捕間動畫的作法嗎?

*還有每一個項目點進去之後有一個長方形然後再跑loading之後再有一個正方形的東西跑出來最後文字出現的特效是如何做的呢?

*最主要的就是當圖片出現的時候有一種彈性的感覺那是如何做出來的呢?
還有produits-verrines那項目裡面的杯子照片展示方式是用什麼程式語言阿?

不好意思... 問題很多...
如果很難解說的話您可以告訴我google搜尋時我應該打甚麼文字搜尋的到這些做法就可以了~
我可以自己研究沒關係
milkmidi寫道…
Jessie 同學
你的問題我真的很難回答你,可能需要看一下基本的書比較適合
C.Jessie寫道…
歐好的沒關係~
那我可以請問一下網站裡面produits-verrines那項目裡面的杯子照片展示方式是用什麼程式語言呢?

還有照片顯示的彈性效果又是哪一種程式語言?
匿名表示…
老師您好
努力研究完上述範例,還是有個地方不懂,想請教您了
我用AS3,一共有4個圖檔,以下語法該如何寫呢?期待您回復,謝謝
function clickHandler (e:MouseEvent):void { if(e.currentTarget == b0){ loadImage("1.jpg"); }else{ loadImage("2.jpg"); } }
maimai寫道…
我移動了載入的位子
但是圖片載出來並沒有對應到一樣的位子
請問要怎麼改??謝謝
還是一定要設為置中,無法設定精選想要的x y位置呢?我是用as2.0
Maggie表示…
老師您好,
我想請問,
我做一個舞台,設定為600x800,
上面有6個按鈕,使用"Tweener載入圖片特效",
按了之後就會外連600x800的swf,
目的是滿版並遮住6個按鈕,會另外在外連的swf做個關閉按鈕,回到起初的6個按鈕畫面,

不過,問題是外連的滿版600x800的swf,
即使遮住6個按鈕,按鈕看不到,
但滑鼠移到6個按鈕的位置,還是會顯示手指,
而且可按下並連結其他swf,

請問我該如何,把外連的swf抓進來後,讓被遮住的按鈕不能按呢?

謝謝老師!
Maggie表示…
不好意思,剛剛忘了說是AS2。

這個網誌中的熱門文章

奶綠茶新書上市_密技公怖_程式碼下載

奶綠茶第一本 Flash 書籍上市啦 博客來書籍館 Flash 3D 特效宅急便 - 商業範例隨學隨 把我對 Flash 的研究與熱愛, 全寫在其中 本書的前幾章, 特別安排 ActionScript3.0 的許多範例 好讓你一步步瞭解 as2 和 as3 的差別 再安排製作動畫不可缺少的 Tweener 類別和一些常用的數學動畫公式 最後當然就來到本書的重點 PV3D 啦 從 PV3D 的原理, 基本架構一點一點的介紹 再透過許多實用的範例, 從中瞭解 PV3D 製作的小技巧 有任何書籍相關的問題, 也請不吝指教 感謝一路走來, 幫助過我的前輩們, 邦邦、Ticore、神魂、Maso、Erin 旗標出版社 小編 Bready 米蘭數位所有夥伴 米蘭數位ActionScript Team:Jason,Ash,Mark 本書大鋼: 1.ActionScript3.0概論 分析AS3的概念與語法, 從基本的滑鼠事件、外部載入、氣泡事件介紹起 適合熟悉AS2, 想轉戰AS3的人員。 2.程式碼製作動畫 使用簡單的數學公式, 套用到程式裡, 脫離死版的影格動畫。 3.製作動畫的好夥伴:Tweener 除了套用數學公式外, Tweener類別也能加速我們開發出更多的動畫效果, 不需辛辛苦苦的找公式。 4.自定類別 AS3的精神, 是在於強大的物件導向, 當然也要熟悉類別的寫法與使用。 5.Flash3D - Papervison3D 如果在Flash玩轉3D效果, PV3D是最好學, 最快上手的3D Flash Engine, 從簡單的3D概念, PV3D類別, 事件等。 6 漫天飛舞的Paper3DWorld效果 7 迷你旋轉木馬式秀圖效果 8 最經典! CoverFlow 圖像展示效果 9 天旋地轉 TiltViewer效果 10 FlatWall3D電視牆效果 11 經典旋轉木馬 Carousel3D 秀圖效果 12 光源材質展示與簡易型的方塊彈跳效果 13 載入外部3D模型與動畫 14 超立體旋轉九宮格 Box3DWorld 15 空間感與透明感兼具的 SpaceGallery 16 螺旋式 SpiralCarouse 影像展示 17 Flash10 3D功能 18 Flash效

奶綠茶photoGalleryV3.5

奶小茶的photoGalleryV3.5原始檔 2007/12/30 更新小Bug,請重新下載 線上Demo: http://milkmidi.com/photogallery/galleryv3.html 1.支援SWFAddress,讓FLASH可以有上一頁下一頁和每張獨立網址的功能 2.圖片路徑圖說經由XML來設定 3.背景依據顯示圖片,自動變化成最接近的顏色 4.非商業用途,歡迎使用並修改(如果覺得我製作的好,也煩請加入我的logo) 5.可結合後端伺服器 00.art 相本集資料夾 com 奶綠茶的Class檔 swfaddress SWFAddress資料夾 swfobject swfobject資料夾 XML galleryV3.fla 原始檔 index.html 主檔html SWFAddress.as SWFaddressEvent.as Source Code Download 解壓密碼:回覆文章,即可看見Password

超好用的無限免費網頁空間,無廣告,無流量限制

大家好,我是奶綠茶 今天來教大家如何申請一個無限免費速度又快的網頁空間 1 首先到  https://github.com/ 申請帳號(一直下一步,下一步,下一步) 2 到你的個人頁,切換上方的 tab 到 Repositories, 按下右鍵的 new 3 Repository name 一定要是這樣的格式 username.github.io 我的 github 網址是 github.com/milkmidi 那就要輸入 milkmidi.github.io 選擇 public, 這樣別人才看的到 private 有其他用途, 而且要付費才能使用 完成後按下 Create repository 5 安裝 SourceTree github 並不支援 FTP 或是網頁上傳,一定要透過指令碼 在這我們選用有圖型介面的軟體,方便大家學習 https://www.sourcetreeapp.com/ 下載並安裝 啟動後登入你的 github 帳號 6 clone 你的 github io 專案 右上角有個 Clone or download 點選後 複製 https 連結(不要選到 ssh ) 7 將 https 的連結貼到 SourceTree 8 上傳 html 到本機 github.io 資料夾,放一個 index.html 切換到 SourceTree, 這時會看到 Unstaged files 的欄位 選擇 Stage All 9 git 要求每次的 Commit, 都一定要打說明文字(好習慣) 輸入完成後,按下右邊的 Commit 10 發佈(Push),這樣就完成啦 可以到你的 http://milkmidi.github.io/ 去查看檔案有沒有出來 其他 Commit 可以想像是做一個記錄,你可以很多的 Commit 最後再一次 Push 上去 github 原本是給程式設計師用的版本控管服務 免費版提供無限空間讓你放檔案,但一定要是 public 想要有私有的 Project ,就只能付費 github.io 只能放靜態檔案,php, aspx 服務並不支援。 祝大家學習愉快 轉載請註明出處 奶綠的 github.io S