跳到主要內容

發表文章

目前顯示的是有「FLASHAS2」標籤的文章

Flash AS2 素材Banner程式小幫手

大家好,我是奶綠茶 台灣各家入口網站大多都還只支援 FlashAS2 的素材 在製作時, 會在最上方的圖層上蓋了個透明的 Button 元件 此時下方的其他元素滑鼠事件都會失效,這時可以透過奶綠老師提供的方法 讓物件擁有onRollOver,onRollOut事件 原理:改用 onEnterFrame 不斷的 hitTest 來判斷 圖層:milkmidi_as,筆者的語法,固定加在最上一個圖層即可 // milkidi MovieClip protoypte extends MovieClip.prototype.bannerMode = function(over:Function , out:Function ):Void{ trace("milkmidi bannerMode: "+this); var isOver:Boolean = false; this.onEnterFrame = function ():Void { if( this.hitTest( _root._xmouse, _root._ymouse,false )){ if( !isOver ){ over.apply( this ); isOver = true; } }else{ if( isOver ){ isOver = false; out.apply( this ); } } } } MovieClip.prototype.play2 = function(pFrame:Number , pSpeedFactor:Number, pCallBack:Function):Void{ var _frame :Number = pFrame || this._totalframes ; if (this._currentframe == _frame) { if(pCallBack != undefined) pCallBack.call(_clip); return; } var _emptyMC_ :MovieClip = null; if (this["_emptyMC_...

FlashAS2 載入 Youtube

大家好,我是奶綠茶 對非程式人員來說,學習 AS3 是非常痛苦的 所以還是有許多人是使用 AS2 來開發專案, 所以奶小茶我還是決定來寫一些 AS2 的系列教學 官方說明的 AS2 文件在這 點我 文件最小方有送上 AS2 的 fla 在這來補充幾個會遇到的問題 1. 載入 youtube 影片後, removeMovieClip 後,聲音依然存在,或是越看越慢的問題 答,不要 youtube 時,要執行 ytplayer.destroy(); 這樣才清的掉。 2. 要更改影片 size 呢 需要等到 youtube 影片載入後,呼叫 setSize(Width, Hight) 即可 轉載請註明出處 SourceCodeDownload

2008年XML班教學檔分享

這是2008年奶老師在 飛肯學苑 所開設的XML AS2班,pdf與上課原始碼 分享給需要的人,或許對學習上有些幫助 不過AS2已經要淘汰了, 還是學習AS3會比較好。 課程大鋼: CH1 ActionScript 2.0概論 .認識FLASH三元件 .FLASH路徑的認識 .FLASH 變數型態認識與命名 .變數、全域變數、局部變數 .Function .for回圈 .AS製作99乘法表 CH2 FLASH傳值的方式 .認識什麼是方法、什麼是屬性 .認識GET,POST .FLASH基本接收外部傳值的方式 .基礎XML學習 .XML架構 CH3 FLASH解析XML .解析XML .SCROLLBAR設計 .Tween組件 .漸層Mask CH4  MovieClipLoader偵聽與擴播 .FLASH基本設定語法 .MovieClipLoader物件 .FLASH與JavaScript CH5  滿版設計與圖片SlideShow .FLASH滿版設計 .FLASH SliderShow CH6 FLV Player .FLV播放器 .偵聽與事件 .FLASH Component CH7 XML PHOTO GALLERY .使用xml來製作相本,可方便新增與修改照資訊 CH8 AS3.0概論與AS3.0 XML使用 .FLASH AS3.0 概論與新功能介紹 .FLASH AS3.0 外部載入變數使用方法 .FLASH AS3.0 載入XML PDF Download SourceCodeDownload

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

選單Focus設計

