跳到主要內容

發表文章

目前顯示的是 2010的文章

Generate SWF

大家好,我是奶綠茶
在 flash 裡,想要透過程式 , 在 runtime 時產生一個新的 swf 檔
可以使用 swfassist
但無法自定類別或是屬性。

今天來介紹另一套類別:as3-commons-bytecode
這套類別可自定一個新的類別, 加入自定的屬性和方法,然後另存一個新的 swf 檔
但目前奶綠我試的結果,無法加入圖片或影格(如果有好心人事試出來的話,也請指教一下)
1. 先下載他的 類別包, 要載四個 swf
as3commons-bytecode-0.9.swc
as3commons-lang-0.3.1.swc
as3commons-logging-1.2.swc
as3commons-reflect-1.3.3.1.swc
都在他的 project 頁面裡。

測試
/** * @author milkmidi * @see http://milkmidi.blogspot.com * @version 1.0.1 * @date created 2010/12/27/ */ package { import flash.display.Sprite; import flash.events.Event; import flash.net.FileReference; import flash.system.ApplicationDomain; import flash.utils.ByteArray; import org.as3commons.bytecode.abc.enum.Opcode; import org.as3commons.bytecode.emit.IAbcBuilder; import org.as3commons.bytecode.emit.IClassBuilder; import org.as3commons.bytecode.emit.IMethodBuilder; import org.as3commons.bytecode.emit.impl.AbcBuilder; import org.as3commons.reflect.AccessorAccess; public class MyDemo1 extends Sprite { protected s…

FlashCS5 Physics

大家好,我是奶綠茶
在 Flash 裡要製作 Physics 效果, 大家該馬上連想到 Box2D
其實 Flash CS5 就有內建這樣的類別, 只是目前 Adobe 還沒公開


你可以在這個路徑下找到 Physics 類別
X:\Program Files\adobe\Adobe Flash CS5\Common\Configuration\ActionScript 3.0\libs


小弟我玩了一下,還滿好上手的, 不過沒有任何的文件, K 起來有點辛苦, 反正先完看看


參考網址:http://heftybyte.com/?p=36

線上Demo請點我
轉載請註明出處
/** * @author milkmidi * @see http://milkmidi.blogspot.com * @version 1.0.1 * @date created 2010/12/14/ */ package { import flash.display.DisplayObject; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.ColorTransform; import flash.geom.Point; import PffLib.*; import swc.Builder_mc; import swc.Circle_mc; public class CrashDemo extends Sprite { private var _world:World; public function CrashDemo() { var _physm:PhysicsManager = new PhysicsManager(this); _world = _physm.createWorld(); _world.enableCollisions(true); _world.enableFriction(true); _world.setGravity(new Point…

Adobe 2011 Flash新技術整理

大家好,我是奶綠茶
整理了一下 Adobe Flash Player 之後的幾項新功能
1.全新 3D API, 代號:Molehill
有影片有真相 http://www.youtube.com/watch?v=szaXvTsoeVs http://www.youtube.com/watch?v=tgwi0lWgX8w&feature=player_embedded http://www.youtube.com/watch?v=hCXxCD_GYTA&feature=player_embedded http://www.youtube.com/watch?v=9LAN5GHm5eM&feature=player_embedded http://www.youtube.com/watch?v=tgwi0lWgX8w&feature=player_embedded
以上看到的效果, 將來都可以直接在 Web 上直接看到效果 和我們在用的 FlashPlayer10 3D , PV3D 不同的是 支援 GPU 硬體加速了 (備註1) 目前該技術會先使用在 Adobe AIR 上(備註2) Adobe 也明確指出, 會把該 3D 功能加入來未來的 Flash Player上, 其中包含手機版的 FlashPlayer
目前只有影片, 沒有任何的技術文件可以看, 所以將來code怎麼寫 設計師怎麼做, 都還不知道
資料來源: http://labs.adobe.com/technologies/flash/molehill/
2. Flash Player10.2 一樣支援了硬體加速的影片播放 http://www.youtube.com/watch?v=geK7geL3I40&feature=player_embedded 可以在Web上播放大畫面, 高畫質的影片, 不在向之前的版本一樣會 Lag(備註3) 支援客製化的Mouse Cursors,(這個不是那麼重要, 現在技術也可以做到類似的效果) 支援Multiple Monitors影片播放, 目前的 Flash Player 在滿版播放影片時, 只能有一個畫面播放 現在司樣有多個。 資源來源: http://labs.adobe.com/technologies/flashplayer10/
3.以上的技術, 小弟覺得要用在商…

Mobile User Interface Design

Remote Device Controller in AIR for Android

大家好,我是奶綠茶
最近在研究 Android
一直在想什麼的功能, 一定要用 Adobe AIR 來寫
後來在 flashrealtime 網站上看到這一篇教學, 覺得很有趣, 就自已來實作一個

把自已之前練習的 PV3D 紙飛機 Game 加上 P2P 的程式
而 Android 端的程式是直接用 flashrealtime 提供的原始碼
方法是使用 FP10.1 的 P2P技術
只要二端是在同一個網域, 不需使用 FMS 也可以連線。
參考文章:
http://www.flashrealtime.com/game-remote-device-controller/
轉載請註明出處

米蘭創意種子(實習生)招募中!!

原文:http://medialand.com.tw/blog/article.asp?id=1295


實習不只為了學分,更為了灌溉自己
這次的實習生招募,不限於寒暑假,希望是更深入的培育

米蘭期待找到這樣的種子↓
數位向陽性;
內含許多有趣的idea成分;
對新事物能產生一連串化學變化;
並有努力想成長茁壯的積極熱血。

1.實習需求

創意企劃實習 1~2名

內容說明:
米蘭的創意企劃工作範疇,著重在創意發展,也講究細節規劃
如果你很積極,你可以學習到
如何發展一個網路廣告或病毒影片的腳本
如何規劃一個網站或網路活動的玩法、單元內容、頁面文案撰寫、動線思考…
如何思考一個數位行銷的創意
甚至 更多!!

評估依據 
創意 (30%):作品的策略思考、創意概念、文案與畫面的整體表現
認知 (30%):平常對於網路生態、廣告傳播的觀察和了解
熱忱 (30% ) :對創意與數位的熱忱
反應能力(10%):臨場表現和清楚的表達能力

聯絡與收件窗口:Carol 電話:27390000轉131
carol@mail.medialand.com.tw
信件主旨:[應徵米蘭創意種子-企劃實習,我是<<你的姓名>>]

設計實習 1~2名

內容說明:
米蘭設計師工作範疇,著重在設計執行及視覺創意表現
如果你很積極,你可以學習到
如何完成一個高質感與創意兼具的作品
如何執行一個完整專案從創意發想、動線思考、單元頁面到完成上線
如何整合設計資源做最有效的發揮
甚至 更多!!

評估依據 

FlashAS3 Countdown

大家好,我是奶綠茶
Countdown在 flash 的專案裡,應該也是很常出現的吧
所以我就把他包裝成一個 class , 方便使用
預設是抓取 client 端的時間
如果想要以伺服器時間為主的話
也只要使用 URLLoader 透過伺服器程式回傳時間
再更新我所寫的 Countdown類別可以。


Countdown.as
/** * @author milkmidi * @see http://milkmidi.blogspot.com * @version 1.0.1 * @date created 2010/11/16/ */ package milkmidi.utils { import flash.events.Event; import flash.events.EventDispatcher; import flash.events.TimerEvent; import flash.utils.Timer; [Event(name = "countDownComplete" , type = "milkmidi.utils.Countdown")] [Event(name = "countDownUpdate" , type = "milkmidi.utils.Countdown")] public class Countdown extends EventDispatcher { public static const COUNTDOWN_COMPLETE :String = "countDownComplete"; public static const COUNTDOWN_UPDATE :String = "countDownUpdate"; private static const SEC :uint = 1000; private static const MIN :uint = SEC * 60; private static const HOUR :uint = MIN * 60; private static const DAY :uint = HOUR …

android開發心得1

大家好,我是奶綠茶
來筆記一下 android(Java) 的程式開發和 flash 之間的差別
宣告:
Java:類別當作宣告字(同C#)
String a = "字串";
AS3:使用var加上:類別的方式
var a:String = "字串";

function 宣告:
Java:回傳的型別寫在前方(同C#)
public void testFun(){
}
AS3:回傳的型別使用:型別
public function testFun():void{
}

Overloading:多載, 同以有一樣的函式名稱, 只要引數個數不同,或是引數型態不同
Java:支援(同C#)
public void testFun(){}
public void testFun(String pName){}
AS3:不支援

override:覆寫, 子類別繼承父類別, 但可改寫父類別的方法, 回傳值和引數必需皆相同
Java:支援
子類別直接寫和父類別一樣的方法即可
AS3:需加入 override 的關鍵字
function protected override testFun():void{
}

package:套件包(這個好難翻成中文)
Java:在類別的最上方輸入, 使用分號結速
package milkmidi.android;
public class xxxx(){}
AS3:在類別的最上方輸入, 使用大括號包住下方 class
package milkmidi.android{
public class xxxx(){}
}

繼承: 使用 extends 關鍵字
Java和AS3皆相同
Java和AS3皆是單一繼承
Java支援 private class, 所以可以 class 再寫一個 class
AS3不支援 private class, 最多能在 package 外寫一個 internal 的class

修飾字:private,protected,internal,public
Java和AS3皆相同

Set,Get:
Java:只能使用function來擴充
private String name;
public String getName(){return name;}
public void setNam…

android開發心得2

大家好,我是奶綠茶
研究了一陣子的 Android 開發,寫點心得來記錄一下,不然一直忘東忘西的
在使用 eclipse 開發時
會很自然的切換到 xml 來編輯 layout 或是 resource
如果此時按下 run
會產生 xxx.out.xml的錯誤, 天呀, 這什麼問題
這個問題困擾我好久, Google了一下發現
在 eclipse 中編輯 xml 檔案, 會預設用 xsl 來轉換(我也不清楚什麼是 xsl 待好心人幫我解惑)

決法1:
要執行時, 把焦點由 xml 移開到專案
在 Project->Clean 清除目前的編譯
刪除多餘的 xxx.out.xml
再重新 run 一次

超麻煩, 還好有 google , 找到另一個方法,一次決解他
決法2:
http://www.cnblogs.com/chunhui588/archive/2010/06/26/Android-debug-main-out-xml-parsing-error.html

這樣就清爽多了.

SoundMixer+SoundRecoder

大家好,我是奶綠茶
之前有研究如何使用FP10
來改變聲音的特效,加上 Scratch 效果
現在再補上錄音的功能
就能夠把混音後的聲音,存成一首新的mp3下載。



點我看Demo
在轉換的過程中,會非常的吃效能,特別是在 .wav 轉 .mp3的時,再來想想看有什麼決解方法好了。



參考文章
將 Sound 錄成 .wav的方法
http://active.tutsplus.com/tutorials/actionscript/create-a-useful-audio-recorder-app-in-actionscript-3/

將 .wav 轉存成 .mp3的方法

http://code.google.com/p/flash-kikko/

優化你的flash, Part2

大家好,我是奶綠茶
在上一篇優化你的flash, Part1, 已經介紹了一些優化關念
接著再補上許多不錯的文章,奶小茶我也是看了才了解如何優化 Flash
enjoy!;

http://www.slideshare.net/aquarianboy/2010-0700-as3-better-practice

http://alexgblog.com/?p=392

http://www.gskinner.com/talks/resource-management/(這篇一定要看)

http://businessintelligence.me/projects/performance_tester/performanceTester.html

http://designplusplus.blogspot.com/2009/08/as3.html

AIR for Android Demos

大家好,我是奶綠茶
熱血了一陣子的Android
總於有一些些的心得
這次先使用Adobe AIR
原生的Java程式還在學習中
錄製了一段影片
使用到的類別有
StageWebView,
CameraUI,
CameraRoll,
Accelerometer,
GPU

原程碼待整理好再來分享

window open會被Chrome檔掉的問題

大家好,我是奶綠茶
最近在案子上發生了這樣的問題
Flash呼叫JS去 window open一個網站,會被 Chrome 檔掉(IE,FF皆正常)

檔掉的訊息位置超不起眼的啦


寫個JS來測試
//JS端
如果是一般的html,觸發windowopen事件是寫在onclick上就會正常

Flash端使用
ExternalInterface.call( "openTest"); //就會被檔掉
決解方法就是不要使用ExternalInterface,改用一般的 navigateToURL 去呼JS
var jscommand:String = "openTest();"; var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);"); navigateToURL(url, "_self"); 這樣就可以了
參考文章:http://forums.adobe.com/message/3080477

載入Youtube影片 Part2

大家好,我是奶綠茶
再上一篇載入 Youtube 影片
我們已經知道如何使用 Flash 載入指定的 Youthbe影片
那如果還要其他的資訊呢? 影片縮圖、viewCount之類的話, 還需要再補一些程式碼。
先來處理圖片的部份, 其實很簡單。
以這個網址為例:
http://www.youtube.com/watch?v=siQgD9qOhRs

首頁要先得到v=後面的影片id

然後用Loader載入這個路徑即可。
http://i.ytimg.com/vi/{VIDEO_ID}/{DEFAULT}.jpg
VIDEO_ID:就是填入影片id,siQgD9qOhRs
DEFAULT:圖片的格式,
可以輸入的值有:
default,預設的圖片
1,大張的圖片
2,大張的圖片
3,大張的圖片
(1,2,3只是差在拍的時點點)
這四個


得到viewCount
路徑:
http://gdata.youtube.com/feeds/api/videos/{VIDEO_ID}
用URLLoader載入這個路徑即可, 預設是得到 XML 格式
如果喜歡用 JSON 格式的話,就改用這個網址:
http://gdata.youtube.com/feeds/api/videos/{VIDEO_ID}?alt=json

載入XML後, 解悉的部份需要加工一下,因為該格式有使用到 namespace
載入後的XML格式:

Flash 宣告對映的namespace
var xml:* = 載入後的 XML var yt:Namespace = new Namespace("yt","http://gdata.youtube.com/schemas/2007"); var il:* = xml.yt::statistics; trace("yt::statistice",il.@viewCount)
完整程式碼:
/** * @author milkmidi * @see http://milkmidi.blogspot.com * @version 1.0.1 * @date created 2010/09/24/ */ package { import com.adobe.serialization…

Flash載入youtube影片

大家好,我是奶綠茶
想在自已的網站裡載入youtube的影片
這樣就可以吃他們的頻寬,那該如何製作呢
當然有好心人事包裝好類別檔了呀
http://code.google.com/p/youtubechromelesswrapper-as3/downloads/list
透過該作者包裝的類別,就可以載入youtube的影片
優點就是播放界面可以自已設計,
缺點當然就是播放介面的功能要自已寫。
PS:影片上會有youtube的logo。

另一位作者寫的類別
http://www.abdulqabiz.com/blog/archives/2007/04/02/constructing-youtube-flv-url-on-client-side-without-any-server-side-script/
優:會把整個youtube的播放介面整個載入進來
缺:播放介面就是用預設

補:現在Youtube的Player, 已經支援 AS3 版本了,所以上方那幾個網址都可以不用看
官方有提供AS3的API, 只要載入即可, 不過因為回傳的都是Object, 寫code沒有提示
所以我把類別再包裝一次,方便使用:
線上Demo:按我
使用方法如下:
import milkmidi.events.StreamEvent; import milkmidi.events.VideoStateEvent; import milkmidi.media.YoutubeLoader; //先建立一個 YoutubeLoader 實體 var p:YoutubeLoader = new YoutubeLoader(true); //參數一:是否自動播放。 p.addEventListener(YoutubeLoader.READY, handleYoutubeReady);//當YoutubePlayer準備好時 p.addEventListener(YoutubeLoader.ERROR , function (e:Event):void { trace(e); }); p.addEventListener(VideoStateEvent.STATE_CHANGE , _AntYoutubeLoaderStateChangeHandler); p.addEventListener(Strea…

FlashDevelop Syntax 的小問題

大家好,我是奶綠茶。
在使用一個類別時, 會很自然的依賴 FD 的程式碼提示
最近就遇到無法完整提示的小問題
情況是這發生的:
先寫二個 interface , 叫 IFace1 和 Iface2
package { public interface IFace1 { function abc():void; } } package { public interface IFace2 { function abc2():void; } } 再寫一個 interface 叫 Iface1And2 , extends IFace1 和IFace2
package { public interface IFace1And2 extends IFace1 , IFace2 { function abc12():void; } } 寫一個測試用的文件
package { import flash.display.Sprite; public class InterfaceTest extends Sprite implements IFace1And2 { public function InterfaceTest() { var _test:IFace1And2 = new InterfaceTest(); //這時使使用 _test. 提示時, 只會出現 abc() , abc12() , 會抓到不 IFace1And2 extends 的第二個方法。 } public function abc12():void{ } public function abc():void{ } public function abc2():void{ } } } 有圖有真相:

使用的是 FlashDevelop 3.0.21版,如果大家有解法的話還請提供
補充:在 Flash Builder 上,提示都抓的到。

擴增實境AR的受權費用

大家好,我是奶綠茶。

因為工作的關系, 所以有使用 Flartoolkit 製作一些商業網站,
但這個技術本身不是免費的喔, 是需要受權金的,

台灣代理的公司是:ARTruth 擴增實境
(以下為原文)
擴增實境AR的軟體:
包括 FLARToolkit, ARToolkit, 無邊框的Natural tracking NFT,
材質感更佳的osgARToolkit, 運用在手機的iPhone ARToolkit或android 等等都可找在下洽談版權。
如果您沒有透過此軟體營利(商業化使用),而是個人實驗性質,想公開在網站上分享,
也請您email告知本公司一聲,以免產生誤會。
如果您是學校師生非營利性質使用,可享正式授權版優惠折扣。
歡迎與在下聯繫。請聯絡service@ar-truth.com。擴增實境股份有限公司吳小姐留言。

有興趣的朋友,可以直接和該公司連絡。
enjoy!

優化你的flash, Part1

大家好,我是奶綠茶。
今天來討論一下關於 優化
在這我們就先從最簡單的 k 數來開始吧
假設你的網站結構:
Main.swf
會載入Child.swf
而這二個 swf 都共同用到了一個類別(在這兒以TweenMax來做說明);(Cow, 又不自覺得在最後面加了分號結束)
如果TweenMax的class有20k, 二個swf就會增加40k, 三個就60k, 100個就.....
在ActionScript3開始, 類別是能夠共用, 也能跨不同的 swf 來取得
所以我們可以把 TweenMax 的類別 ,compile進 Main.swf 裡
而其他被載入的就不需要把該類別 compile 進去

1.安裝 TweenMax 類別(使用這個方法一定要用swc, 不能是.as)
開始 Publish Settings, 點選左邊的 Settings

切換上方tag至 Library path

加入 greensock.swc (路徑是放在和fla路徑的 libs 資料夾裡)

Main.fla和Child.fla都要做上方的設定
2.二個fla都使用TweenMax來做一段動畫, 發怖成 .swf
大概是 20 k 左右


3. 因為 Child.swf 是被載入, 所以要對他設定, 讓他不要把 TweenMax 類別 compile進去
開啟 Child.fla , 一樣切換到剛剛的 swc 路行, 點擊一下 greensock.swc 後,
上面的一排 icons 最左邊的那個(Set linkage options for a library)就變的可以點, 點他一下

把 Link Type , 切換到 External 即可, 發怖


發怖後會產生這樣的錯誤:
ReferenceError: Error #1065: 變數 com.greensock::TweenMax 未定義。
at Child_fla::MainTimeline/frame1()
這是正常的, 因為我們該訴了這個.fla, 不要把TweenMax給compile進去

看一下k 數, 已經變成了 5 K左右
使用 Main.swf 把 Child.swf ,一樣Child裡的TweenMax code可以正常的使用

所以在網站要正式上線時, 應該都要這麼做, 就可以省下 k 數了
SourceCo…

Robotlegs FlashAS3 MVC framework

大家好,我是奶綠茶
這套是近研究的FlashAS3 MVC Framework
真的很好用, 可以把程式碼切的很開,且使用上又比PureMVC順手
在學習前, 你可能需要備具一些觀念, 這樣學起來比較不會那麼吃力
1.了解什麼是interface
2.對MVC有些概念, Model , View , Controller,
3.對物件導向有些了解, private , public , extends等
4.玩過PureMVC者佳
5.受不了程式亂寫, 每次改功能都要改一堆code者

有幾篇文章可以先來續一下
官網:http://www.robotlegs.org/

Best Practices
原文:
http://wiki.github.com/robotlegs/robotlegs-framework/best-practices
簡中翻譯
http://wiki.github.com/eidiot/robotlegs-framework/372299
上面文章作者的Blog
http://joelhooks.com/

insideria.com 上介紹 Robotlegs 的文章(轉貼至http://qops.blogspot.com/2010/08/insideriacom-robotlegs.html)
AS3 Dependency Injection Demystified
Robotlegs for Framework Beginners
An Introduction to Robotlegs AS3 Part 1: Context and Mediators
An Introduction to Robotlegs AS3 Part 2: Models
An Introduction to Robotlegs AS3 Part 3: Services

補充一下:使用Robotlegs, 最好是搭配FlashDevelop或是Flex來發怖AS檔
因為裡面有用到一個Inject Tag, FlashIDE看不懂這東西, 如果真的要用FlashIDE來發怖的話
解法如下:
http://www.helmutgranda.com/2009/12/02/robotlegs-and-flash-ide-cs4-injection/

[工商服務] 米蘭數位科技上海分公司徵才

職務名稱: Flash actionscript 互動設計師(上海)
需求人數: 1人
職務類別: 多媒體動畫設計師、Internet程式設計師
職務說明: 如果你:
1. 對於互動技術有強烈熱情,追求技術與創意完美結合
2. 具有遠大的抱負與開疆闢土的野心
3. 有志前往上海,進入國際大舞台
請立刻加入上海米蘭(米狄兰营销策划上海有限公司)!


我們需要的是:
1. 需熟悉ActionScript3及物件導向,能熟練常見網站行銷用途的class,能獨立完成互動專案
2. 不需要會視覺設計,不需要懂Server端語言或資料庫, 但要有概念。
3. 實作過Flash任一種3D引擎,AR類別庫,VR效果者優先。
4. 喜歡與團隊合作的默契,我們喜歡打群架不要定孤支。
5. 具有克服問題,協調溝通的能力。
6. 樂天且積極的態度 - 工作中不忘記笑聲,閒下來時仍不時想要充實自己。
7. 自認對於異地工作能適應者。


應徵流程:
1. 履歷中必須能附上作品或是能展示能力的任何東西
2. 書面審核通過後需接受電話訪談
3. 待遇結構面議

應徵方式
職務聯絡人:林鴻儒先生
聯絡e-mail:
rainey@mail.medialand.com.tw
welson@mail.medialand.com.tw
jason@mail.medialand.com.tw

FD3 Plugin介紹 Open The Doc

大家好,我是奶綠茶
FlashDevelop3是學習AS3的最佳開發工具
除了前幾編介紹的外掛外
在推薦一個新的外掛 Open The Doc
FD3 Plugin介紹 Open The Doc
這個外掛看名稱大概也知道是跟說明文件有關
先下載.dll檔, 放到Plugins資料夾下,重新啟動FD3
就會多出一個新的Panel


設定一下第三方ASDoc路徑, 在這以Progression4來說明
上方Tools / Setting , 找到openTheDoc

點擊一下DocPaths右邊的...
將資料夾路徑填入


在你想查尋的類別上點一下,按下Ctrl+F1
就會在該面版上出現了, 超方便的,這樣就不用自已一個一個找。

強力推薦
download

Progression學習資源

20100724FlashPTT版聚的Progression教學檔

分享20100724FlashPTT版聚的Progression教學檔

Component Guide


Class Guide


Progression Scene life cycle


補充:在寫Class時,會使用他的CastPreloader, 有幾個小地方要注意一下
package milkmidi.progression { 略 public class Preloader extends CastPreloader { private var _percentageTxt:TextField; public function Preloader() { super( new URLRequest("index.swf") , false, CommandExecutor ); } override protected function atReady():void { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; _percentageTxt = new TextField(); _percentageTxt.text = "Now Loading ... 0%"; _percentageTxt.x = -300; _percentageTxt.width = 300; //在Preloader裡, 會有forgebround和backgroud二個Sprite Container,一個會在載入的swf上方,另一個在下方 //可以選擇你要放在那個位置,但就是不能寫this.addChild(); foreground.addChild( _percentageTxt ); } override protected function atCastLoadStart():void { //如果你的Loading物件是extends CastSprite系列, 一般會在asCastAdded時加入進場動畫 //但在Preloader時, 就算使用new AddChild把他加入, 該事件一樣不會發生。 //所以見意在…

FP9,FP10編碼的小問題

最近在工作上遇到的小問題, 因為客戶端系統長久下來都是使用big5
所以案子自然也跟著使用big5
在flash裡要使用使用者端的預設編碼只要加入
System.useCodePage = true;
然後外載的筆記本存成預設的ANSI格式,
就可以正常的載入中文字
在FP9之前, 都是正常
但換到FP10後, 載入後就會變亂碼
一模一樣的程式碼, 只要更改發怖的FP版本, 結果就不同, 怪。
以下為測試用的程式碼
package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.system.System; public class LoadTXTDemo extends Sprite{ public function LoadTXTDemo() { System.useCodePage = true; var _urlLdr:URLLoader = new URLLoader(); _urlLdr.dataFormat = URLLoaderDataFormat.VARIABLES;//問題是出在這行 _urlLdr.addEventListener(Event.COMPLETE , _ldrCompleteHandler); _urlLdr.load(new URLRequest("txt.txt")) } private function _ldrCompleteHandler(e:Event):void { trace(e.currentTarget.data.name); } } } 而txt.txt的記事本檔, 也只存了一段文字:name=奶綠茶
在FlexSDK3.5 , FlexSDK4.0 FlashCS5下測試, 只要是發怖成FP10就會是亂碼
發怖成FP9就正常,
決解辦法目前是這樣做。
把_urlLdr.dataFormat…

PV3D, 選擇性運算

在PV3D裡, 如何做選擇性運算呢?
通常開啟startRender()後,PV3D就會運算整個3D世界, 就算物件沒在動, 也是會整個重新算一次
這樣效能可能就會浪費掉
怎麼做到選擇性運算呢?其實很簡單

Renderer類別裡 , renderLayers函式, 第四個參數, 就能丟入你要運算的Array 3D物件
預設是null, 指的就是通通運算。
寫法長的像這樣
renderer.renderLayers( scene, camera, viewport, [3d物件1, 3d物件2]);
線上Demo
flash on 2010-7-24 - wonderfl build flash online 用這樣的小技巧,就能避開一些無所謂的運算, 如果你的PV3D是一直動
畫面整個更新的話,就沒辦法,enjoy it!

梅問題の超質感商品攝影手法大公開-搶先看!

梅干桑老師出書了,這麼好的東西一定要來推薦一下的

以下為轉貼梅問題教學網的文章
http://www.minwt.com/?p=2305
在這一本書中,也要感謝電腦人的吉清編輯,給了梅干很多的方向與想法,
這本書共有四十多個範例,其中包含了各種商品的材質,從反光、不反光、透光、曲面、非曲面....等材質
,除此之外梅干為了讓大家可快速上手,將每樣商品的拍攝過程一步一步的記錄下來,
同時還將每個打光繪製成圖解,讓人更能一目了然,並且梅干也盡量避開一些專業的術語,
以圖說的方式照著做,就可快速將商品的質感表現出來,同時本書也用最省成本的硬體設備,
拍出最優質的商品照片,而這本書共有四大個單元,分別為第一單元:基本篇、第二單元
:實際拍攝篇、第三單元:影像後製編修篇、第四單元:器材DIY篇,好啦!現在就來搶先看吧!

FlashP2P 繪圖筆

我們Flash10.1最大的新功能,就是開啟了P2P, 點對點傳輸。
所以練習了一下使用p2p的雙向繪圖筆,速度比早期使用FMS, ShareObject傳輸來的快,讚
而且Server不用寫code,酷
線上試玩
http://milkmidi.com/p2p/

目前只寫了雙人版, 一方先連線後, 會得到一個網址,將網址貼給朋友,就可以看到啟動的畫面了

AS3 Scratch

研究了好一陣子的AS3 Sound應用
可以做到增加聲音效果, 改變聲音的播放速度
還可以刮唱盤
線上Demo


點選左上方的BROWSER, 開啟本機的一首MP3, 需要幾秒鐘的聲音處理, 就可以看到效果了
目前錄音的功能還有BUG, 暫時先不管。
參考網址:
音效:
http://www.anttikupila.com/flash/soundfx-out-of-the-box-audio-filters-with-actionscript-3/

本機開啟MP3並載入:
http://www.flexiblefactory.co.uk/flexible/

補充:使用PixelBender將二首(以上)的MP3合成一首

http://www.kaourantin.net/2008/10/audio-mixing-with-pixel-bender.html#4759002868008324481

http://blogs.adobe.com/kevin.goldsmith/2009/08/pixel_bender_au.html

使用conditional compiling

在使用FlashCS4,CS5時,在Settings那有個Config constants欄位可以輸入
來紹介一下如何使用好了
簡單來說, 就是能定義一個常數, 給整個專案使用。
預設就有一個CONFIG::FLASH_AUTHORING,值為true


自定新增二個CONFIG::debug和CONFIG::release, 一個為true, 另一個為false
可以為Boolean,int,String等類別


怎麼取值呢? 很簡單,只要打上自定的Name名稱就可得到對映的值
進階用法, 可以透過該變數來決定要不要編譯該程式碼, 這功能非常的好用
Debug時, 可以將一些trace和測試用的程式碼編譯進去
但上線後, 以前可能要過變數來決定, 但還是會編譯進去,
現在使用這樣的方法來決定

寫一個測試用的類別, 加上判斷式。
package { import flash.display.Sprite; public class Demo extends Sprite { public function Demo() { trace("Demo.Demo"); CONFIG::debug { trace("debug"); } bbb(); ccc(); } public function aaa():void { CONFIG::debug { trace("test is true"); return; } trace("test is false"); } CONFIG::debug public function bbb():void { trace("debug.bbb"); } CONFIG::release public function bbb():void { trace("release.bbb"); } public function ccc():void { trace("ccc"); } } …

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 fscommand 開啟檔案

Flash發怖成exe檔後,能夠使用
fscommand("exec", "檔案");
這樣的語法來開啟, 檔案一定要放在fscommand資料夾下才可以
如果要開啟其他格式的檔案(如:pdf)
可以寫一個.bat檔
flash呼叫該bat, 然後bat再開啟pdf
但執行時會出現一個cmd的黑框,


請哥哥幫我寫了一隻小程式, 就可以決解這樣的小問題
使用方法如下:
flash端呼叫:
fscommand("exec", "test.exe");
test.exe即是小程式的檔名。
然後該程式會去讀取同檔名的test.txt檔
再test.txt檔裡輸入要開啟的pdf
完成啦,這樣就不會出現黑色的框了。

SourceCodeDownload

TweenMax TransitionCheatSheet

TweenMax大家應該不陌生, 只是每次要查 ease 方式時, 不是那麼方便
想起 Tweener 有個 Transition 表可以查, 就把他改成 TweenMax 。
請享用


線上Demo:
http://www.box.net/shared/czmx1dh11v

SourceCode:
http://www.box.net/shared/r9crxp6kzk

Flare3D Engine for Flash

http://www.flare3d.com/
一套新的flash3d engine,
這套engine最大的強項, 就是跟3dmax整合的非常好,
到他的官網可以下載外掛檔安裝在3dmax上,筆者試過在3dmax2009,3dmax2010(64位元),皆可正常使用。
安裝好後,在上方的toolbar就會出現flare3d的選項(3dmax2010需要手動設定把該功能叫出來)


按下preveiw後,就會啟動flashPlayer,這樣在製作時就可以直接看到結果,超讚的啦


也可以看到面數和物件的資訊


更多的example,你可以在你的安裝目錄下找到Flare3D資料夾, 裡面就有flash的說明文件和swc
還有20個example可以學習參考

經試驗, 模型可以跑到七千面,很酷

Adobe Catalyst 教學一

在這次Adobe CS5產品線裡, 除了大家熟悉的軟體,
這次還推出了一個新產品,名為 Adobe Catalyst CS5
如其名字一樣,這套軟體的出現,是要來摧化設計師與程式設計師的工作流程。
要動感的視覺,程式就不好套,而程式好套,就會少了一些動態。
可以先參考 Lee Brimelow 所寫的二篇 Catalyst 教學
http://www.gotoandlearn.com/
在某個專案上, 有個需求是要做一個線上版的問卷。
會有radiobutton和checkbox等元素, 最後再把值送到資料庫,
這時就想到使用catalyst來試玩看看。
在這兒for教學, 所以只簡單做了二題,概念上都一樣,你可以自已再新增
Catalyst 輸出的格式也是.swf, 只是他使用的程式碼是 mxml ,
製作流程如下:
1.設計師的 psd 檔(圖層已分類好)
2.啟動 Catalyst ,匯入 psd 檔。
3.選擇圖層元素,將其轉換成元件(有點像是 flash 把元件轉成 MovieClip, 但 Catalyst 的元件更多)
4.製作state,有點像是flash的場景概念, 在切換state時,可以由 catalyst 來自動新增轉場效果
5.匯出成 fxp 格式, 再由 flashbuilder4 來接手寫其他的程式。

設計師的PSD檔



啟動 Adobe Flash Catalyst CS5


選擇 From Adobe Photoshop PSD File


圖層分類和 PSD 檔一模一樣


選擇要製作成RadioButton的三個元素。


在面版上,選擇Convert Artwork to Compoent, 祭到RadioButton


轉換完成後,點擊二下,即可看到RadioButton有四個state。


在RadioButton模式下, 點擊一下剛剛的文字


轉換成RadioButton的Label




線上Demo
之後再來待上FlashBuilder的教學
SourceCode Download

米蘭徵才!! AS 及 系統程式設計師

以下為轉貼米蘭blog文章
原文網址:
http://medialand.com.tw/blog/article.asp?id=1231
ActionScript3互動技術程式設計師

如果你:
1. 對互動技術或RIA具有莫名的熱情與執著
2. 希望與強力的互動團隊一起討論及開發日新月異的新技術,並樂此不疲深陷其中
3. 尋求一個舞台可以將你的技術與創意完美結合
請立刻加入我們!


我們需要的是:
1. 需熟悉ActionScript3及物件導向
2. 不需要懂Server端語言或資料庫, 但要有概念
3. 樂天且積極的態度 - 工作中不忘記笑聲,閒下來時仍不時想要充實自己
4. 喜歡與團隊合作的默契 - 米蘭是個大家庭,團隊之間互相協助幫忙讓工作更不像是工作
5. 具有克服問題的能力 - 工作上一定會遇到難題,要如何克服問題而不是被問題卡住,即使舉手尋求幫助也是克服問題的一種方法
6. 履歷中希望能附上作品或是能展示能力的任何東西

履歷請寄: jason@mail.medialand.com.tw


=============================================
資深Internet程式設計師

1.具程式開發能力3年以上
2.熟悉ASP、ASP.NET、VB.NET、C#
3.熟悉ADO.NET Entity Framework 或 LINQ
4.熟悉SQL Server資料庫設計及維護能力
5.了解AJAX、jQuery、Javascript、CSS
6.了解MS平台架構,具備伺服器架構及管理經驗
7.擅長Web Base系統開發架構規劃設計及需求分析
8.具溝通協調能力、熟悉Team Work開發模式
9.責任制,視專案狀況需配合加班

履歷請寄:
tang@mail.medialand.com.tw

Extends Singleton

Singleton Pattern在設計模式中, 是最常用到的
寫 game , 或是管理資訊, 傳值接值, 都非常的好用
但是如果要去繼承該類別呢?
最近在專案上遇到了類似的問題
Main.swf和Child.swf,共用同一個Singleton類別
理當一切都很完美
但現在Main.swf裡Singleton裡的某個方法, 是把另外一個單元裡的swc類別給加進去(大個100k)
且 Singleton 可能要經常改函式裡的程式碼, 這樣每次都要發怖二次。
而透過 Singleton 的 extends
child.swf用一個 Singleton 類別。
Main.swf用繼承 Singleton ,這樣二隻swf檔一樣可以共用同一個實體。
這樣就很適合在多人合作時, 大家要共用一個 singleton 類別
給別人簡單版的 Singleton, 而主程式的 Singleton 就可以寫上其他功能。
一般 Singleton 的寫法, 新增一個 updateInstance 函式給子類別呼叫。
/** * @author milkmidi * @see http://milkmidi.blogspot * @version 1.0.1 * @date created 2010/03/29/ */ package milkmidi.test { import flash.events.Event; import flash.events.EventDispatcher; public class MSingleton extends EventDispatcher { private static var _instance:MSingleton; protected namespace singleton; public var name: String = "MSingleton"; public function MSingleton(pSingletonEnforcer:SingletonEnforcer) { if ( !(pSingletonEnforcer is SingletonEnforcer)) throw new Error("Singleton is obviously...…

DAEViewer1.0

製作一個簡單版的DAEViewer
可以直接開啟本機端的.dae檔,
方便檢測製作的dae是否有效,
經過測試,可以正常的載入包含動畫格式的dae檔。
下一版再來補上可以更換材質的功能。

http://www.box.net/shared/nc5d0o0s99

AdobeFlashCS5試玩心得

感謝台灣Adobe提供的CS5 Beta版
呼,來分享一下FlashCS5的試用心得, 我是以手上的Beta版來做測試
正式版上市後, 可能會有些不同喔。
和CS3, CS4比較一下, 文字的排版換了。

歡迎頁, 最大的牛肉當然就是IPhone App了呀, 可惜, 已經, ......你懂的, (只能自己寫爽而不能上水果store)


新面版功能:Code snippets
之前就有類似的外掛面版, 而CS5把他整合進去, 看樣子是為了讓初學者好上手
找到你要的功能,點二下, 就會幫你產生對映的程式碼。


增強程式碼提示功能:
CS4之前的版本, 都只會提示預設的flash類別。
CS5只要路徑對,所有安裝的第三方類別都可以找的到, 這樣做就對了。


全新文字排版功能:簡單來說,是把Indesign的文字功能整個搬到flash裡。
文字可以下拉選擇新的TLT Text或是使用舊版的Classic Text
使用新版的TLT Text一定要搭配FlashPlayer10喔

之後文字就可以拉出許多的文字框, 但拉不好就感覺像在玩連連看(誤)

這個的正確功能指的是同一個動態文字, 能夠被放在不同的位置, 就能做出多欄位選取。

發佈成swf後, 就可以多選文字框, 太讚了,以後就不用一堆文字來排版,推




Deco Tool:
多了新的筆刷, 不過我很好奇, 這個功能在CS4就有, 請問有人用過嗎?



元件庫新增字型:CS4之前的版本, 新增字型會把所有的字崁入, 發佈後就暴K
CS5能讓你指定所需的文字。


Create New Symbo時, 多了Folder的選項, 呼, 這個功能不錯



除了存檔成.fla外, CS5還可以存成.xfl

xfl格式就長成這樣, 會有一推資料庫和一堆xml, 會把fla所有的元件影格都都變成文字格式
好處就是可以直接用筆記本更改
不過發佈還是要開flash呀, 而且經過我的測試, 那一堆xml, 你是不會想去看他的


下一篇來分享Catalyst CS5。