2011年5月26日 星期四

根據特定字元劈開字串回傳為陣列●將陣列元素之間加入特定字元回傳為字串

String.split()方法
Array.join()方法
※ 目的是要把 var souceStr:String = "011+886+2+2737-9999"; 這裡的電話號碼字串中的"+"和"-"去除掉

package  {

import flash.display.MovieClip;

public class StringSplitArrayJoin_1000525 extends MovieClip {

public function StringSplitArrayJoin_1000525() {
var souceStr:String = "011+886+2+2737-9999";
var specialChars:Array = new Array("+","-");

var newStr:String = this.charsHandler(souceStr,specialChars);

var newNumber = new Number(newStr);
trace("newNumber : " + newNumber); //newNumber : 11886227379999
return;
}

public function charsHandler(_souceStr:String,_specialChars:Array):String{
var _newStr:String = _souceStr;
var arrLength:int = _specialChars.length;
for(var i:int=0; i < arrLength; i++){
_newStr = _newStr.split(_specialChars[i]).join("");
}
return _newStr;
}
}
}

2011年5月23日 星期一

DisplayObject.loaderInfo屬性參照LoaderInfo物件__取得目前swf的URL

DisplayObject.loaderInfo屬性傳回LoaderInfo物件
this.root.loaderInfo.url取得目前swf的URL,呈現在TextField
1000523_DisplayObject.loaderInfo.swf


package  {

import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;

public class DisplayObject_loaderInfo_1000523 extends MovieClip {

public function DisplayObject_loaderInfo_1000523() {
/*flash.display.DisplayObject.loaderInfo屬性,傳回loaderInfo物件*/
/*var loaderPosStr:String = this.loaderInfo.url;  <---這樣也行*/
var loaderPosStr:String = this.root.loaderInfo.url;
this.createTF(decodeURIComponent(loaderPosStr));
return;
}

private function createTF(_loaderPosStr:String):void{
var tfFormat:TextFormat = new TextFormat();
tfFormat.size = 18;
tfFormat.color = 0x000088;

var tf:TextField = new TextField();
tf.autoSize = TextFieldAutoSize.LEFT;
tf.wordWrap = true;
tf.multiline = true;
tf.defaultTextFormat = tfFormat;
tf.width = 450;
tf.x = 50;
tf.y = 50;
this.addChild(tf);
tf.text = _loaderPosStr;
return;
}
}

}

Loader.contentLoaderInfo屬性參照LoaderInfo物件__※取得目前swf或載入器swf的URL

Loader.contentLoaderInfo屬性
LoaderInfo.loaderURL屬性
透過 new Loader().contentLoaderInfo.loaderURL 抓取目前swf的URL位址,呈現在TextField
全域decodeURIComponent()函數
public function decodeURIComponent(uri:String):String
將已編碼的 URI 組件解碼成字串。傳回字串,當中所有先前由 encodeURIComponent 函數逸出的字元,都會還原成其未編碼的形式。HELP
※使用或不使用decodeURIComponent():在本機由 Flash CTRL+ENTER 或直接執行swf,可分辨其中不同。

1000523_Loader.contentLoaderInfo.loaderURL.swf


package  {

import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.display.Loader;
import flash.text.TextFormat;

public class LoaderURL_1000523 extends MovieClip {

public function LoaderURL_1000523() {
this.getLoaderURL();
return;
}
private function getLoaderURL():void{
var loaderPosStr:String = new Loader().contentLoaderInfo.loaderURL;
this.createTF(decodeURIComponent(loaderPosStr));
return;
}

private function createTF(_loaderPosStr:String):void{
var tfFormat:TextFormat = new TextFormat();
tfFormat.size = 18;
tfFormat.color = 0xffff00;

var tf:TextField = new TextField();
tf.autoSize = TextFieldAutoSize.LEFT;
tf.wordWrap = true;
tf.multiline = true;
tf.defaultTextFormat = tfFormat;
tf.width = 450;
tf.x = 50;
tf.y = 50;
this.addChild(tf);
tf.text = _loaderPosStr;
return;
}
}

}

2011年5月17日 星期二

Star Trek Voyager 星艦迷航(基地防衛戰)_半成品試玩(作品)

[Star Trek Voyager 星艦迷航(基地防衛戰)_半成品測試](Flash AS3 Game)
跳出視窗760x594px原寸瀏覽(CLICK ME)


Star Trek Voyager 星艦迷航(基地防衛戰)_遊戲規則與操作說明

(一) 自機操控:
A. 自機旋轉方向:自機跟隨滑鼠指標(mouseMove)位置旋轉。
B. 自機武器發射:滑鼠點擊與放開(mouseDown、mouseUp),皆觸發武器朝滑鼠指標點擊方向發射。
C. 自機特殊武器發射:每當SW(特殊武器積分)累積至20分,可按 [ SPACE鍵 ] 發射。稱為「終究一擊」。

(二) 攻擊與「You Win」:
A. 自機武器擊中一架敵機:遊戲SCORE得100分、SW(特殊武器積分)加2分。
B. 自機武器擊中一顆敵機砲彈:遊戲SCORE得150分。
C. 自機發射「終究一擊」:「終究一擊」期間,目前場景上與緊接著飛入的所有敵機,都將自爆。自機則進入無敵狀態,不懼敵機砲彈。發射後,SW(特殊武器積分)減20分
D. 當所有敵機巡航攻擊結束,自機仍有一架次以上存活,則玩家勝利,跳出「You Win」畫面。可按「replay」按鈕重新開始遊戲流程。

(三) 防禦與「Game Over」:
A. 自機遭敵機砲彈擊中1次:HP Bar失血50%。
B. 自機遭敵機砲彈擊中2次:HP Bar歸0,即損失一架自機。
C. 每損失一架自機:自機數量SUM Bar縮減1/3表示。
D. 自機共3架:遭擊毀3架,則「Game Over」,自機基地自爆,跳出「Game Over」畫面。可按「replay」按鈕重新開始遊戲流程。

(四)暫停功能:
↓向下鍵 <---暫停
↑向上鍵 <---恢復

※※※按下向下鍵,以下功能可暫停※※※
A.自機轉動、發射子彈
B.自機飛行中的子彈
C.飛行中的敵機
D.敵機飛行中的子彈
E.所有遊戲中爆破Particle








2011年4月17日 星期日

ADOBE Bridge CS5 重新命名批次處理

最近在使用Particle Illusion製作特效,匯出透明背景png序列圖檔後,遇到數十張圖片需要改檔名問題.
通常,匯出的連續圖檔張數可能會過多,所以,必須取用單數1、3、5、7、9或雙數2、4、6、8、10.
甚至是1、5、9或2、6、10的選用狀況.

但所選用的序列圖檔編號,此時已經是不連續編號.

而為了在匯入Flash時能夠啟動Flash的徵詢是否匯入序列圖檔的功能,以便能一次匯入同一目錄所有圖檔,
並成為Flash中單一圖層裡的連續關鍵影格,
前提就是必須處裡成連續編號的檔名.

在Adobe Bridge cs5裡找到了答案.


(一) 啟動Bridge
 

(二) 在Bridge中指向所要處理的目錄,雙擊進入後,可看到檔案序號是1、2、5、7、9…序列






(三) 準備將些png改成連續邊號的檔名,Ctrl+A選取所有檔案



(四) 右鍵選單選取「重新命名批次處理」


(五) 跳出「重新命名批次處理」面板


(六) 「新增檔名」區塊中未設定前,通常四個欄位,按右邊「-」號刪除其中兩筆欄位。



● 在剩下的第1筆選項,選擇 [文字] (其實就是要使用的檔名),在其右鍵入 [test_A_ ]
● 在第2筆選項,選擇 [順序編號],在其右選擇 [三碼] ,中間欄位自動跳為值1,代表檔名
流水號從1開始。



(七) 在面板右上角按下 [預視]鈕,預覽檔名修改結果。


(八) 在面板右上角按下 [重新命名]鈕,得到結果。