在設計選單時 經常會需要將點選的單元Focus效果 當再點選新單元時, 上一個menu會自動退回一般的樣式, 原理其實只需要多用一個變數, 來記住上一個的menu是誰, 當點選新的menu時,就先叫上一個menu退回去 然後新menu再被存進新的變數即可。 package { import flash.display.MovieClip; import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; public class Demo extends MovieClip { private var _container :Sprite = new Sprite(); private var _txt :TextField = new TextField(); private var _prevItem :ItemMC = null; //建立一個變數用來記住上一個的選單。 public function Demo() { _container.x = 100; _container.y = 100; this.addChild(_container); this.addChild(_txt); for (var i:int = 0; i AS2_AS3_SourceCodeDownload

FloodEffect

Banner素材需要的效果, 所以也練習了一下 麻煩的是素材製作不能寫外部的Class檔, 好吧 那就寫在影格,複習一下AS1的類別檔寫法。 原理是使用BitmapData類別 不繼的去fillRect色塊 import flash.display.*; var mc:MovieClip = this.createEmptyMovieClip("holder", 1); mc._x = 10; var _bloodEffect:Object = new BloodEffect(mc, _global.StaticClass.drawMCReturnBitmapData(source_mc),3); source_mc._visible = false; function onMouseDown():Void { _bloodEffect.startEffect(); } SourceCodeDownload

AS2_AS3_attachMovie一問

這一陣子學生問到的問題 AS2 使用attachMovie或是createEmptyMovieClip物件時 for(var i:Number = 0;i this.attachMovie("xxx_mc","name"+i,i) } 之後可以使用name0.gotoAndPlay(2) 來呼叫name0元件。 AS3 使用new 物件 for(var i:Number = 0;i var _mc:MovieClip = new ItemMC(); _mc.name = "name" + i; this.addChild(_mc); } 為什麼不能使用name0.gotoAndPlay(2)呢 原理是這樣的 AS2 MovieClip的實體名稱, 會被視為是指定容器下的一個變數 以上方為例, 現在的時間軸就多了二個變數, name0和name1, 所以可以直接使用其實體名稱來呼叫 AS3 MovieClip的name是該物件的屬性 不屬於容器物件的變數 所以當然無法使用名稱來呼叫 以上方為例,現在的時間軸就多了二個MovieClip物件, 其name屬性為name0和name1 要呼叫該物件的話, 必需使用 var _myMC:MovieClip = this.getChildByName("name0") as MovieClip; //抓取子系物件依名稱, 再將其轉換型別成MovieClip _myMC.gotoAndPlay(2); //之後就可以使用gotoAndPlay的方法。 SourceCodeDown

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"); } ...

新案上線_資生堂心機專館

美美的資生堂心機美人又來了 今年度換了心機代言人 依然是美麗閃閃呀。 這次的專案為了讓底圖能附合每位使用者的解悉度, 還不能被切到, 也不能變型, 所以寫了一個類別來專門除處這樣的需求。 http://mq.shiseido.com.tw/#/newsproduct200901/ 點選網址後, 進入單元裡的四位Model主圖, 可以試著縮放Browser的大小 圖片都可以自動的縮放。 也分享奶小茶我所寫的程式碼: Stage.scaleMode = "noScale"; Stage.align = "TL"; import milkmidi.utils.ResizeObject; var resizeObj:ResizeObject = new ResizeObject(); /* resizeObj.addResizeTarget(目標物件:Movieclip, x軸的對齊:Number, y軸的對齊:Number, 縮放方式:String); 目標物件:要對什麼可視物件做縮放, as2只有MovieClip可以。 x軸的對齊:0表示對齊畫面左邊,0.5畫面中正間,1畫面的右邊。 縮放方式有三種: RESIZE_FULL:自動滿版。 RESIZE_WIDTH:以寬度為主。 RESIZE_WIDTH:以高度為主。 */ resizeObj.addResizeTarget(this.keyVisual_mc, 1, 0, ResizeObject.RESIZE_WIDTH); /*設定最小寬、高, 當小於該值時就不在縮小*/ resizeObj.setMinSize(800, 800); SourceCodeDownload

動態文字製作mask效果

動態文字如果直接使用時間軸來製作mask 在製作階段時雖然有效果, 但發怖時後動態文字會整個消失。 決解的方法有二個: 1.對該動態文字新增一個濾鏡效果, 然後把參數調成0, 這樣看起來就像是沒有濾鏡, 我們新增一個Blur。 發怖後態動文字即可使用時間軸來mask。 2.將動態文字包在一個MovieClip裡, 然後mask也轉成MoveiClip元件。 取好實體名稱, 筆者分別取名為txt_mc和mask_mc。 下程式碼: //ActionScript2.0 txt_mc.setMask(mask_mc); //ActionScript3.0 txt_mc.mask = mask_mc' 這樣一樣可以有mask的效果 感謝Brian補充文章: 1. 所有遮罩與遮罩下的物件都要轉成MovieClip 2. 也都要勾選"Use runtime bitmap caching" 3. 接下來也需要用奶老師提到的script設定遮罩才會生效. 4. 需要注意的是, 多個物件不能共用一個遮罩物件. 如果有多個物件需要共用到同一個遮罩, 建議是把這多個物件再包在一個MovieClip裡. 後來發現有更快的方法: 1. 將動態文字包成一個MovieClip裡。 2. 點選被遮色的MovieClip,並在下方屬性面版勾選的"Use runtime bitmap caching"。 3. 畫個色塊, 直接使用時間軸來遮色。 3. 完成。

Flash Fullscreen

在FLASH PLAYER8之前,要做滿版的設計 只能透過Javascript的呼叫 現在多了一個選擇 FLASH自已本身就能滿版, PS:client端的PLAYER版本需為9,且在滿版時,無法打字 PLAYER10新增滿版時,可以使用部份的鍵盤鍵,如上下左右鍵。 看一下F1的說明: 全螢幕模式是相應於使用者按一下滑鼠或按壓按鍵的動作而觸發的; 只要使用者不輸入,影片就無法變更 Stage.displayState。 當 Flash Player 處於全螢幕模式期間,除了可讓使用者離開全螢幕模式的鍵盤快速鍵以外 所有的鍵盤輸入動作都會停用。當使用者進入全螢幕模式時 影片上方會出現 Flash Player 對話方塊,告知使用者已進入全螢幕模式 並且可以按 Escape 鍵離開全螢幕模式。 Demo: http://milkmidi.com/demo/fullscreen/ 如果要包在html的話,在embad的屬性裡要加入allowFullScreen參數 SourceCodeDown

swfAddress基本教學

swfAddress是什麼? 簡單來說就是讓全Flash的網站,每個單元都有獨立網址。 swfAddress官網 怎麼使用呢? 先來瞭解一下他的原理 1.點擊Button時,送一個自定字串給JavaScript 2.JavaScript在網址後方加入#/自定字串/ 3.Flash端偵聽到網址改變,做對映的事。 假設有一button名為a_mc,按下後要gotoAndStop(20); stop(); SWFAddress.addEventListener(SWFAddressEvent.CHANGE,handleChange); //偵聽當網址改變時的事件。 SWFAddress.setStrict(true); //開啟嚴僅模式。 a_mc.onRelease = function() { //本來是直接寫gotoAndStop(20); //改寫成SWFAddress.setValue('/about/'); //這樣當按下後,網址就會自動加上/about/ //因為網址改變了,所以偵聽的事件就會被觸發。 SWFAddress.setValue('/about/'); }; b_mc.onRelease = function() { SWFAddress.setValue('/portfolio/'); }; function handleChange(e:SWFAddressEvent):Void { //當網址有改變時,這個函式就會被執行 var _value:String = e.value; //抓取網址#字號後的文字 trace("SWFAddress:" + _value); //之後就可以使用if來比對 //假設本來按下a_mc,是要gotoAndStop(20) if (_value == "/") { //如果是"/" 表示網址後方沒有帶任何的#值 // play(); } else if (_value == "/about/") { //如果是/about/ //表示就是a_mc被按下 gotoAndStop(20); } else if (_value == "/portfolio/") { ...

奶綠茶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

GoogleAnalytics教學

GoogleAnalytics是什麼 簡單來說,就是可以檢驗網站的點擊率 這麼說,好像小看了這套系統, 除了點擊率之外,還能夠測遞減率等等的資訊 1.先到 http://www.google.com/analytics/zh-TW/ 申請使用 2.點選右上方的: 我的 Analytics (分析) 帳戶 3.依步驟一直填一填 4.選擇新版的Google Code,並將其貼在.html裡的之前 5.FLASH端送訊號給Google。 因為FLASH的網頁,實體的html只有一頁,所以我們需要自行定義一些虛擬的html位置 假設場景上有二個Button。我希望偵測該點擊率 使用筆者所寫的Google類別 _mc.onRelease = function(){ //本來要做的事 Google.tracker("step1.html");//這裡的step1.html是我們 虛擬的 }; 之後就可以在Google分析裡,查到step1.html被點擊了多少次 6.如何檢測訊號是不是有送出去呢? 先在FireFox安裝httpFox https://addons.mozilla.org/en-US/firefox/addon/6647 重新啟動FF,開啟httpFox外掛並按下左上方的Start,開始捕抓訊號 7.httpFox可以 捕抓到client端向server呼叫的的http訊號。 有看到訊號端,有送出跟我們在FLASH端送出的名稱是一樣的 這樣就確定訊號有送到Google了 SourceCode Download

滿版底色

有時我們在Design時,會需要放置一塊底色或是線段 能讓他一直是滿版。 但用for迴圈來排好像不方便 寫了個class,方便製作這樣的功能 我在shisdieo專案裡,這個功能很常用喔 SourceCode Download