跳到主要內容

發表文章

目前顯示的是 2009的文章

米蘭數位徵Flash ActionScript互動技術助理

Flash ActionScript互動技術助理(需求人數:1人) 徵求對於Flash互動程式設計有熱情夥伴 如果你: 1. 熟悉AS2或略懂AS3 2. 期望和一個專業團隊一同合作 3. 對於互動技術有強烈的企圖心及學習心 歡迎加入我們! 這份工作的內容主要是: 1. 編寫一般互動機制的flash 2. 協助資深互動設計師完成專案 面試時請提供自己的作品做為參考 聯絡人:jason@mail.medialand.com.tw 原文連結: http://medialand.com.tw/blog/article.asp?id=1007

FlashCS4+MVC+CoverFlow效果

FlashCS4+MVC+CoverFlow效果 最近K了一些MVC的文章和技術 發現這樣的規畫真的很好用 Model:記錄變數,數值,發送事件。 View:跟Model要資料, 然後呈現。 Controller:用來改變Model的數值。 再加上之前學生的提到奶老師我所寫的CoverFlow跟真的效果有些不同 之前製作的方法: 是直接讓物件Tween到目標位置,這樣就不會整個連慣。 前一版: http://milkmidi.blogspot.com/2009/03/flash10coverflow.html 現在改成新的寫法 點選任何物件,一定都會經過中間變大的過程。 SourceCodeDownload 2009/12/28新增 點擊正中間的圖片時, 會超連結, 網址定義在xml裡, 請重新下載原始碼

Progression3 Verbose中文說明檔

Progression在使用時 只需要開啟 Verbose.enabled = true; 即可以有debug功能, 完整的場景轉場的資訊, 可惜只有日文版本才有 奶小茶我補上了中文說明, 這樣學習起來更方便 ProgressionVerbose中文說明修正檔 下載後, 解壓縮, 將 jp 資料夾 copy 到本來的類別路徑蓋掉即可 我只有增加 jp\progression\core\debug\VerboseMessageConstants.as 這裡的說明而己, 其他都沒更動。 如果發現Command的資訊太多, 只要濾掉Commnad,不要trace就好 Verbose.filteringCommand();

FLASH IFrame

FLASH能支援的html標籤有限,即使用了FLASH Player10,還是不能完整的呈現 那就在html動手腳吧 原理其實就是用div加上Iframe,只是呼叫的動作交給FLASH Flex版可以參考這個網站: http://code.google.com/p/flex-iframe/ 奶小茶我改成用FLASH製作 注意喔, 因為swf wmode使用了opaque或是transparent模式 在特定的Browser下不能輸入中文字 as3 sourceCode Download as2 sourceCode Download

facebook share小心得

最近每個案子都一定要來非死不可一下 也來分享一下最近的share小心得 先了解一下share的原理: http://www.facebook.com/sharer.php?u=+ 要分享的網址 + "&t=" + 標題; 當使用者按下上方這段網址時, 就會自動連到facebook, 如果是登入的狀態下, 就可以看到下方的畫面 網址:就是上方的 要分享的網址 縮圖:只要在你的網站上加入一段meta的資訊, 如下 <link rel="image_src" type="image/jpeg" href="http://www.absolut-rock.com.tw/images/fb200x150.jpg"> 只要把href換成你的圖片路徑即可 這裡有個小地方要注意, 如果facebook抓到一次這張圖後, 會被快取住, 之後再換圖片別人還是會看到舊的圖片喔。 決解方法就是換一個分享路徑, 比如說加個/index.html 或是 /index.aspx之類的,讓facebook認為是新的網站。 內文:會去抓網站裡的meta description的內文。 但是不是就變成每個人按下時, 圖片和內文都是一樣的呢? 如果是直接分享, 當然是呀,但我們可以用一個小技巧, 做到每個人分享時都是客製化的縮圖和內文 寫一隻轉址的程式就可以 本來分享的網址是:xxxx/index.aspx 換成xxxx/fb.aspx,再多帶一些參數 好比:fb.aspx?id=3, 該程式只要判斷id值是什麼, 然後該對映的圖片和meta丟到網頁裡 同時加寫轉址回去到index.aspx 因為檔名不同了, facebook會認為是新的路徑, 就會來抓新的資訊, 但不會被轉址 而使用者點了該網址, 就又會回到正式的網址上。就可以達到這樣的功能 還有一點, 全flash的網站, 我們經常會使用swfAddress來做到單元獨立網址的功能。 但#號會被facebook給濾掉, 就無法正常使用 一樣可以用轉址的方法, 轉回正確的網站。 可以參考 http://www.absolut-rock.com.tw 我就是用這樣的轉址方法決解#號問題

