2010年6月7日 星期一

Flash AMFPHP Remote 測試範例

§使用NetConnection來做AMF Remote

  • 範例雖是Flex撰寫,但由於使用NetConnection來做Remote連線,所以Flash也適用。

example:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application applicationComplete="init();" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
private var _btnEnable:Boolean;
private function init():void
{
_btnEnable = true;
initNetConnection();
}

private var _nc:NetConnection;
private function initNetConnection():void
{
_nc = new NetConnection();
//回呼處理物件
_nc.client = this;
//序列化格式指定
_nc.objectEncoding = ObjectEncoding.AMF3;
//指定AMFServer服務位置
_nc.connect(amfServerUri);
_nc.addEventListener(NetStatusEvent.NET_STATUS , onStatus);
}

private var amfServerUri:String="http://127.0.0.1/flashservices/gateway.php";
private var _source:String = "tw.remote.test.Hello.sayHello";

embed SWF 實做,與問題

開發中遇到問題,先記錄起來,日後研究查詢資料後補上
在embed,SWF時,該SWF至於A網域中,而其他網域Web Server上.html頁面使用HTML標籤embed
SWF,在開發環境可以相對位置使用,但若置於web Server上就必須使用絕對位置,不然會產生,位置錯誤,如A網域中還同時置放了組態xml要給予swf使用,但由於相對位置關係,embed在B網域的swf會變成去讀取B網域中的xml,這樣就會發生錯誤情型。

詢問得知,若要開放embed的swf,xml內的資料須寫入swf,因為若是以絕對位置,會造成難以用網域來做安全管理,若是不開放就把xml寫出來,用動態載入,這樣的確也會因為安全性問題,讓有心人無法embed。

在remote端的server,或是swf想尋訪不同網域的地方都需要一個編輯一個crossdomain.xml,置放於服務server上,如此才能讓swf跨往訪問,可以用來控管不想要的網域連結

-

-


2010年6月6日 星期日

Flex 動態CSS , 動態Style ,利用StyleManager

§使用StyleManager來動態更換CSS檔(動態更換Skin)
以下將簡單表示動態更換Flex的CSS,在CSS中若有設定組件使用swf即達到動態更換Skin
Step1.在Flex專案,於Src底下建立一個css資料夾(packge)。
Step2.建立如下兩個CSS測試檔,取名為projectA.cssprojectB.css
//projectA
/* CSS file */
Panel{
borderColor: #009966;
}
 
//projectB
/* CSS file */
Panel{
borderColor: #0066ff;
}

Step3.於CSS檔上按下滑鼠右鍵,選擇Compile CSS to SWF將兩隻CSS,Compile成SWF。


 
 
 
 
Setep4.建立以下mxml測試檔

2010年6月4日 星期五

JAVA JDK 安裝與測試

§JAVA JDK 安裝與測試 For Winsows
SunJAVA官方網頁下載JDK,JDK下載頁面。

●選擇JDK下載
下載Java Platform, Standard Edition版本,點擊JAVA圖示或Download JDK進入下載選擇頁面

●選擇版本支援平台
1.選擇Windows或Windows64
2.點擊Download下載,會彈出一個登入視窗,
可以直接關掉進入下載頁面。















●點擊檔案開始下載
下載頁中,點擊jdk-6u20-windows-i586.exe下載檔案。




2010年6月1日 星期二

AMFPHP Flex Remote

§Flex AMFPHP Remote測試
承下兩篇安裝
  1. Apache2.2 + PHP + MySQL安裝配置
  2. AMFPHP1.9正式版配置
本文環境會如下
一、本文目前配置環境
OS : Windows XP
WebServer : Apache 2.2
PHP : PHP5.2 (本來使用5.3,發生回呼錯誤,先降為5.2待查5.3 bug)。
DataBase : MySQL 5.1
二、本文上個別系統配置資料夾
Apache的DocumentRoot : C:\Web Site,即網站資料夾,對應URL就是(本機上)Http://localhost/。AMFPHP1.9依官方建議資料夾改名為flashservices置放於C:\Web Site\flashservices

  • 網站資料夾建議改成webSite,不要有空白比較好,若修改記得去修改apache的httpd.conf檔。
Remote測試開始
Step1.建立資料夾
於AMFPHP Remote服務所在路徑 flashservices\services\amfphp新增資料夾結構為 tw\remote\test,新增完畢你會有如下路徑結構 flashservices\services\amfphp\tw\remote\test

Step2.建立一個Server端回呼程式
1.編輯一個Hello.php檔如下,編輯完存放於flashservices\services\amfphp\tw\remote\test
2.可以使用notepad++工具來代替筆記本做簡單編輯。
//Server端回呼程式
//請用手打,記得存成UTF-8,若用notepad++在編碼選項中,還可選擇是否檔頭要含BOM。
<?php
class Hello
{
    public function sayHello($name = null)
   {
       return "Hi $name wellcome JBlog!";
   }
}
?>

AMFPHP1.9正式版 配置

§windows配置AMFPHP1.9正式版
安裝與1.9 beta 並無差異
環境:WindowsXP
   Apache 2.2
   PHP 5.3
   MySQL 5.1

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;
 }
}