2007/6/29

FlashDevelop3安裝筆記-讓 trace更方便一點

[2007.12.19 update]
今天灌了FD3beta5及debug 版的flash player後,發現直接用trace即可,就跟在Flash IDE一般。所以應該不需再用下列的方法修改了。
[2007.12.19 update-end]

在上一篇有提到,FlashDevelop3中要用trace,是用如下方法:
import org.flashdevelop.utils.FlashConnect;
FlashConnect.trace("測試中文");


但用幾天,發現一些問題:
  1. FlashConnect是FD自家工具包裏的東西,若專案是多人共同開發,as 中若是出現許多FlashConnect.trace,且分散各處的話,將會造困擾。
  2. 我發現FlashConnect.trace並不如trace好用,它只要帶入非String的東西就會出錯,因為他裏面沒做轉換。


針對上述兩點,我建議用FD的人都可做下列修改:
package
{
import flash.display.MovieClip;
import org.flashdevelop.utils.FlashConnect;
public class Main extends flash.display.MovieClip
{
public function trace(str:*):void{
FlashConnect.trace(str.toString())
}
public function Main():void
{
trace("aa")
trace(123)
}
}
}


如此code裏面一樣只要寫trace即可,也修正了非String出錯的問題。
而上述這些code,也可存成Main.as,並設在FD裏的Template裏,如此每次New Project時,就直接寫好這些code了。

2007/6/27

AS3 非官方Class懶人包

感覺AS3的學習過程,會是一場mash-up大亂鬥。
Update:2008/1/23


2007/6/26

FlashDevelop3安裝筆記

昨天突然覺得,學AS3如果只是單純寫code的話,開Flash CS3實在很麻煩,也很不實用,因此開始survey各類AS撰寫工具。

後來是選用FlashDevelop3(Beta2)。在此記錄一下安裝過程。

安裝

  1. 下載並安裝FlashDevelop

  2. 下載並解壓Flex2 SDK (解壓路徑隨意,例:C:\flex_sdk_2)

  3. 開啟FlashDevelop3

  4. 到 Tools -> Program Settings -> Plugins -> AS3Context -> Settings ->Flex2 SDK Location設成剛才解壓的地方,例:C:\flex_sdk_2
  5. 現在可以試著開啟一個as3的.as檔,直接在FlashDevelop中按Ctrl+Enter,看看是否會直接產生出.swf。

  6. 若看到 "The compiler path is not properly configured" 的錯誤訊息的話,請到這篇看看。重點在於要多安裝一個Flex Compiler Shell



[2007.12.19 update]
今天重裝FD3beta5+flex3 sdk,卻發現發佈出來的swf都是空白的,也就是按右鍵context menu都會出現"沒有載入影片"的那種,後來研究了一下,原來是Flex SDK這裏要做一些設置。(但很奇怪是,上次安裝時為什麼不需要做這件事也可以work??)
進入Flex SDK存放目錄,找到bin這個目錄,在裏面可以看到一個檔案叫"jvm.config",以文字編輯器開啟
找到這行 java.home=
把你的JRE安裝目錄指給他,如下
java.home=D:/Program Files/Java/jre1.6.0
(注意斜線方向)
改好就ok了
[2007.12.19 update-end]

到此為止,我們可以不用開FlashCS3,便直接生出swf檔,也不用做一個空的.fla,正感到世界一切美好時,我發現了一個可恨的問題,讓我搞了快一天。

截至FlashDevelop3beta2為止,他的global classpaths設定是有問題的,也就是說,我無法在開發過程中import 官方以外的class,諸如PV3D, Tweener....(那我要你幹嘛!!!)

所幸我們暫時可以用FlashDevelop中的project功能,來彌補這個缺憾,並等待下一個版本的出現。

Project的用法
  1. 到Project -> New Project... 選"ActionScript3- Default Project",這時會要你命名,設路徑。(例:HelloWorld)

  2. 完成後,會在HelloWorld這個Project目錄下,看到一堆東西,最重要的是Classes這個目錄,開好Project時,FlashDevelop會直接在此生成一個Main.as,並在裏面寫好一些基本的 code。

  3. 此時,你就可以把你準備要import的非官方classes放到Classes裏,並引用之。


Trace
[2007.12.19 update]
今天灌了FD3beta5及debug 版的flash player後,發現直接用trace即可,就跟在Flash IDE一般。所以應該沒有以下問題了。
[2007.12.19 update-end]
最後,用Flash IDE以外軟體開發時,最麻煩也最重要的問題,一定是如何做Trace?
事實上FlashDevelop有提供了自家的class,可以將訊息傳到FlashDevelop的output window中。
位置在:C:\Program Files\FlashDevelop\FirstRun\Library\AS3\classes\
就是org下的那一整包
使用方式:
import org.flashdevelop.utils.FlashConnect;
FlashConnect.trace("測試中文");
即可。

正常來說,我只要把這個path設到global classpath裏就ok才對,但如同上面的問題,目前只能暫時把整個org目錄copy到project目錄下的classes裏。[2007.12.19 update:此問題我在FD3beta5已沒看到了,看來是解掉了]

中文
FlashDevelop在使用時,若有出現中文顯示問題,如trace,或text field等,請務必在主選單上設定:
File > Encoding > Convert Encoding > UTF-8

Code font
若要自訂寫code視窗的字型、字級這些東西,可在
C:\Documents and Settings\{user id}\Local Settings\Application Data\FlashDevelop\Settings
裏找到ScintillaNET.xml 這個檔,用文字編輯器改一下裏面的default-font, default-font-size這些,再重開Flashdevelop即可