阿奶SlideMove 2號組件

繼 阿奶ScrollBar 1號 接著發怖阿奶SlideMove 2號, 功能需求很單純, 在一定的範圍內, 對指定的物件依滑鼠座標位置來滑動 1.安裝mxp檔: http://milkmidi.googlecode.com/files/milkmidiComponents.mxp 2.開啟組件面版: 3.將組件拉到場景上, 此時一樣有對映的參數來做即時preview, 直接對該組件縮放即可調整移動的範圍 4.開啟參數面版, 選擇移動方向, 實體物件。 5.配置完成啦

Flash組件一步一步來

這篇來分享一下關於製作Flash的組件 在這兒我們練習製作一個定位用的組件 參數面版上有定位的基準點和偏移值。 組件本身也是一個 MovieClip 類別, 因為要對stage做偵聽 所以一開始要去偵聽addedToStage事件。 1.AlignComponent.as package milkmidi.tutorial { import flash.display.MovieClip; import flash.events.Event; public class AlignComponent extends MovieClip{ public function AlignComponent() { addEventListener(Event.ADDED_TO_STAGE , _addedToStageHandler); addEventListener(Event.REMOVED_FROM_STAGE , _removedFromStageHandler); } private function _addedToStageHandler(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, _addedToStageHandler); stage.addEventListener(Event.RESIZE , _resizeHandler); trace(this, "_addedToStageHandler"); _resizeHandler(); } private function _resizeHandler(e:Event = null):void { } private function _removedFromStageHandler(e:Event):void { removeEventListener(Event.REMOVED_FROM_STAGE, _removedFromStageHandler); stage.removeEventListener(Event.RESIZE , _resizeHandler); } } } 2.先在畫面上繪製一個色塊(50x50),將其

阿奶ScrollBar1號

阿奶ScrollBar 1號 1.0Beta版 ScrollBar應該是Web界使用率最高的王吧 為了讓眾設計們在不想寫程式的情況下, 又想要有ScrollBar, 所以組件就產生了 下載mxp 啟動Adobe Extension ManagerCS3 (或是CS4), 並安裝該mxp 啟動 Flash , 開啟組件面版 Window > Components > Component Panel 將 ScrollComponent拉到場景上, 此時框會是紅色的, 表示參數不完整 將所需要用到的四個元素分別取上實體名稱 啟動參數面版, 依序輸入對映的名稱, 完畢後, 組件的框會變回黑色。 發怖就完成啦。 酷。 Example Download

Absolut X Rock The World 絕對 搖滾革命

