2010年5月11日 星期二

JAVA Encapsulation(Java 封裝) , get/set method

§JAVA封裝,get與set method
封裝觀念在物件導向中語沒有什麼不同,只是Java的get與set使用方式上與ActionScript3規則不太相同,以下將Java與AS3,的get與set使用方式整理一下。

Java Encapsulation Example:
Java中可由abstract宣告,告知編譯器這是抽象類別。
這是一個Animal(動物)類別,他是一個抽象類別(形容並代表各種動物,並非具體的形容),所以宣
告為abstract,在JAVA中宣告為abstrace的類別是不可以透由new實體化物件

//Animal 類別
//命名空間,在Win系統上package代表一個資料架,這代表Animal這個類是放在animal資料夾理。
package animal; 
abstract public class Animal
{
 //宣告一個型別String,名稱為food的私有變數。
 private String _food;
 //建構子,Java的建構子是支援overlod的,之後談到method的overload再來介紹。
 public Animal()
 {
  //建構式,java中若不編輯,會自動隱含宣告一個空args的建構式。
 }
 //Food 封裝
 public void setFood(String food)
 {
  if(_food == food)
   return;
  _food = food;
 }
 public String getFood()
 {
  return _food;
 }
}
 

2010年5月7日 星期五

JAVA PATH,環境變數設定

此篇是關於JDK安裝後PATH設定,關於JDK的安裝方法可參考Eclipse與JDK安裝篇
Windows7
Step 1.電腦圖示上點擊滑鼠右鍵打開操作選單,點擊內容(R),以進入系統。

操作選單












Step 2.系統中於左側中找到進階系統設定點擊,以進入系統內容。
系統介面









Step3.於系統內容中,確定於進階環境中,點擊右下環境變數,打開環境變數面板
以便設定Java JDK Path。

2010年5月6日 星期四

精準度處理

//1000等同取小數三位精準
var fixedValue:int = 1000;

var v1:Number = 0.6;
var v2:Number = 3;
var v3:Number = v1 * v2;
//1.7999999999999998
trace(v3);
v1 = v1 * fixedValue;
v3 = v1 * v2 / fixedValue;
//1.8
trace(v3);

2010年5月5日 星期三

Lift Cycle , 元件生命週期與應用程式週期


§元件生命週期與應用程式週期
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009
  xmlns:s="library://ns.adobe.com/flex/spark
  xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
  preinitialize="application1_preinitializeHandler(event)"
  initialize="application1_initializeHandler(event)"
  creationComplete="application1_creationCompleteHandler(event)"
  applicationComplete="application1_applicationCompleteHandler(event)"
  >
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.managers.SystemManager;
override protected function createChildren():void
{
 //用來將子物件貼附置容器中
 super.createChildren();
 trace("//---------------------------------------------------");
 trace("//createChildren");
 trace("//---------------------------------------------------");
 trace("");
}

2010年5月4日 星期二

FlashVars, HTML參數,給予SWF使用

AC_FL_RunContent(  "src", "playerProductInstall",
 "FlashVars",        "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
"width", "${width}",
"height", "${height}",
"align", "middle",
"id", "main",
"quality", "high",
"bgcolor", "${bgcolor}",
"name", "${application}",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", http://www.adobe.com/go/getflashplayer,
"flashVars" , "embedCode=test1234567"
);

Flex Button 的autoRepeat 須注意Event

最近剛好需要一個按住按鈕連發的功能,查了一下ActionScript 3.0 Language and Components Reference確定了Flex的Buttonu有一個autoRepeat屬性,只要設為ture就可以啟動button內部的Timer,結果奇怪怎麼在按鈕按下後只觸發了一次呢?????結果一查原來我習慣使用flash.events底下的MouseEvent而autoRepeat是使用FlexEvent發送所以就收不到連發事件囉!!請看以下範例

Example:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
applicationComplete="application1_applicationCompleteHandler(event)"
>
 <s:layout>
  <s:BasicLayout/>
 </s:layout>