[從flash小遊戲學習as3]學習拖曳、讀圖檔、動態文字、動態MovieClip─MyDear

摘要:[從flash小遊戲學習as3]學習拖曳、讀圖檔、動態文字、動態MovieClip─MyDear

這個遊戲本來是做模擬養成,但是我做失敗了Orz

應該說沒想像中有趣。

所以做成教學,好讓更多人能做得更好~

 

首先是拖拉,

將你的Movie Clip命名(decoRed),

然後加入以下程式碼:


decoRed.addEventListener(MouseEvent.MOUSE_DOWN, doDrag);
decoRed.addEventListener(MouseEvent.MOUSE_UP, doDrop);
function doDrag(e:MouseEvent):void
{
	e.target.startDrag();
}
function doDrop(event:MouseEvent):void
{
	//do something
        var dst=event.target;
	dst.stopDrag();
}

 

接著是讀檔,其實上上一篇就有教,記得還要新增as檔案喔!
 


import flash.display.Loader;
import flash.net.FileReference;
import flash.net.FileFilter;

var imageFilter=new FileFilter("Images", "*.jpg;*.jpeg;*.gif;*.png");
var fileR:FileReference=new FileReference();
fileR.addEventListener(Event.SELECT, selectHandler);

//讀檔用按鈕
btnSelect.addEventListener(MouseEvent.CLICK,selectImage);
function selectImage(e:MouseEvent):void{ // click button
   fileR.browse([imageFilter]); // browse files
}

//select1是個movie clip顯示圖檔
function selectHandler(e:Event):void{ // file selected
   MyDear.s=fileR.name;
   fileR.load(); // load file
   var _ldr:Loader = new Loader();
   var _file:String=MyDear.s;
   _ldr.load(new URLRequest(_file));
   select1.addChild(_ldr);
}

再來就是動態文字,在label的property(屬性)點選動態文字,然後輸入名稱,
接著這樣做:
 


// label 叫做txName
txName.text="MyDear~";

 

動態MovieClip的增加與刪除就比較麻煩,
不過就是先將你要新增的MoviClip範例按Library(元件庫)→右鍵那個元件→屬性→進階(Advanced)→勾選中間兩個的上面for action script那個。
這樣你就會看到你的元件顯示export

接著程式碼這樣做:


//元件叫做decoBlows
var decoBlows:MovieClip = new blow();
addChild(decoBlows);

若要刪除則是:
 


removeChild(decoBlows);

 

還有一點提醒,有的Flash太聰明了,要用外部嵌入文字字體,

那樣很麻煩,但如果需要,有兩種方法:

1.寫as將字體加入

2.用內部字體選項,好處是不用寫程式,缺點是檔案會變很大:在label之類的點屬性,看到內部文字還是字體的,點入後,
左方是顯示他原本的字體,右方則是遇到什麼時他會知道要用這個字體,像是中文、標點符號等等。

如果沒有處理,可能會導致亂碼、顯示奇怪的內容。

遊戲網址:

https://e12f2d42670c2853bb5eec41159a8cadd640d059.googledrive.com/host/0B7hg_8WvMyfJREZzcDRTbm00dVU/index.html

 

下個遊戲會比這個好的,我相信!