搜尋部落格文章

2012年6月11日 星期一

Adobe Flash CS6 CS5.5 本機Help文件

Flash本機Help文件

官方線上的真的很難用,搜尋老是跑出一些不是我要的東西,一直去找線上論壇的資料

記得先執行 Adobe Help應用程式,更新所有的Help文件,才可以找到下列路徑。



Windows 7


CS5.5&CS5
C:\Users\Jay\AppData\Roaming\chc.4875E02D9FB21EE389F73B8D1702B320485DF8CE.1\Local Store\Help\zh_TW\FlashPlatform\reference\actionscript\3

CS6
C:\Users\Public\Documents\Adobe\Help\zh_TW\FlashPlatform\reference\actionscript\3

2012年5月23日 星期三

TweenMax用法統整


TweenMax.to(this, 0.5, { yoyo:true, repeat: -1, 
glowFilter: { color:0xFFFFFF, alpha:0.9, blurX:15, blurY:15, inner:true, strength:1.5 }} );
//yoyo: 溜溜球模式,1-2-3-3-2-1
//repeat: 重複次數,-1代表無限
//glowFilter: 套用光暈濾鏡

... 未完待續

2012年5月16日 星期三

URLVariables 送Array資料類型給後端

終於找到解決方法可以將陣列資料送給後端
 this._urlLdr = new URLLoader();
 this._urlVar = new URLVariables();
 this._urlVar.action = "test";
 this._urlVar.id = 123456;
 this._urlVar["arr[]"] = [3,4];// 這個就是陣列啦!
 this._urlReq.data = this._urlVar;
 this._urlReq.method = URLRequestMethod.POST;

2012.06.29 更新
假設傳送二維陣列給後端,後端接收到的資料格式會有些怪
this._urlVar["arr[][]"] = [[3,4],[2,5]]; //這邊是flash送二維陣列給後端的方式

但 ~後端接收到的格式會變成 [["3,4"],["2,5"]]
可以發現在陣列中的值,被轉成字串格式了
 後端可用"逗號"切割成陣列去抓值
目前還在研究AS3的解決方法,若有網友發現可以讓接收後端正確二維陣列的方法
請分享讓大家知道吧!!

2012年5月11日 星期五

替換滑鼠游標,游標會不停閃爍

很久以前就碰到過這樣子的問題,
 首先,
我要自訂一個圖案在MOSUE_OVER某物件時,去取代原生的滑鼠指標並跟隨移動,
但若自訂圖案擋住了原本滑鼠的位置時,圖案則會不停的切換。
Mouse.hide();
↓
Mouse.show();
↓
Mouse.hide();
↓
Mouse.show();
↓
xN次
這根本就是陷入了無窮盡的迴圈啊~~~

為了確保父輩實體能夠當作滑鼠事件的目標物件來運作,
可以將父輩實體的 mouseChildren 屬性設為 false,
因為子系物件會也會觸發滑鼠事件而去影響到父輩實體。

// Ignores all sub movie clips and treats them as the parent
//      — otherwise events will be triggered on the child
//      movieclips and not our main clip
自訂圖案.mouseChildren   = false;
滑入物件.mouseChildren = false;
若自訂圖案重疊壓在要滑入的物件上方,會不斷觸發MOSUE_OUT事件,
接著我們要忽略自訂圖案的所有滑鼠事件,避免這個問題。
// Ignore all the mouse events for the cursor
//      — otherwise MOUSE_OUT will trigger since mouse is
//      now on target_mc instead of boundary_mc
自訂圖案.mouseEnabled = false;

2012年4月13日 星期五

美術元件的打包載入方式

做flash程序經常會用到美工提供的素材,幾年下來總結了一些經驗,發現花樣還不少。現在匯總如下:

1.打包成swc類庫形式:

這種方法比較簡單,操作步驟如下:

1)將flashcs中想要使用的東西,轉換成原件

2)在庫中右鍵該原件,選擇屬性

3)選中'為actionscript'導出

4)在類的填充框中填寫一個類名如:Loading,點擊確定。這時候發現該原件在類庫中如下:



5)ctr+shift+f12(或者文件--發佈設置)選中swc,點擊發布。這時候你會發現對應文件的文件夾下多出一個swc文件。將此swc文件導入你的as項目中new出Loading就可以使用了。

(此方法對於小項目來說,使用快捷簡單,推薦使用。但是對於大型項目,如果將所有素材都打包到swc中,無疑會加大主程序的體積,犧牲了用戶體驗,不推薦使用)

2.打包到swf中:

(1)直接嵌入在程序中:

打包方法同1,但是不用發佈設置,直接編譯成swf如loading.swf然後在項目中使用

[Embed(source='文件位置/loading.swf',symbol='Loading')]

public var Loading:Class;

直接new出Loading就可以使用了。

此種方法的缺點和優點同1一樣。

(2)使用loader動態載入程序中:

打包方法同1,同樣不用發佈設置,直接編譯成swf,在需要的使用loader.load(new URLRequest('文件位置/loading.swf'));

當加載完成時,使用

var display:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("Loading") as Class

this.addChild(new display());

這種方法在小項目中使用有點麻煩,因為你要先判斷swf有沒有下載完成,才能進行後續操作。但是在大程序中使用的話,能起到動態加載的效果。相當於windows的dll。這樣可以有效減小主程序的體積,從而減少用戶下載等待時間。

