2008/05/21

switch with no case will report internal build error when compiling

var foo:int = 2;
switch (foo) {

}

一定要在 switch 裡面放 case,否則編譯時會回報 internal build error。Flex Builder 不會指出是這個敘述不正確,找 error log 也看不出所以然來。

如果沒注意到這件事,會讓你 debug 很久。

2008/04/16

Flex Simple Example:以符號將字串組合

var s = ["a","b","c"];
Alert.show(s.join(","));

//Show Result: a,b,c

Flex中替代cookit操作的方法

做登錄等類的身份驗證功能,傳統的WEB開發基本上都要使用session或是cookit。然而在Flex中並沒有提供直接操作cookit或是session的方法。經過查資料發現,Flex提供了SharedObject這個本地對象。有人把它稱為「Flash Cookie 」。還真是形象啊,呵,不管怎麼說,畢竟還是有解決辦法的。

SharedObject提供了下面的操作本地對象的方法:
SharedObject.clear() 刪除本地共享對像;
SharedObject.flush() 立即把共享對像數據寫入本地文件;
SharedObject.getLocal() 創建或連接本地共享對像;
SharedObject.getSize() 取得本地共享對象的指定大小數據。

舉個應用的小例子:

保存值:
var test:SharedObject = SharedObject.getLocal( "test" );// 創建一個本地保存數據的對象
test.data.user = "username";
test.data.psw = "password";
test.flush(); //提交保存

取值:
var test: SharedObject = SharedObject.getLocal("test");
Alert.show(test.data.user);
Alert.show(test.data.psw);
注意如果使用alert,要引入 import mx.controls.Alert類

2008/04/01

歐洲巨兔


據英國媒體報導,日前英國一隻3歲大的雌兔,憑藉1.2米的身長和22公斤的體重,成功打破世界紀錄,獲得「世界最大兔子」的桂冠。
據主人愛德華茲介紹,這隻兔子名叫「艾米」,現在體重22公斤,食量驚人。如果身體伸展開,體長達1.2米。
  
  艾米每天的食物都要花10英鎊左右,每餐都要吃掉2個蘋果、幾個胡蘿蔔、半顆捲心菜以及幾把乾草。由於食物過多,愛德華茲不得不用狗盆給艾米當碗。而由於體型過大,艾米不得不睡在狗窩。愛德華茲說,艾米對食物很挑剔,「胡蘿蔔必須是帶綠色葉子的,乾草也必須是新鮮的、綠色的,否則她不吃。」
  
  據悉,此前世界上最大的兔子是艾米的配偶「羅伯特」,2004年,羅伯特從後腿到前爪的長度為1.05米,體重15.9公斤,當時這個體重要比3歲的孩子還要重。艾米比羅伯特小1歲,2004年時它只有0.5米長、6公斤重。但是現在它無論是身長還是體重都超過了羅伯特,因此當之無愧成為世界上最大的兔子。艾米和羅伯特都屬於歐洲巨兔。目前兩隻兔子已經孕育出32個後代。歐洲巨兔平均體重6公斤左右,壽命可達12年。
  
  目前,吉尼斯世界紀錄已經停止了類似巨兔的評選,以防止主人過度餵養寵物帶來的負面影響。


有圖有真相...


真相在下面...



(哇靠...比較起來我的熊熊其實食量也還好...爸爸一直錯怪你了..)





(看起來真的是報大的..比較起來熊熊苗條多了...)




(好想熊熊... T.T )



Flex 3 Call .Net WebService (3)

Flex 3 程式碼如下

分別測試跟呼叫之下的 Web Service



程式碼如下:


<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Button x="75" y="52" label="Add a data." click="btnInsert_Clidk();" width="133"/>

<mx:Script>
<![CDATA[
import generated.webservices.GetUserInfoCount_request;

import generated.webservices.GetUserInfoCountResultEvent;
import generated.webservices.ArrayOfUserInfo;

import mx.collections.ArrayCollection;
import generated.webservices.GetUserInfoArrayResultEvent;

import generated.webservices.AddUserInfoResultEvent;
import generated.webservices.AddUserInfo_request;

import generated.webservices.TestService;
import generated.webservices.UserInfo;

import mx.controls.*;


// TestService
private var objService:TestService=new TestService();


public function btnInsert_Clidk():void
{
objService.addaddUserInfoEventListener(resultAddUserInfo);


//新增一筆資料 呼叫 WebService 中的 AddUserInfo(string name,string tel,string addr)
objService.addUserInfo("Lucifer.Loudon","0917796416","台北市內湖區");

}


//取回結果並用Alet.show方式秀出
public function resultAddUserInfo(evt:AddUserInfoResultEvent):void

{

Alert.show("Name:" + evt.result.Name +", Tel:"+ evt.result.Tel+", Addr:"+evt.result.Addr);
}




public function btnGetAllData_Click():void
{
objService.addgetUserInfoArrayEventListener(resultGetUserInfo);


//呼叫 UserInfo[] GetUserInfoArray()
objService.getUserInfoArray_send();
}

public function resultGetUserInfo(evt:GetUserInfoArrayResultEvent):void

{

var list:ArrayCollection = evt.result as ArrayCollection ;

dg.dataProvider=list;
}


public function btnGetArrayCount_Click():void

{
var list:ArrayOfUserInfo=new ArrayOfUserInfo();


for(var i:int=1;i<=20;i++)

{
var tmp:UserInfo=new UserInfo();
tmp.Name="Name"+i.toString();
tmp.Tel="TEL"+i.toString();

tmp.Addr="Addr"+i.toString();

list.addItem(tmp);

}

//呼叫 GetUserInfoCount(UserInfo[] userInfos) 並傳入 UserInfo[20]
objService.addgetUserInfoCountEventListener(resultGetArrayCount);
objService.getUserInfoCount(list);

}

public function resultGetArrayCount(evt:GetUserInfoCountResultEvent):void

{
Alert.show(String(evt.result));
}



]]>
</mx:Script>
<mx:Button x="75" y="106" label="Get AllDataInfo" width="133" id="btnGetAllData" click="btnGetAllData_Click()"/>

<mx:DataGrid x="75" y="179" width="399" height="258" id="dg">

<mx:columns>
<mx:DataGridColumn headerText="Name" dataField="Name"/>

<mx:DataGridColumn headerText="Tel" dataField="Tel"/>
<mx:DataGridColumn headerText="Addr" dataField="Addr"/>

</mx:columns>
</mx:DataGrid>
<mx:Button x="242" y="52" label="Get Array Count" width="138" id="btnGetArrayCount" click="btnGetArrayCount_Click()"/>

</mx:Application>