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>

2010年4月26日 星期一

Singleton Pattern For ActionScript3,AS3 獨體模式

§ 獨體模式
獨體 (singleton)
  • 簡單的說就是讓某類型物件具有唯一性的存在一個程式專案中,即該程式中不能產生兩同類型的實體。
為什麼需要獨體功能呢?我們來用幾個自然界的例子來說明
  • 動物,每一個動物,只能有一個大腦,如果有兩個大腦,不知誰才是真正的管理者。
  • 交通工具,每一單位交通工具,同一時間內只能接受來自一個駕駛者所給予的操作指示,如飛機雖有正副機長,但同時只能有一位機長操作飛機動作行為。


當然不只這情境,還許有多種狀況下須要使用到獨體模式


Example:
package patterms
{
    public class Steering
    {
         private static var _steeringInstance:Steering;
         public function Steering(enforcer:SteeringEnforcer )
        {
            trace("建構子");
        }


        public static function getInstance(id:int):Steering
       {
       //判斷實體是否已經存在
           if(_steeringInstance == null)
           {
               trace( "id" + id + "實體不存在,產生實體" );
               _steeringInstance = new Steering(new SteeringEnforcer( ) );
           }


            trace( "id" + id + "實體存在,傳回實體" );
            return _steeringInstance;
         }


          public function turnRight():void
          {
              trace( "右轉" );
          }


          public function turnLeft():void
         {
             trace( "左轉" );
         }
      }
}
//內隱Class
class SteeringEnforcer
{
}
 
// 程序執行
Steering.getInstance(0);
Steering.getInstance(1).turnLeft();
 
//trace結果
id0實體不存在,產生實體
建構子
id0實體存在,傳回實體
id1實體存在,傳回實體
左轉

2010年4月24日 星期六

ActionScript3 Sprite 特性

Sprite的特性


  • SpriteWidthHeight屬性是來自於繼承鍊中的抽象父類別DisplayObject
  • DisplayObject只是個抽象的顯示物件(他不能實體化)他的Width與Height是用來形容任何繼承他的顯示物件的長寬。
  • Sprite是一個容器,其容器的長、寬是由子顯示物件的長寬來決定。(容器是拿來裝東西的,所以其長寬當然是看裝的東西的位置與長寬來決定)。


下例Sprite的Width直接給予數值會改變其Scalx來因應改變......
  200 x = 300 ;  x = 300 / 200

Example: