2011年12月29日

[Java]Java類別介紹與資料型態_20111219

Java對大小寫很「敏感」,所以先來說「命名規則」
識別子(Identifier),因為用來識別,所以名稱必須要有意義

首先
第一個字必須是文字、或用_、$
第二個字起可以用文字、數字、_、&
不可與Java關鍵字相同
大小寫有別,但沒有長度上限

再來
套件(Package),以小寫英文命名,例com.uuu.domin
類別(Class)、介面(Interface)、列舉型別(enum),字母開頭為大寫英文的名詞或片語,例SavingsAccount
方法(Method),字母開頭為小寫英文的動詞,並限制_底線的使用,例getAccount()
區域(Local)變數,簡短有意義可適當使用縮寫,例buf代表buffer
成員變數,第一個字母應小寫,亦使用混合模式,例currentCustomer, maxSize
常數,全部使用大寫,以底線斷詞,例HEAD_COUNT

那麼,方法和成員變數很像,該怎麼區分他們?
從名字後方有沒有(),如果有( )表示是一個方法;若沒有則為變數名稱

[Java]Java技術概論與環境設定_20111212

(以下敘述純粹是上課筆紀,內容或我理解有錯請糾正,謝謝!)
Java是一種技術,並非單指一種程式語言
它有以下特性(三跨.....嗯~不是指胯下喔="=)
跨平台
跨設備
跨廠商
語法類似C++,支援多個執行緒


2011年9月2日

[AS3.0]Dictionary的介紹與使用

Dictionary
簡單來說跟 Object 和 Array 是做一樣的事。
是用來索引物件用的類別。

Array是用數字來當做 Key 值。_array[0] = "字串1";
_array[1] = "字串2";

_array[0] = "字串3";
時, 本來的值就會被取代掉
trace(_array[0]) //得到 字串3



Object是使用String來當作 Key 值_obj['key'] = "String1";
_obj['key2'] = "String2";
(或寫成_obj.key2 = "String2";)

_obj['key2'] = "String3";
本來的值也會被取
trace(_obj['key2']) //得到 String3


Dictionary
是把'物件', 當作索引值,
每個物件都是獨立單一的, 這樣就可以確保索引值是唯一的。
var _dic :Dictionary = new Dictionary();
var _mc:MovieClip = new MovieClip();
var _mc2:MovieClip = new MovieClip();
//建立二個MovieClip
_dic[_mc] = "Dictionary Value1";
_dic[_mc2] = "Dictionary Value2";
用for in 掃一下內容。
for (var d:* in _dic) {
trace(d, _dic[d])
}
// [object MovieClip] Dictionary Value1
// [object MovieClip] Dictionary Value2
就可以得到當初寫入的值了



記得, 不要時一定要delete掉, 否則物件的指派還在
就不會被記憶體回被器回收喔。

資料來源

2011年8月16日

[AS3.0] 用程式設定文字的粗體/斜體/底線/項目等符號

明明在原SWF的設計就是粗體
但在更換內容(text)後,就會被打回原型!弄了好久,終於搞懂
例如我有個倒數五秒的畫面,每過一秒裡頭的文字就-1
//以下為設定字體為粗體的寫法
import flash.text.TextFormat;


var tf:TextFormat = new TextFormat();
tf.bold = true;
test_mc.sec_txt.setTextFormat(tf);

test_mc.sec_txt.text = 5;//這個5顯示出來並非是粗體
..................


原來!順序很重要!當sec_txt在被更換內容後,就不是原來的它了
所以只要改成

test_mc.sec_txt.text = 5;
test_mc.sec_txt.setTextFormat(tf);

就醬~

其它的設定:
tf.bold = true;粗體
tf.italic = true;斜體
tf.underline = true;底線
tf.bullet = true;項目符號

加入超連結
tf.url = "http://dorothycode.blogspot.com/";
tf.target = "_brank";

tf.font = "Arial";字體
tf.size = 32;大小
tf.color = 0xFF0000;顏色

setTextFormat & new TextFormat
setTextFormat除了一般用法把"格式"代入外
還可以txt.setTextFormat(tf, 0, 10);
這意指txt內從0索引開始的10個字會使用此格式


new TextFormat()
當我們new一個格式資訊時,可以直接就給予設定
new TextFormat(字體, 大小, 顏色, 粗體, 斜體, 底線, URL, 目標, 對齊, 左邊界, 右邊界, 縮排, 行距)
例如我們依照上例想要設定粗體字時
var tf:TextFormat = new TextFormat(null, null, null, true);
至於設null的會使用系統的預設設定~好用捏!


2011年7月12日

[AS3.0]數值運算

四捨五入
Math.round(運算式)

無條件捨去
Math.floor(運算式)

無條件進位
Math.ceil(運算式)


絕對值
Math.abs(運算式)

取亂數
Math.random();

取最大數
Math.max(運算式1, 運算式2.....運算式N)

取最小數
Math.min(運算式1, 運算式2.....運算式N)

[AS3.0]陣列的使用

陣列的宣告
var aArray:Array;
var bArray:Array = [123,"abc"];
以上兩種方法皆可,陣列中可以包函不同型態的值



陣列的長度
bArray.length
可以得到 2



陣列連結
var cArray:Array = ["def",5678];
concat傳回陣列
var dArray:Array = bArray.concat(cArray,aArray);
以上會將bArray,cArray,aArray的元素連結在一起後,回傳新的陣列
dArray 則等於 [123,"abc","def",5678]
join傳回字串
var dString:String = cArray.join(",");
以上會將cArray裡各元素轉成字串連結,join(分隔符號),亦可指定空字串join("")



分割陣列
slice(開始索引[,結束索引]) 傳回陣列
取出陣列一部份作為新陣列
0   1  2  3   4  5
|A |B |C |D |E |F |  =>newArray
  -5 -4 -3 -2 -1  0
newArray.slice(2,4)   => ["C","D"]
newArray.slice(0,-3) => ["A","B","C"]
splice(開始索引[,刪除數量[,替換元素......N]]) 傳回陣列



追加陣列
push()
bArray.push(1688);
以上bArray則變成 [123,"abc",1688];
unshift()
bArray.unshift(1688);
以上bArray則變成[1688,123,"abc"];



刪除陣列
bArray = [123,"abc",1688];
pop()
bArray.pop();
以上bArray則變成[123,"abc"];
shift()
bArray.shift();
以上bArray則變成["abc",1688];



搜尋陣列元素
bArray = [123,"abc",1688];
indexOf(搜尋元素[,開始索引])
從前端開始搜尋
bArray.indexOf(123);   => 0
bArray.indexOf("abc");  => 1
bArray.indexOf(1688);  => 2
lastindexOf(搜尋元素[,開始索引])
從後端開始搜尋

bArray.lastindexOf(123);   => 2
bArray.lastindexOf("abc");  => 1
bArray.lastindexOf(1688);  => 0




對陣列的各元素執行含數
bArray = [123,"abc",1688];
bArray.foreach( testfunction);
function testfunction (元素的值:*,元素的索引:int, 指向陣列的參照:Array):void{
}
map則必須有傳回值

2011年6月9日

[AS3.0]載入外部......(檔案、圖片、資訊)

AS3.0已不支援loadMovie的語法,改採由Loader物件中的load()函數取而代之,透過load()可動態的載入外部的檔案,如:jpg、swf、gif..等,但當利用load()時還需透過影片物件將圖檔顯示出來,因此建立一個影片元件,並將實體名稱命名為 loadmc ,再透過此物件將外部的圖檔載入.....

var _ldr:Loader = new Loader();
var _file:String="minwt.jpg";
_ldr.load(new URLRequest(_file));
loadmc.addChild(_ldr);


應用範圍區分
Loader: swf,圖片(jpg,png,gif)
URLLoader:文本文件(xml,php,jsp…)

2011年6月7日

[AS3.0]與JavaScript通訊

使用類別import flash.external.Externallnterface

要從AS執行JavaScript的方法時
可使用ExternalInterface.call("指定的方法","參數1",......)

要從JavaScript執行AS的方法時
須事先使用ExternalInterface.addCallback("指定從js呼叫時方法",AS方法)

2011年5月16日

[AS環境_下]Flash與AMFPHP的溝通_解決#2044: 未處理的 NetStatusEvent

首先,我們利用phpMyAdmin建立後端資料庫及資料表
create database testflash;
create table testing(
  number varchar(20)
);
再來,我們要建立可已用的服務(PHP Class) Counter

[AS環境_上]安裝AppServer及AMFPHP

AppServ是一個整合Apache,PHP,MySQL還包含phpMyAdmin
http://www.appservnetwork.com/