新案上線 Absolut X Rock The World 絕對 搖滾革命 http://www.absolut-rock.com.tw/ 這次在技術上又是一大突破, 感謝 馬克 的支援 輸入網頁, 伺服器拍圖, Flash載入 開始搖滾革命。 Box2D音樂互動, 可以拉方塊, 可以自己畫方塊 3D Zoom 萬花筒效果 扭曲變型成 Absolut 瓶子 這次的框架是使用 Progression 4.0 Beta1.2版 跟3.62版比起來, 新版本的程式碼更精簡, Progression4.0 組件的介紹可以參考以下的網址: http://flabaka.com/blog/?p=1916 新版本的組件增加了livepreview功能, 當你更改組件裡的參數時, 場景上的組件也會一拼更動 這樣一看就知道組件的參數, 增加了 AdjustLayout 組件, 只要參數打一打, 就可以針對滿版來定位, 太好了 連程式碼都不用寫,酷,期待他正式版的到來 當然也發現了一個小Bug, 使用4.0版時, Preloader.as 去載入主 swf 時 在 IE7 下會發生 Error #2044: 未處理的 ioError:。 text=Error #2036: 尚未載入完成。 但其他Browser下都是正常的, 有空再來查查好了 在facebook share時, 遇到#號, 會自動被濾掉, 這樣swfAddress就會失效 所以要加寫一個轉址用的aspx, 分享時, 使用者貼的網址是:轉址用的aspx?id=值&其他變數=值, 點擊該網址後, 再轉回真正的網址: 如:index.aspx/#rock/?id=值&其他變數=值 這樣也可以間接做到每位使用者按下share時, 圖片和Meta都可以不同喔。

PV3D Break轉場特效

一樣是使用3D物件100%的程現方法 先使用BitmapData畫二個畫面 再丟給PV3D去細切成很多個Plane 同時轉動Plane和Camera,就可以有這樣的效果。 PV3D CameraOrbit - wonderfl build flash online

GlowingEffectMove

要製作一個當物件靠近時, 會有些像是吸過去的效果 原理很簡單, 只要加入blur和使用BlendMode.ADD即可完成 轉貼請註明出處: http://milkmidi.blogspot.com/2009/11/glowingeffectmove.html GlowingEffectMove - wonderfl build flash online

繪製透明色塊

