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"
);
2010年5月4日 星期二
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>
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實體存在,傳回實體
左轉
獨體 (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的特性
下例Sprite的Width直接給予數值會改變其Scalx來因應改變......
200 x = 300 ; x = 300 / 200
Example:
- Sprite的Width與Height屬性是來自於繼承鍊中的抽象父類別DisplayObject。
- DisplayObject只是個抽象的顯示物件(他不能實體化)他的Width與Height是用來形容任何繼承他的顯示物件的長寬。
- Sprite是一個容器,其容器的長、寬是由子顯示物件的長寬來決定。(容器是拿來裝東西的,所以其長寬當然是看裝的東西的位置與長寬來決定)。
下例Sprite的Width直接給予數值會改變其Scalx來因應改變......
200 x = 300 ; x = 300 / 200
Example:
2010年4月18日 星期日
拖曳基礎原理,AS3
顯示元件拖曳基礎原理
Fundamentals of Drag for DisplayObject.
基本觀念:
example:
Fundamentals of Drag for DisplayObject.
基本觀念:
- 會使用mouseDown、mouseMove、mouseUp,三個事件。
- mouseDown時記錄住滑鼠在Stage上的座標,並加入mouseMove與mouseUp事件偵聽。
- 當mouseMove時使用新的滑鼠座標減去mouseDown時座標求得offset。
- 將拖曳對像的座標+offset。
- mouseUp發生時移除mouseMove,與mouseUp事件偵聽。
example:
深入淺出SQL閱讀整理一
第一章 資料與表
建立資料庫
[command] [target];
CREATE DATABASE yourDataBaseName;
example:
CREATE DATABASE my_friend_db;
USE yourDataBaseName;
example:
USE my_friend_db;
建立資料表
CREATE TABLE yourTableName
(
columnNameN dataType ,
.
.
columnName(N+1) dataType
);
example:
CREATE TABLE my_friend_list;
(
last_name VARCHAR(20),
first_name VARCHAR(20),
email VARCHAR(50),
birthday DATE,
profession VARCHAR(50)
);
DESC yourTabelName;
example:
DESC my_friend_list;
查詢結果
資料表中加入資料
INSERT INTO yourTableName
(
columnName1 dataType , columnName2 dataType, .....
)
VALUES
(
value1 , value2,......
);
example:
INSERT INTO my_friend_list
(
last_name , first_name , email , birthday , profession
)
VALUES
(
'Tsai', 'Jeffrey', 'jeffrey@gmail.com, '1978-11-20', 'Programmers'
);
SELECT * FROM yourTableName;
example:
SELECT * FROM my_friend_list;
*字號代表選擇每個欄位。
刪除資料表
DROP TABLE yourTableName;
example:
DROP TABLE my_friend_list;
建立資料庫
CREATE DATABASE yourDataBaseName;
使用資料庫
USE yourDataBaseName;
建立資料表
CREATE TABLE yourTableName( columnName1 dataType , columnName2 dataType .......);
檢視資料表
DESC yourTabelName;
資料表中加入資料
INSERT INTO yourTableName( columnName1 dataType , columnName2 dataType, .....)
VALUES( value1 , value2,......);
查詢資料表內容
SELECT * FROM yourTableName;
刪除資料表
DROP TABLE yourTableName;
- 關聯式資料庫管理系統(relational database management system , RDBMS)。
- 資料庫(database , DB):存有資料表與其他相關SQL結構的容器。
- 資料表(table) :由資料欄與資料列構成。
- 資料欄(column) : 儲存資料表理的一塊資,常以field表之。"垂直方向"
- 資料列(row) :一組能形容某項事務的欄位集合,常以record表之。"水平方向"
建立資料庫
[command] [target];
CREATE DATABASE yourDataBaseName;
example:
CREATE DATABASE my_friend_db;
- SQL資料庫或資料表的名稱,不可出現空格,請以底線代替空格。
- 指令敘述以;號結尾。
- SQL本身不區分大小寫,但指令大寫是優良的設計慣例,某些資料庫要求關鍵字大寫。
USE yourDataBaseName;
example:
USE my_friend_db;
建立資料表
CREATE TABLE yourTableName
(
columnNameN dataType ,
.
.
columnName(N+1) dataType
);
example:
CREATE TABLE my_friend_list;
(
last_name VARCHAR(20),
first_name VARCHAR(20),
email VARCHAR(50),
birthday DATE,
profession VARCHAR(50)
);
- 若不想欄位接受null,則在DataType後面加上NOT NULL即可,例 last_name VARCHAR(20) NOT NULL。
- 若是想要有預設值 DEFAULT yourValue。
DESC yourTabelName;
example:
DESC my_friend_list;
查詢結果
資料表中加入資料
INSERT INTO yourTableName
(
columnName1 dataType , columnName2 dataType, .....
)
VALUES
(
value1 , value2,......
);
example:
INSERT INTO my_friend_list
(
last_name , first_name , email , birthday , profession
)
VALUES
(
'Tsai', 'Jeffrey', 'jeffrey@gmail.com, '1978-11-20', 'Programmers'
);
- 在VALUES中若是對應欄位的dataType是屬於字元、文字、日期都必需使用'單引號。
- 資料欄順序必須對應值得順序。
- INSERT INTO敘述可以不依Table理的欄位順序打入,但記得值順序需要對應欄。
- 可以省略資料欄名稱列表,但資料值必須全部填入,而且資料值順序必須與Table裡完全一樣。
- CHAR或CHARACTER:字元,嚴謹須先設定好長度。
- VARCHAR:儲存文字,最大255字元,很有彈性,會配合資料長度調整大小。
- DEC或DECIMAL:小數。
- DATETIME或TIMESTAMP:紀錄日期與時刻。
- DATE:只記錄日期。
- INT或INTEGER:整數。
- BLOB:紀錄大量文字資料。
SELECT * FROM yourTableName;
example:
SELECT * FROM my_friend_list;
*字號代表選擇每個欄位。
刪除資料表
DROP TABLE yourTableName;
example:
DROP TABLE my_friend_list;
- 刪除前務必注意與小心,避免刪錯。
建立資料庫
CREATE DATABASE yourDataBaseName;
使用資料庫
USE yourDataBaseName;
建立資料表
CREATE TABLE yourTableName( columnName1 dataType , columnName2 dataType .......);
檢視資料表
DESC yourTabelName;
資料表中加入資料
INSERT INTO yourTableName( columnName1 dataType , columnName2 dataType, .....)
VALUES( value1 , value2,......);
查詢資料表內容
SELECT * FROM yourTableName;
刪除資料表
DROP TABLE yourTableName;
2010年2月24日 星期三
Flash的Label於Flex使用
因專案關係,需將flash繪製之swf給予Flex使用,Flex使用反射機制將swf內之元件反射出Class使用,但該元件使用到flash之Label,flash之Label使用fl.controls.Label,而Flex之Label是屬於mx.controls,兩者不相同,無法用來轉型操作。
可以使用一個非正規的偷懶方如下:
假設有一變數flashLabel型態為DisplayObject並且以參照了flash的Label
那麼可以非正規使用
if( (flashLabel as Object).hasOwnProperty("text"))
(flashLabel as Object).text = "SJ";
那麼我想因該是可以使用反射機制來取得Class來操作吧!有空再來試驗一下!
可以使用一個非正規的偷懶方如下:
假設有一變數flashLabel型態為DisplayObject並且以參照了flash的Label
那麼可以非正規使用
if( (flashLabel as Object).hasOwnProperty("text"))
(flashLabel as Object).text = "SJ";
那麼我想因該是可以使用反射機制來取得Class來操作吧!有空再來試驗一下!
訂閱:
文章 (Atom)
