跳到主要內容

發表文章

目前顯示的是 一月, 2010的文章

Coverflow無限loop版

學生問到怎麼將Coverflow改成無限loop的版本
概念上都是一樣的,只要更改移動的公式即可,加上if else來判斷座標位子即可。


SourceCodeDownload

FlashDevelopPlugin

FlashDevelop是一套超好用的 ActionScript 程式碼編輯器
而且是免費的軟體喔,
來介紹幾個奶小茶覺得還不錯的外掛
FDFlexFormatter v0.2
是一個可以快速將你的程式碼自動排排站好的外掛, 類似Flash的 autoFormat
亂的程式碼

使用FDFlexFormatter整理過後的程式碼


Duplicate
快速重製程式碼, 以往打了addEventListener(MouseEvent.ROLL_OVER , rollOverHandler);
通常下一行會再偵聽ROLL_OUT事件。
以前最快的方法是,按Ctrl+ D, 先整排復製, 然後再去改成ROLL_OUT
安裝好該外掛,按下Ctrl + Alt + D,就會自動幫你整排復製, 然後將ROLL_OVER改成ROLL_OUT
超省時的啦, 當然關鍵的文字可以自已新增修改
還有Ctrl + Alt + S, 每按一下就能自動切換
addEventListener換成removeListener
或是public internal protected privte自動切換
而Ctrl + Alt + Shift + D, 遇到數字型時,就會自動幫你加一行, 並將數字遞增

Highlightselection
當選取一個文字時, 該文件檔只要有一樣的文字, 會自動幫你出現底色, 方便預視
可以檢查是否打錯字

SWCExport
安裝好後, 在上方工具列就會出現新的Icon, 按下後就能將類別直接包裝成.swc

http://code.google.com/p/flashdevelopjp/
安裝好後, 在上方工具列會多出一個日文選項,
前二個我不知道是做什麼用的
Always Compile設定:只要按下Alt +A ,就才自動幫你把目前開啟的.as設定成Always Compile,
還可以到選項裡更改設定,就可以直接發怖。


Vizzy Flash Tracer

這一個不算是FD的外掛, 有點像是FireFox的flash tracer,
只是他是單一執行軟體, 不用加裝在任何Brwoser上即可使用
當然flashDevelop的trace資訊他也是抓的到

FlexDbg
FlashDevelop也能使用.net的中斷點功能喔, 這樣就可以一步一步的debug


AS3 utf8 轉 big5編碼

AS3預設的編碼即是utf-8, 但有時html的編碼不是我們能控製的
好比html是big5,
在flash裡只要使用System.useCodePage = true;
即可讓flash的編碼和html相同,
但問題來了, 假設現在遠端主機接受的編碼是big-5
你有二個網站分別用big5和utf8製作, 光轉編碼可能就會搞死,
好在有好心人士己編整理好了, 感謝馬克提供的資訊
http://www.mr-fu.net/2009/02/url-encoding-in-actionscript3-utf-8.html
原理是透過ByteArry來處理。

CoverFlow另一種表現手法

有學生問到如何製作這樣的3D效果
http://www.movie-motel.com/
更改了一下書裡的Appendix_A CoverFlowCS4.as
當然也可以用PV3D來製作, 原理上差不多
只要更改一下公式即可:
和本來的Coverflow效果一樣,
會有三種情況, 左邊,中間、右邊
只要更改左邊的公式, z軸改成負的即可。


package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.net.URLRequest; import caurina.transitions.Tweener; public class CoverFlowCS4_3 extends Sprite { private var itemOfNumber :int = 9;//物件數量 private var currentPlaneIndex :Number = 0;//目前圖片的索引值 private var planeAngle :Number = 48; //角度 private var planeSeparation :Number = 150; //左右二邊Plane與Plane的間距。 private var planeOffset :Number = 100; //目前所選擇的Plane其左右的間距。 private var selectPlaneY :Number = -0; //目前所選擇Plane的y值 private var selectPlaneZ :Number = -510; //目前所選擇Plane的z值 private var perZ :int = 250; private var container :Sprite; private var sortArray :Array = [];//排序用的陣列 public function CoverFlowCS4_3() { addEventListener(Event.ADDED_TO_STAGE, _addedToStageHandler); } private function _addedToStageHandl…

facebookApp抓取相片集

最近一定都要來facebook一下,
今天來介紹如何在網站裡, 得到目前使用者facebook裡的相片集
1.請申app, 得到API_KEY和SECRET_KEY
關於facebook app申請與設定, 可以參考
http://milkmidi.blogspot.com/2009/10/facebook-app.html
2.下載facebook flash api類別:
http://code.google.com/p/facebook-actionscript-api/
3.說明一下原理
使用者在你的應用程式裡點選登入後, 會自動開啟connect的頁面, 讓使用者同意你的app取存個人資訊
登入成功後, 就可以開始要資訊
相片集的話, 會有二個部份
一個是Albums(就是相本, 使用GetAlbums類別)
一個是Photos(就是相本裡的相片, 使用GetPhotos類別, 要帶入Albums裡的id值)
二者呼叫fb後回傳的結果都是一個Collection
在這兒使用Flex來練習, 當然用Flash原理也是一樣的

<![CDATA[ import com.facebook.commands.data.*; import com.facebook.commands.friends.GetFriends; import com.facebook.data.friends.GetFriendsData; import com.facebook.data.photos.AlbumData; import com.facebook.data.photos.PhotoData; import com.facebook.data.users.FacebookUserCollection; import com.facebook.Facebook; import com.facebook.events.FacebookEvent; import com.facebook.net.FacebookCall; import com.facebook.data.photos.*; import com.facebook.commands.photos.*; import com.facebook.utils.FacebookSessionU…