2012年3月30日 星期五

URL 原則檔範圍

URL 原則檔僅套用於載入的目錄及其子目錄。根目錄中的原則檔會套用至整個伺服器,但從任意子目錄載入的原則檔則僅套用於該目錄及其子目錄。

原則檔只影響它所在的特定伺服器。例如,位於 https://www.adobe.com:8080/crossdomain.xml 的原則檔案,只適用於在連接埠 8080 上透過 HTTPS 對 www.adobe.com 進行的資料載入呼叫。

在 URL 原則檔中指定存取權限

原則檔中包含單獨一個 標籤,其中再包含零個或多個 標籤。每一個 標籤中都包含一個特質,即 domain,它指定了確實的 IP 位址、確實的網域,或者萬用字元網域 ( 任何網域)。萬用字元網域會以下列兩種方式的其中一種指示:
• 使用單一星號 (*),與所有網域和所有 IP 位址相符
• 使用星號之後再加字尾,只比對找出以指定字尾結束的網域
字尾必須用一點為開頭。然而,有字尾的萬用字元網域可比對找出只含有該字尾而沒有最前端一點的網域。例如,xyz.com 被視為屬於 *.xyz.com 的一部分。在 IP 網域規格中不允許萬用字元。


下面是一個 URL 原則檔的範例,允許存取源自 *.example.com、www.friendOfExample.com 和 192.0.34.166 的 SWF
檔:







如果指定了一個 IP 位址,則只允許使用 IP 語法 ( 例如 http://65.57.83.12/flashmovie.swf) 從該 IP 位址載入的 SWF 檔進行存取,使用網域名稱語法載入的 SWF 檔則無法存取。Flash Player 不會執行 DNS 解析。
您可以允許存取源自任何網域的文件,如下列範例所示:






每個 標籤也都有選擇性的 secure 特質,此特質預設為 true。如果原則檔是位於 HTTPS 伺服器上,而您想要讓位於非 HTTP 伺服器上的 SWF 檔可以透過 HTTPS 伺服器載入資料,則您可以將此特質設為 false。
將 secure 特質設為 false 有可能會破壞 HTTPS 所提供的安全性。尤其是此特質設定為 false,將會讓安全性內容門戶洞開而遭受窺探與攻擊。Adobe 強烈建議您不要將 secure 特質設定為 false。
如果要載入的資料位於 HTTPS 伺服器上,但載入端 SWF 檔位於 HTTP 伺服器上,Adobe 建議您將載入端 SWF 檔移到HTTPS 伺服器上。如此一來,就可以讓您所有的安全資料都在 HTTPS 的保護之下。但是,如果您決定必須將載入端 SWF檔放在 HTTP 伺服器中,請將 secure="false" 特質加入至 標籤,如下列程式碼所示:


另一個您可以用來准許存取的元素是 allow-http-request-headers-from 標籤。這個元素會授與用戶端權限,從另一個網域裝載內容,以傳送使用者定義的檔頭到您的網域。 標籤可以授與其他網域權限從您的網域拉出資料,而 allowhttp-request-headers-from 標籤則是授與其他網域權限推入資料到您的網域,以檔頭的形式進行。在下列範例中,任何網域都准許傳送 SOAPAction 檔頭到目前的網域:



如果 allow-http-request-headers-from 陳述式是在主原則檔中,它會套用於主機上的所有目錄。否則,僅套用於包含該陳述式之原則檔的目錄及其子目錄。

Flash安全性 網站控制 ( 原則檔)

若要提供您網站伺服器的資料給另一個網域中的 SWF 檔使用,可以在伺服器中建立原則檔。「原則檔」是放置於您伺服器上特定位置中的 XML 檔。

原則檔會影響一些資源的存取,包括下列項目:
• 點陣圖、聲音和視訊中的資料
• 載入 XML 和文字檔
• 從其它安全網域將 SWF 檔匯入載入端 SWF 檔的安全網域
• 存取通訊端和 XML 通訊端連線

ActionScript 物件會實體化兩種不同的伺服器連線:文件架構伺服器連線和通訊端連線。ActionScript 物件 ( 如 Loader、Sound、URLLoader 和 URLStream) 會實體化文件架構伺服器連線,這些物件都會從 URL 載入檔案;ActionScript Socket和 XMLSocket 物件會建立通訊端連線,這是以串流資料而不是以載入的文件運作。

由於 Flash Player 支援兩種伺服器連線,因此有兩種原則檔:URL 原則檔和通訊端原則檔。
• 文件架構連線需要「URL 原則檔」。這些檔案可以讓伺服器指出其資料和文件可供 SWF 檔使用,從特定網域或所有網域提供服務。
• 通訊端連線需要「通訊端原則檔」,以便使用 Socket 和 XMLSocket 類別,直接在較低的 TCP 通訊端層級啟用網路作業。
Flash Player 需要使用與嘗試連線所要使用的相同通訊協定來傳輸原則檔。例如,將原則檔置於 HTTP 伺服器中時,來自其它網域的 SWF 檔就允許以它為 HTTP 伺服器載入資料,但是,如果不在相同伺服器上提供通訊端原則檔,就必須禁止來自其它網域的 SWF 檔,在通訊端層級連線至伺服器。換句話說,擷取原則檔的工具必須與連線的工具相符。