flash8之後加入了BitmapData類別 從此能搞的效果越來越多, 在這兒介紹一下如何繪製透明色塊 原理很簡單, 在現成的BitmapData物件上, 將另一個透明的BitmapData加上去即可 在 flash 裡使用 copyPixels /* * author milkmidi * http://milkmidi.com * http://milkmidi.blogspot.com */ package { import com.bit101.components.PushButton; import flash.display.*; import flash.events.MouseEvent; import flash.geom.Point; import flash.geom.Rectangle; [SWF(width = "465", height = "465", frameRate = "41", backgroundColor = "#dddddd")] public class Eraseandredraw extends Sprite{ [Embed(source = 'assets/Demo320x320.jpg')] public static const Texture:Class; private var _container :Sprite; private var toolsize :int = 40; private var tooloffset :int = toolsize * .5; private var origbmp :BitmapData; private var drawbmp :BitmapData; private var erasebmp :BitmapData; private var _cicleMC :Sprite = new Sprite(); public function Eraseandredraw() { _cicleMC.graphics.beginFill(0); _cicleMC.graphics.drawCircle(20, 20, 20); _

milkmidiV4.0.0面版發怖

V4 面版發怖了, 整合V3版的功能 選項全都換成Icon, 比較不會暫版位 milkmidiV4 Flash Panel First row Ro: round x y 選取場景上的物件(可多選), 座標變整數 Cp: copy position 選取場景上一個物件, 將其座標暫存 Pp: paste stored postion 選取場景上的物件(可多選), 將座標設定為經由Cp功能所複製的值 Na: name by position 選取場景上的物件(可多選), 依序取名其實體名稱 按下後會再出現一個設定面版 Prefix: 新名稱 index: 起始值(數字) Layout: 由什麼方向開始命名 Left To Right 左到右 Top to Buttom 上到下 Dl duplicate layer 重製一個所選取的圖層 Second row Fs: find symbol in library 選取場景上一個物件, 找到對映的元件庫索引 Hb: hitArea Button 建立只有感應區範圍的 Button 元件 畫一個色塊, 按下此功能即可 La: label 選取場景上一個物件, 為其增加一個文字表籤 發怖後, 該文字會自動消失, 主要是在fla階段時方便找元件 Cl: change class name 單選物件時, 可以直接更改 Class 和 BaseClass 多選物件時, 可以直接更改多物件的 BaseClass Tn: trace selected name 選取場景上的物件(可多選), 將其實體名稱輸出到面版上 方便寫as時使用 Sb: smoothing bitmap 選取場景上一個點陣圖 , 或是多選元件庫裡的元件 開啟平滑化功能

flash right click

Flash按下右鍵, 會出現預設的選單, 從Flash7之後, 裡面的選單功能能自定, 但還是有固定的二個選單一定會出現, 假設想要知道使用者按下右鍵, 同時選單不要出來的話 可以參考這個網站: http://www.uza.lt/rightclick/ 原理是使用JS, 當使用者按下右鍵時, 就呼叫Flash裡的函式。 這樣在開發Game時又多了一個選擇。 但還是有個小問題,因為Flash的wmode模式必需設為transparent或是opaque 這樣在特定的Browser下是不能輸入中文的。

氣泡事件與客製化事件

AS3最好用的就是新的事件流 而且可以使用氣泡事件的方法, 一路往上打, 非常的好用 不要再寫像是AS2的 parent.parent.parent.gotoAndPlay(2)了 假設場景結構如下 Stage MainTimeline Loader(載入Child.swf) 當Child.swf裡的按鈕被按下時, 主時間要開始播放 可以用類似AS2的寫法是 MovieClip(parent.parent).gotoAndPlay(2); AS3,可以叫Child.swf發送氣泡事件往上層打, 一路的可視可件都可以偵聽的到。 如果想要發事件時, 一起帶個參數出去 可以寫個 get 的屬性, 透過偵聽者函式 e.target即可得到發出事件者 或是可以發送一個客製化的事件, 就不需要寫 get 屬性。 Child.swf Child.as 該swf上有二個按鈕, 名稱為:btn_mc , btn2_mc package { import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import milkmidi.CustomEvent; /** * ... * @author milkmidi */ public class Child extends Sprite { public var btn_mc :MovieClip; public var btn2_mc :MovieClip; private var _msg :String = "我是Child.swf的變數"; public function Child() { btn_mc.buttonMode = true; btn_mc.addEventListener(MouseEvent.CLICK , _btnClickHandler); btn2_mc.buttonMode = true; btn2_mc.addEventListener(MouseEvent.CLICK , _btn2ClickHandler); } private funct

二篇很實用的Facebook App開發心得

最近的 facebook 非常的火紅, 什麼活動都想辦法要跟 fb 結合一下 必竟朋友之間的傳遞是最有效的廣告 我自己只研究了一點點的fb app應用, 還沒有很熟 有興趣的朋友可以先參考這二篇教學, 寫的很清楚喔 Jason http://blog.iamjason.com/2009/09/facebook-flash-application4.html 網路基因 http://blog.webgene.com.tw/?p=1085

stage與AddedToStage

無法取存 null 的參考屬性或方法 這大概是 AS3 最常出現的 error 最容易發生在 stage 的屬性使用 所有的 DisplayObject 物件都有 parent(上一層的容器) root(該swf的最上一層容器) stage(唯一的 Stage 類別) 但這三個屬性一開始都是 null 一定要當該可視物件被加入到清單裡, 屬性才會有值 var _mc:MovieClip = new MovieClip(); _mc.parent; _mc.root; _mc.stage; //通通都是 null var _spr:Sprite = new Sprite(); _spr.addChild(_mc); _mc.parent; //可以得到 _spr物件, 因為被加入了 //但root和stage還是null //this是主時間軸 this.addChild(_spr); //這時_mc.root, _mc.stage才會有值。 而在寫 Class 時也一樣 package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { public function Main() { trace(stage); //如果直接執行該swf, stage是有值的 //但如果是被載入, stage一開始是null //要避免這樣的問題, 就直接偵聽 AddedToStage 事件即可 if (stage) init(null); else addEventListener(Event.ADDED_TO_STAGE , init); } private function init(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, init); //把要做的事寫在這兒 //這樣就可以確保 stage 屬性一定有值 } } }

米蘭數位2010強力徵才

2010強力徵才 資深網頁設計師+資深創意企劃+網路媒體企劃+專案執行+行政助理 因應2010年之業務發展需求及組織調整 米蘭2010年強力大徵才行動開始囉!!! 如果你(妳)對數位行銷有相當的興趣與熱忱 能體認這行業的辛酸甘苦 歡迎您來一同在浪頭上向前進! 原文網址: http://medialand.com.tw/blog/article.asp?id=1007

使用mxml來製作Flash

一般來說, 要產生swf格式有很多方法 1.直接使用Flash發怖.fla , 但大部份 Flex mx 類別都無法使用 2.使用 Flex 標準 mxml發怖, 但檔案 200k 起跳 經過不斷的爬文, 發現 mxml 只是一個序述的格式, 也就是可以完全的客製化表籤名稱 這樣就可以使用 mxml 來寫 as, 只要不用到 mx 類別, 就不會變胖。 參考了這幾個網站得來的心得: http://www.ryancampbell.com/2009/08/26/using-mxml-without-flex-example-and-source/ http://pv3d.org/2009/03/17/mxml-without-the-flex-framework/ 最好用的當然是 Bindable 了呀 只要寫{xxxx}就可以直接挷定, 不需再像寫.as一樣寫一大堆了。 而視覺元件可以用Flash製作成.swc來使用 程式碼: MXMLContainer基底用的類別, 是 extends Sprite不是UIComponent喔 <br />package milkmidi.mxml { <br /> import flash.display.DisplayObject;<br /> import flash.display.Sprite; <br /> [DefaultProperty("children")]<br /> public class MXMLContainer extends Sprite { <br /> private var _children :Array; <br /> public function MXMLContainer() { <br /> } <br /> public function get children():Array{<br /> return _children;<br /> } <br /> public function set children(pArr:Array):void { <br

MQuery2.0.2發怖

這次更新了自己的類別檔MQuery, 版本為2.0.2 和之前的1.0用法都一樣, 新增了許多的功能, 為了都是要減化 AS3 的程式碼。 <br />//標準 Flash AS3 寫法, 還不包含移除事件.<br />clip_mc.addEventListener(MouseEvent.ROLL_OVER , clip_mc_rollOverHandler);<br />function clip_mc_rollOverHandler(e:MouseEvent):void {<br /> clip_mc.gotoAndPlay("over");<br />}<br />clip_mc.addEventListener(MouseEvent.ROLL_OUT , clip_mc_rollOutHandler);<br />function clip_mc_rollOutHandler(e:MouseEvent):void {<br /> clip_mc.gotoAndPlay("out");<br />}<br />clip_mc.addEventListener(MouseEvent.MOUSE_UP , clip_mc_mouseUpHandler);<br />function clip_mc_mouseUpHandler(e:MouseEvent):void {<br /> trace("clip_mc onRelease")<br />}<br />//MQuery, 仿 AS2 的寫法。<br />$(clip_mc).onRollOver = function():void {<br /> this.gotoAndPlay("over");<br />};<br />$(clip_mc).onRollOut = function():void {<br /> this.gotoAndPlay("out");<br />

Embedding JavaScript into a SWF

Flash 可以使用 ExternalInterface 類別來呼叫外部的.js函式 但前提是該html需要事件把js寫好 AS3之後, 可以把js的function整個包成.as裡, 一樣透過ExternalInterface 呼叫即可 在這個範例, 我使用了bit101的Button組件, 你可以換成自已的按鈕。 透過 XML 的 CDATA, 把整個js包進.as檔裡。 <br />package {<br /> import com.bit101.components.PushButton;<br /> import flash.display.Sprite;<br /> import flash.display.StageAlign;<br /> import flash.display.StageScaleMode;<br /> import flash.external.ExternalInterface;<br /> /**<br /> * ...<br /> * @author milkmidi<br /> */<br /> public class EmbedJSExample extends Sprite { <br /> public function EmbedJSExample() {<br /> stage.align = StageAlign.TOP_LEFT;<br /> stage.scaleMode = StageScaleMode.NO_SCALE;<br /> <br /> <br /> new PushButton(this , 0, 0, "Alert", function ():void { <br /> ExternalInterface.call( JSScripts.alert , "FlashCallJS" ); <br /> });<br /> <br />

Progression3 tutorial part2

上一篇 簡單分享過Progression全組件式的寫法 雖然方便, 但擴充性並不強, 要寫一個專案, 還是需要乖乖來寫程式 玩Progression要先搞懂三個要點: 1. 場景 ScendObject 他是Progression的整個核心架構 你可以想成html, 一個scene就是一頁html 該scene要有什麼元素, 都由這個SceneObject來管理 SceneObject有四個重要的事件: _onLoad:當該場景被載入時。 _onInit:當該場景被初始化。 _onGoto:當該場景切換到別的場景時。 _onUnload:當該場景被移除時。 SceneObject的生命週期就是走這四個事件。 只有最上一層的主場景_onLoad只會發生一次 _onUnload永遠不會發生, 這個後面會再補充。 2. 可視物件 CastSprite, CastMovieClip 跟一般的Sprite, MovieClip使用起來差不多 但有二個重要的事件。 _onCastAdded:當透過new AddChild 或是 new AddChildAt 加入該物件時, 會發生的事件 _onCastRemoved:當透過new RemoveChild 移除該物件時, 會發生的事件。 3. Command Progression提供了許多的 Command可以使用 Command Design pattern的好處就是可以依序的執行Command 跑完A, 再跑B , 再跑C, 所以可以很方便的製作單元切換的進退場效果。 像第二點的new AddChild就是 Command的其中一種 一個專案一般只會有一個Progression實體物件。 var prog:Progression= new Progression( 'index', stage, IndexScene ); 'index':為該專案的Progression唯一的 Key 值, 只要key值不同, 彼此寫的Progression就不會打架 stage:把stage實體傳入 IndexScene:則是最上一層的 SceneObject, 其他的場景就由這裡開始加入 在這兒範例裡, 做了一個很簡單的架構, 好讓快

Hack手法強制執行垃圾回收

一起來說 Flash 垃圾回收機制是自動發生, 無法透過手動呼叫控制, 而我們若要強制啟用垃圾回收機, 則需要用一些非正規手段。 在這兒我們產生一萬個 Sprite ,並繪製色塊, 一秒鐘後, 將一萬個Sprite移除。 此時可以看到記憶體還是這麼的高。 透過使用 try { new LocalConnection().connect("milkmidi"); new LocalConnection().connect("milkmidi"); }catch (err:Error){} 記憶體就整個降了下來。 其原理就是故意使 swf 在運行時出錯, 然後throw出錯誤, 而同時通過catch error來繼續運行swf文件 而垃圾回收機則會在swf拋出錯誤的時候, 被強制執行一次 以清除 flash 內無效的數值, 減少資源的消耗。 但不是所有的throw錯誤都會發生垃圾回收。 至少這個方法是可行的。 要檢測你的swf用了多少的記憶體量, 可以使用Mr.doob所所的Stats類別來做監控。 http://code.google.com/p/mrdoob/wiki/stats package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.net.LocalConnection; import flash.utils.setTimeout; import net.hires.debug.Stats; public class HackDemo extends Sprite { private const AMOUNT :int = 10000; private var _arr :Array; public function HackDemo(){ createTenThousandObj(); addChild(new Stats()); setTimeout( removeTenThousandObj , 1000); //雖然物件已經被移除, 但memory還是佔了約 33。 setTimeout(

PV3D Pivot

away3d能直接修改物件的中心點 但PV3D並沒有該屬性, 但能透過以下三種方法達到一樣的效果。 1.用DisplayObject3D多包一層。 將物件加入到該DisplayObject3D, 然後對他做旋轉。 http://wonderfl.net/code/7fbfda83de4c282f304b3f11ef59575a1a10d484 2.直接去修改物件的Vertex3D座標。 http://wonderfl.net/code/b7e4f5b3650731820256cf7fbb3461662e2ec0d8 3.使用as3dmod提供的Pivot來更改。 要先下載 as3dmod 類別喔。 package { import com.as3dmod.modifiers.Pivot; import com.as3dmod.util.ModConstant; import com.as3dmod.ModifierStack; import com.as3dmod.plugins.pv3d.LibraryPv3d; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.primitives.Cube; import org.papervision3d.cameras.CameraType; import org.papervision3d.view.BasicView; import flash.events.Event; public class PivotExampleas3dmod extends BasicView { private var do3d:Cube; public function PivotExampleas3dmod() { super(800, 600, true, false, CameraType.TARGET); init3DObject(); startRendering(); } private function init3DObject():v

[新案上線]TOYOTA NEW YARIS-注目!我的代表色!

[新案上線]TOYOTA NEW YARIS-注目!我的代表色! http://yaris.toyota.com.tw/ 這次依然使用超好用的 Progression Flash Framework來製作 也嘗試了把所有flash的設計元件製作成swc, 透過FlashDevelop來發怖整個專案 這樣的製作方法超好用的啦, 發怖速度快, 終於可以不用開超慢的CS4, 又可以有Flash10的功能, 推。 身為一位專業的AS程式設計師, 一定要加個密技的啦 只要在輸入名字的欄位上,輸入大寫的RAINBOW 就會有隱藏版的畫面喔 而開場的吸入效果, 則是參考clockmaker製作的GinnyEffect http://wonderfl.net/code/b8ec2e7155357ddc65d21eb8b1fa2e94c8363cfc

PV3D CubeInteractive

如何使用PV3D, 針對單一Cube偵聽點擊時的面呢 不需要去貼六個Plane, 只需要對Cube做一般的InteractiveScene3DEvent 透過e.face3d,即可得到點擊時的面物件。 再透過e.face3d.material.name來做判斷, 就可以完成 PV3D CubeInteractive - wonderfl build flash online

Dictionary And Proxy

今天來介紹二個 AS3 新增的二個類別(AS2沒有這東西喔) Dictionary 簡單來說跟 Object 和 Array 是做一樣的事。 是用來索引物件用的類別。 Array是用數字來當做 Key 值。 _array[0] = "字串1"; _array[1] = "字串2"; 當 _array[0] = "字串3"; 時, 本來的值就會被取代掉 trace(_array[0]) //得到 字串3 Object是使用String來當作 Key 值 _obj['key'] = "String1"; _obj['key2'] = "String2"; (或寫成_obj.key2 = "String2";) 當 _obj['key2'] = "String3"; 本來的值也會被取 trace(_obj['key2']) //得到 String3 Dictionary 是把'物件', 當作索引值, 每個物件都是獨立單一的, 這樣就可以確保索引值是唯一的。 var _dic :Dictionary = new Dictionary(); var _mc:MovieClip = new MovieClip(); var _mc2:MovieClip = new MovieClip(); //建立二個MovieClip _dic[_mc] = "Dictionary Value1"; _dic[_mc2] = "Dictionary Value2"; 用for in 掃一下內容。 for (var d:* in _dic) { trace(d, _dic[d]) } // [object MovieClip] Dictionary Value1 // [object MovieClip] Dictionary Value2 就可以得到當初寫入的值了 , 記得, 不要時一定要delete掉, 否則物件的指派還在 就不會被記憶

Progression專案上線, 聖克萊爾

新案上線 聖克萊爾 http://mp3.stclare.com.tw/ 這次專案上完整的使用Progression FlashFramework, 嚴格來說, 還真是好用, 決解了swfAddress網址切換的問題 單元進退場的問題, 推薦給大家研究 以後做Event Site, 用他就對了 之後再來分享一下使用心得

Away3D CubeOpen

分享一下小弟在製作miniConcert網站的技術和原始檔: http://miniconcert.milkmidi.com/ 這次練習了使用Away3D, 寫起來和PV3D差不多, 概念上都一樣 而Cube打開是使用六個Plane拼成的, 傳值構通是使用Singleton Model來呼叫 並加入了新的相量3D物件, (PV3D也有)。 原始檔: 需要下載away3d,Tweener,TweenMax三個類別才能發怖程式碼喔! SourceCodeDownload