心得
FlashDevelop3用起來比FlashCS3輕巧方便,程式碼收合功能也比官方的實用很多,我想現階段我會好好適應這個軟體,除非有要畫圖、做動畫,才會把FlashCS3打開吧。

2007/6/22

Twitter badget修改

用Twitter好一陣子了,也喜歡把status放在blog上,不過Twitter官方的badge對中文顯示不太友善,其實也只是text field size設太小了,因此將他修改了一下。
除了把文字設大外,也把一些字詞弄成中文。另外還把status中有出現"http://"的文字,都變成可以點擊的。
使用方式就如同原來的Twitter badge一樣,只是embed code 中embed src後面的swf連結位置,改成修改過的swf位置即可。

有興趣的自己拿去用吧 [原始檔]

2007/6/15

以Flash Lite仿HTC Touch 3D選單

HTC最近推出的 Touch手機,雖然沒有Multi touch那樣炫,但結合了「滑鼠手勢」及「3D桌面」兩種概念,卻也引來不少話題。

雖然不確定HTC是用什麼技術實作的,但我想FlashLite要達成類似的效果應該是OK的,以下影片是用Flash Lite做的效果:


註:BenQ P51(Windows mobile5.0)+Flash Lite2.1 StandalonePlayer+FL_touch.swf by Maso :)

基本上,這樣的3D翻轉、滑動手勢偵測,都可由Flash Lite獨立完成。

而本實驗作品無法做的,是Contact名單那一頁,若要加入add new/edit/remove contact,甚至取出大頭照,這些則需要Flash Lite MMI版才有辦法。

如果你手上有任一支Windows mobile5.0的PDA phone ,再去安裝免費的Flash Lite2.1 Player for WM版,再下載本人的FL_Touch.swf實驗作品,那麼也可以稍微體驗一下HTC Touch的3D Menu吧 ^^

2007/6/14

在Windows mobile 中 Launch app.

FlashLite要Launch application,可透過fscommand來達成,只要能知道app.的存在路徑即可。
所以重點便是app.的路徑,這些路徑要如何得知呢?

以Windows Mobile來說,若是用PC與手機連線,即可在檔案總管中的「行動裝置」裏,瀏覽手機裏的檔案,但許多app.的執行檔或系統檔案,是無法看到的。(即使開啟顯示隱藏檔案)

不過我們可以從一些捷徑檔中得到資訊。
從檔案總管開啟手機中的"\Windows\Start Menu\",可以看到一些捷徑檔:


點"Calendar"右鍵看內容:


上圖中可看到"poutlook.exe calendar",該.exe即是app.的執行檔路徑,而後面的"calendar"則是參數。

寫在Flash中則是:
fscommand("Launch","poutlook.exe,calendar")


這樣能直接Launch pocket outlook,並直接進入Calendar中

除了"\Windows\Start Menu\",其實整個手機都可以找找看有哪些捷徑檔,例如:
\Windows\Start Menu\Programs
\Windows\
都有很多。

在此列出一些Windows Mobile中一些常用App.的位置:
  • fscommand("Launch","poutlook.exe")//Outlook(但目前測試沒反應)
  • fscommand("Launch","poutlook.exe,calendar")//行事曆
  • fscommand("Launch","poutlook.exe,contacts")//聯絡人
  • fscommand("Launch","poutlook.exe,tasks")//Tasks
  • fscommand("Launch","iexplore.exe")//Internet Exploer
  • fscommand("Launch","iexplore.exe,http://www.google.com")//進IE並連網址
  • fscommand("Launch","tmail.exe")//Email
  • fscommand("Launch","cprog.exe")//Phone
  • fscommand("Launch","wmplayer.exe")//Windows Media Player
  • fscommand("Launch","fexplore.exe")//File Manager
  • fscommand("Launch","pmsnlauncher.exe")//Pocket MSN
  • fscommand("Launch","calc.exe")//計算機
  • fscommand("Launch",":MSPIMG")//Picture &Video
  • fscommand("Launch","pimg.exe")//Picture &Video
  • fscommand("Launch","HipCam.exe")//Picture &Video-->Camera
  • fscommand("Launch","HipEdit.exe")//Photo editor
  • fscommand("Launch",":MSSYNCAPP")//Active sync
  • fscommand("Launch","async.asy")//Active sync
  • fscommand("Launch",":MSPPT")//PowerPoint
  • fscommand("Launch","pxl.exe")//PowerPoint
  • fscommand("Launch","pword.exe")//Word
  • fscommand("Launch","notes.exe")//Notes
  • fscommand("Launch","skype.exe")//Skype
  • fscommand("Launch","solitare.exe")//Game:接龍
  • fscommand("Launch","BubbleBreaker.exe")//Game:刺泡泡
  • fscommand("Launch","saplaywm.exe")//Flash Lite Standalone Player
  • fscommand("Launch","shfind.exe")//Search
  • fscommand("Launch","SMS.exe")//SMS
  • fscommand("Launch","VoiceCommander.exe")//Speech Commander

2007/6/13

也搬家至blogspot

幾經思考,把blog移到免費的blogspot.com 上面,此後可不用再為domain name, hosting, blog系統、昇級等鎖事煩惱。

舊文章都放在blog.masolin.net,至少還會用到2008年5月。舊文章可能會陸續移到此處。
(之前的blog.masolin.com已不能用了。)

最近工作量減少了些,希望能趁這段時間來看看AS3或是寫些教學…