2010年1月31日 星期日

台灣閩南語常用詞辭典上線

台灣閩南語常用詞辭典上線
http://twblg.dict.edu.tw/tw/

台灣閔南語我嘛會_線上有聲功能網
http://guamae.moe.gov.tw/cgi-bin/mindb/gsweb.cgi?o=dmindb

2010年1月27日 星期三

for...in 陳述式的應用實例

for...in陳述式
for (variableIterant in object) { statement(s); }

請參閱ActionScript 2.0 語言參考


SWF預覽


*主場景上有三個影片按鈕實體,分別為myBtn1~myBtn3

第一影格AS2

//以陣列設定三個連結網址
var myURL:Array = new Array();
myURL[1] = "http://tw.yahoo.com";
myURL[2] = "http://www.adobe.com";
myURL[3] = "http://www.google.com";
//for...in陳述式
for (var mcName in this){
//將for...in輪詢到的實體指定給_mc
var _mc:MovieClip = this[mcName];
  //如果_mc的型態是movieclip,且其參照的實體名稱的第一個字元到第五個字元為myBtn,則執行後面陳述.
if(typeof(_mc) == "movieclip" && _mc._name.substr(0,5)=="myBtn"){
_mc.onRelease=function(){
getURL(myURL[this._name.substr(5,1)], _blank);
//trace(myURL[this._name.substr(5,1)]);
}
}
}

2010年1月24日 星期日

[AS2] substr (String.substr 方法)實例

substr (String.substr 方法)
public substr(start:Number, length:Number) : String


以 length 參數中指定的字元數,從字串的 start 參數指定的索引位置傳回字元。substr 方法不會更改 my_str 指定的字串,而是傳回新字串。

參數
start:Number - 一個整數,指示 my_str 中要用來建立子字串的第一個字元位置。如果 start 是負值,表示開始位置是由字串的結尾決定,-1 就是最後一個字元。

length:Number - 建立的子字串中的字元數。如果未指定 length,這個子字串就會包含由字串開頭到結尾的所有字元。

↑ 以上引用自FLASH 8說明
----------------------------------------------------------------------------------------------------------------------

本實例
***可修改將被擷取的完整字串,此例,原預設值為"有點愛玩FLASH", 可同步更新被擷取的字串(最下方).
***可修改[起始字元索引]與[擷取字數]的數字,也可同步更新被擷取的字串(最下方).

SWF預覽


第一影格AS2
//
var strInput:String = "有點愛玩FLASH";
var firstCharNum:Number = 0;
var charSum:Number = 4;
var mySubStr:String;
//
strInput_txt.text = strInput;
firstChar_txt.text = firstCharNum;
charSum_txt.text = charSum;
//
function catchSubString(){
 mySubStr = strInput.substr(firstCharNum, charSum);
 mySubStr_txt.text = mySubStr;
}
catchSubString();
//
strInput_txt.onChanged = function(newStr_txt:TextField){
 strInput = newStr_txt.text;
 catchSubString();
}
firstChar_txt.onChanged = function(newFirstChar_txt:TextField){
 firstCharNum = Number(newFirstChar_txt.text);
 catchSubString();
}
charSum_txt.onChanged = function(newcharSum_txt:TextField){
 charSum = Number(newcharSum_txt.text);
 catchSubString();
}


FLA下載

2010年1月23日 星期六

轉噗:台版柯博文負責晒衣服任務被國外engadget報導

轉噗:台版柯博文負責晒衣服任務被國外engadget報導
http://www.plurk.com/p/3hdgfj

Optimus Prime in the yard 媽!柯博文在我們家附近耶!
http://www.flickr.com/photos/eason/sets/72157623122213921/

Caption contest: Optimus Prime moonlights as clothes dryer
http://www.engadget.com/2010/01/22/caption-contest-optimus-prime-moonlights-as-clothes-dryer/

[AS2]MovieClip._name(Button._name) + MovieClip.enabled(Button.enabled)屬性

[AS2]MovieClip._name(Button._name) + MovieClip.enabled(Button.enabled)屬性

SWF預覽↓


1.主場景上佈署msg與tf_txt動態文字欄位,msg用來呈現所按下按鈕的實體名稱資訊,tf_txt則呈現myBtn2_btn的enabled屬性被changeEnabled_btn按鈕操控的現況,其值為true或false.

2.一開始預設myBtn1_btn.enabled=true ; myBtn2_btn.enabled=false;  <-- 如此,myBtn1_btn的按鈕功能被啟用,myBtn2_btn的按鈕功能則被停用.


3.changeEnabled_btn可切換myBtn2_btn的enable屬性為true或false, true啟用,false停用.

4.第一影格AS2

