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/

2011年5月11日

[AS3.0]初體驗紀錄_基礎code

三個核心抽象類別(Abstract Class)
1.DisplayObject(顯示)
2.InteractiveObject(顯示+互動)
3.DisplayObjectContainer(顯示+互動+容器)

所有的顯示物件都繼承1類別,屬性有x,y,width,height.....等
2類別繼承自1外,還增加了滑鼠和鍵盤的互動。實體子類別TextField & SimpleButton
3類別具有1和2的功能外,還有當容器的角色,這部份有Stage,Sprite,Loader,MovieClip
  Stage舞台
  Sprite容器(沒有時間軸)
  Loader載入外部資源
  MovieClip容器(有時間軸的動畫)

動態加入刪除物件
numChildren
  容器.numChildren屬性用來找到它所有的子物件量
getChildAt
  容器.getChildAt(int)方法用來得到子物件指標(類別)
addChild / removeChild
  容器.addChild(物件) 將物件放到時間軸的顯示中
addChildAt / removeChildAt
  容器.addChildAt(物件,深度) 將物件放到時間軸的顯示中,並給予深度
  ※深度:0最底層;n最上層
swapChildren / swapChildrenAt
  容器.swapChildren(物件A,物件B) 將兩物件互換
  容器.swapChildrenAt(深度A,深度B) 將不同深度兩物互換
getChildIndex / setChildIndex
  容器.getChildIndex(物件) 取得物件深度
  容器.setChildIndex(物件,深度) 設定物件深度
  //2011.8.26加註 使用方式 例如view.testMC 要在整個view下放到最上層
  view.setChildIndex(view.testMC , view.numChildren);
getChildByName
  容器.getChildByName(name:String)用物件名稱取得此子物件指標(類別)

2011年5月5日

[AS3.0]初體驗紀錄_雜(百寶箱)

物件name.addEventListener(Event.ENTER_FRAME, function_name);
functoin function_name(event:Event):void {
 ..............
}


function 函數名(參數1:資料型態,參數2:資料行態,.....):傳回值資料型態{ }
若沒有指定傳回值則為void


====================================================================
EventListerner事件監聽器;接收事件時addEventListener();刪除時removeEventListerner();
my_mc.addEventListener(MouseEvent.ROLL_OVER, mouseStateHandler);
my_mc.addEventListener(MouseEvent.ROLL_OUT, mouseStateHandler);
my_mc.addEventListener(MouseEvent.CLICK, clickHandler);
function mouseStateHandler(event:MouseEvent):void {
 switch (event.type) {
  case MouseEvent.ROLL_OVER :
   output_txt.text = "ROLL_OVER!";
   break;
  case MouseEvent.ROLL_OUT :
   output_txt.text = "ROLL_OUT!";
   break;
 }
}
function clickHandler(event:MouseEvent):void {
 output_txt.text = "";
 my_mc.removeEventListener(MouseEvent.ROLL_OVER, mouseStateHandler);
 my_mc.removeEventListener(MouseEvent.ROLL_OUT, mouseStateHandler);
 my_mc.removeEventListener(MouseEvent.CLICK, clickHandler);
}




==================================================================
檢查事件監聽器是否已登錄
mc.hasEventListener(Event.ENTER_FRAME)
檢查事件目標(其實就是物件)
event.target (指物件裡的零件)
event.currentTarget (指物件)
  該屬性有x,y,width,height,name........

==================================================================
Flash Player動態/非動態
指的是是否焦點在此視窗上
(運用上像Funtown的牌桌,一離開視窗就會沒音樂,但一點選又繼續播放)
my_mc.addEventListerner(event.ACTIVATE, function_name1);
my_mc.addEventListerner(event.DEACTIVATE, function_name2);
主要就是如果現在player是在焦點上就會做function_name1的事;不是就會function_name2


==================================================================
透明度&顯不顯示
mcStar.alpha = 1 (全亮) ~ 0 (透明);
mcStar.visible = true ; false;
要提取成文字時String(mcStar.alpha);, String(mcStar.visible);

==================================================================
/* 阿斗自習 */
三個物件: inText,outText,myBtn
var newURL:String = "http://www.yahoo.com.tw";
myBtn.addEventListener(MouseEvent.CLICK, gotheURL);
function gotheURL(event:MouseEvent):void{
 var adobeURL:URLRequest = new URLRequest(newURL);
 navigateToURL(adobeURL);
}

inText.addEventListener(TextEvent.TEXT_INPUT, changeURL);
function changeURL(item:TextEvent):void{
 if(item.text == ";"){
  newURL = "http://";
 } else {
  newURL += item.text;
 }
 outText.text = "New URL:" + newURL;
}


自行輸入想要的URL,按下Btn就會連結!!
==================================================================

[AS3.0]初體驗紀錄_如何匯入import as檔?

雖然這問題很基礎,但一開始還真是不知如何做起

網友大部份都直接說寫成另一個as檔

但我資質欠佳還是不懂是怎麼運作


通常會Flash的朋友都會一點AS,就是在影格裡加上action

影格上會出現個a的標示,直接在fla匯出swf就ok了~

但如何把swf和as兩者分開呢?因為這樣對程式開發者而言比較好維護,不用老是要打開fla來修



有位網友他把import as寫的很清楚

1.先有一個ShapeExample.as

2.在Flash的as裡(即fla檔中影格上的a)寫上


import ShapeExample;
var shape:ShapeExample = new ShapeExample;
addChild(shape);



在此,我測試了好幾遍都不行,原因可能是上面用法是AS2
於是用以下寫法就ok了

include "ShapeExample.as";

##### 2011.5.6 #####
AS中使用MovieClip類別,如何匯入MovieClip?
import flash.display.MovieClip;
import flash.display.*;

##### 2011.5.16 #####
了解網友為什麼會這樣寫了
import ShapeExample;
var shape:ShapeExample = new ShapeExample;
addChild(shape);


ShapeExample指的是已經包裝好的package
package{
  public class ShapeExample {
    ...........
  }
}
所以才會用import!!
詳請看[AS3.0]初體驗紀錄_基礎code