//enabled屬性設為true,啟用MovisClip或Button ; 設為false,則停用
myBtn1_btn.enabled = true;
myBtn2_btn.enabled = false;
changeEnabled_btn.flag = -1;
tf_txt.text = myBtn2_btn.enabled;
//
myBtn1_btn.onRelease = function() {
    trace( "you clicked : " + this._name );
//this._name取得myBtn1_btn的實體名稱
msg.text = "Message : you clicked → " + this._name;
};
myBtn2_btn.onRelease = function() {
    trace( "you clicked : " + this._name );
msg.text = "Message : you clicked → " + this._name;
};
//
changeEnabled_btn.onRelease = function() {
this.flag *= -1;
if(this.flag==1){
myBtn2_btn.enabled = true;
}else if(this.flag==-1){
myBtn2_btn.enabled = false;
}
tf_txt.text = myBtn2_btn.enabled;
}

FLA

2010年1月21日 星期四

ActionScript 3.0 可視物件類別表

ActionScript 2.0 移轉_說明 ActionScript 2.0 和 3.0 的不同

ActionScript 3.0 語言和組件參考_ActionScript 2.0 移轉_說明 ActionScript 2.0 和 3.0 的不同
http://help.adobe.com/zh_TW/AS3LCR/Flash_10.0/migration.html

Adobe® Flash® CS4 Professional 線上說明
http://help.adobe.com/zh_TW/Flash/10.0_UsingFlash/WS816BB12E-70DE-48c7-9C6C-4735B11BC9E9.html

ActionScript 3.0 語言和組件參考
http://help.adobe.com/zh_TW/AS3LCR/Flash_10.0/index.html

2010年1月20日 星期三

[AS3]複製影片實體、拖曳、碰撞偵測、音效

[AS3]複製影片實體、拖曳、碰撞偵測、音效

1. 主場景上提供一個複製鈕duplicate_btn, 一個垃圾桶trashCan. 每按duplicate_btn一次可複製一個星星, 星星可被拖曳,若拖曳碰觸到垃圾桶,則被移除.

2. 元件庫有一個影片元件star, 兩個音效檔POP.WAV和ARCHER1.WAV, 右鍵選單/屬性, 分別自訂類別為_starMC、_popSound、_archerSound. (詳細說明可參考前一主題).

SWF預覽



3.第一影格AS3

//
duplicate_btn.buttonMode=true;
duplicate_btn.addEventListener(MouseEvent.CLICK, duplicate);
function duplicate(e:MouseEvent) :void{
var myStar:MovieClip = new _starMC();
addChild(myStar);
myStar.x=Math.ceil(Math.random()*(stage.stageWidth-60)+20);
myStar.y=Math.ceil(Math.random()*(stage.stageHeight-230)+20);
var POP:_popSound=new _popSound();
var channel:SoundChannel = POP.play();
//
myStar.addEventListener(MouseEvent.MOUSE_DOWN, dragStar);
myStar.addEventListener(MouseEvent.MOUSE_UP, releaseStar);
};
function dragStar(e:MouseEvent):void{
e.target.startDrag();
}
function releaseStar(e:MouseEvent):void{
var myStar:MovieClip = e.target as MovieClip;
stopDrag();
if(myStar.hitTestObject(trashCan)){
var ARCHER:_archerSound=new _archerSound();
var channel:SoundChannel = ARCHER.play();
removeChild(myStar);
}
}







2010年1月19日 星期二

AS3取消了AS2的duplicateMovieClip方法,那麼,該如何複製影片實體呢?

AS3取消了AS2的duplicateMovieClip方法,那麼,該如何複製影片實體呢?
請參閱 --->
ActionScript 3.0 語言和組件參考_ActionScript 2.0 移轉_說明 ActionScript 2.0 和 3.0 的不同
http://help.adobe.com/zh_TW/AS3LCR/Flash_10.0/migration.html

(在 ActionScript 3.0 中,請使用 new 運算子來建立新實體)


1.建立一個準備被複製的影片片段,在元件庫中,本例名為star

2.在元件庫中,右鍵按此star,在右鍵選單中點選[屬性]

3.在跳出的元件屬性面板的[連結]區塊,點選[匯出給ActionScript使用]核取方塊,此時,[匯出在第一影格]會自動被點選
4.在[類別]欄位,鍵入 _starMC , 這類別名稱可依Flash命名規則,自由命名. 其下方的[基底類別],預設為flash.display.MovieClip, 代表 _starMC繼承自flash.display.MovieClip類別.

5.按[確定]鈕後,會跳出[ActionScript類別警告]面板.這是說,在軟體預設的外部類別路徑找不到我們自訂的類別檔_starMC,將在匯出swf時,自動產生至swf檔. 所以,就按[確定]鈕.

6.第一影格AS3, 將使用FOR迴圈,產生10個來自_starMC類別的star實體,並控制其x與y

for(var i:uint=1; i<=10; i++){
var star:MovieClip = new _starMC(); //建構_starMC類別的實體star
addChild(star); //將star實體加入到顯示列表
star.x=i*50; //控制其x座標
star.y=i*30+10; //控制其y座標
}


SWF預覽


FLA下載

2010年1月14日 星期四

[AS3] fl.transitions.package包含類別的一些測試

[Flash cs4][AS3][ fl.transitions ]
fl.transitions.package所包含類別的一些測試

fl.transitions


import fl.transitions.*;
import fl.transitions.easing.*;
//
function playBlinds(e:MouseEvent):void{
 TransitionManager.start(img1_mc, {type:Blinds, direction:Transition.IN, duration:7, easing:None.easeNone, numStrips:30, dimension:0});
}
function playFade(e:MouseEvent):void{
 TransitionManager.start(img1_mc, {type:Fade, direction:Transition.IN, duration:10, easing:Strong.easeOut});
}
function playFly(e:MouseEvent):void{
 TransitionManager.start(img1_mc, {type:Fly, direction:Transition.IN, duration:8, easing:Elastic.easeOut, startPoint:8});
}
function playIris(e:MouseEvent):void{
 TransitionManager.start(img1_mc, {type:Iris, direction:Transition.IN, duration:5, easing:Strong.easeOut, startPoint:5, shape:Iris.CIRCLE});
}
function playPhoto(e:MouseEvent):void{
 TransitionManager.start (img1_mc, {type:Photo, direction:Transition.IN, duration:1, easing:None.easeNone});
}
function playPixelDissolve(e:MouseEvent):void{
 TransitionManager.start(img1_mc, {type:PixelDissolve, direction:Transition.IN, duration:2, easing:Regular.easeIn, xSections:50, ySections:50});
}
function playRotate(e:MouseEvent):void{
 TransitionManager.start(img1_mc, {type:Rotate, direction:Transition.IN, duration:3, easing:Strong.easeInOut, ccw:true, degrees:720});
}
function playSqueeze(e:MouseEvent):void{
 TransitionManager.start(img1_mc, {type:Squeeze, direction:Transition.IN, duration:5, easing:Elastic.easeOut, dimension:0});
}
function playWipe(e:MouseEvent):void{
 TransitionManager.start(img1_mc, {type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:4});
}
function playZoom(e:MouseEvent):void{
 TransitionManager.start(img1_mc, {type:Zoom, direction:Transition.IN, duration:3, easing:Elastic.easeOut});
}
//
blinds_mc.addEventListener(MouseEvent.MOUSE_DOWN, playBlinds);
blinds_mc.buttonMode = true;
//
fade_mc.addEventListener(MouseEvent.MOUSE_DOWN, playFade);
fade_mc.buttonMode = true;
//
fly_mc.addEventListener(MouseEvent.MOUSE_DOWN, playFly);
fly_mc.buttonMode = true;
//
iris_mc.addEventListener(MouseEvent.MOUSE_DOWN, playIris);
iris_mc.buttonMode = true;
//
photo_mc.addEventListener(MouseEvent.MOUSE_DOWN, playPhoto);
photo_mc.buttonMode = true;
//
pixelDissolve_mc.addEventListener(MouseEvent.MOUSE_DOWN, playPixelDissolve);
pixelDissolve_mc.buttonMode = true;
//
rotate_mc.addEventListener(MouseEvent.MOUSE_DOWN, playRotate);
rotate_mc.buttonMode = true;
//
squeeze_mc.addEventListener(MouseEvent.MOUSE_DOWN, playSqueeze);
squeeze_mc.buttonMode = true;
//
wipe_mc.addEventListener(MouseEvent.MOUSE_DOWN, playWipe);
wipe_mc.buttonMode = true;
//
zoom_mc.addEventListener(MouseEvent.MOUSE_DOWN, playZoom);
zoom_mc.buttonMode = true;



TransitionManager
TransitionManager.start()方法
public static function start(content:MovieClip, transParams:Object):Transition

import fl.transitions.*;
import fl.transitions.easing.*;
TransitionManager.start(myMovieClip, {type:Zoom, direction:Transition.IN, duration:1, easing:Bounce.easeOut});



startTransition () 方法   
public function startTransition(transParams:Object):Transition
import fl.transitions.*;
 import fl.transitions.easing.*;
 var myTransitionManager:TransitionManager = new TransitionManager(myMovieClip); myTransitionManager.startTransition({type:Zoom, direction:Transition.IN, duration:1, easing:Bounce.easeOut});

2010年1月6日 星期三

[AS2]Flash的影格做亂數撥放,且不重覆

[AS2]Flash的影格做亂數撥放,且不重覆
@ 也是解答知識+提問
http://tw.knowledge.yahoo.com/question/question?qid=1009123003165
Flash的影格可以做到亂數撥放嗎?
@ 其實應該說是-->Flash的影格做亂數跳躍,且不重覆......而其需求是為了在每一影格放置評量題,並達到亂數出題的機制.


2010年1月5日 星期二

阿凡達真相:全球3D大戰

阿凡達真相:全球3D大戰
《阿凡達》超賣座!2010年3D電視橫掃你家
阿凡達 敲開4700億商機大門
觸動五感 南韓推出4D版「阿凡達」