設定並安裝手機驅動 ( 缺檔案 )

Step 0 : 手機連接上電腦

Step 1 : 手機上「設定」勾選「開啟開發人員選項」
Step 2 : 手機上「設定」勾選「USB 除錯中」

Step 3 : 安裝驅動 ( HTC Driver/Driver Files/Vista_x86 )

Step 4 : > cmd >
1. 開啟執行 [Win]+[R] 並輸入 cmd ( 命令提示字元 )
2. cd (解壓縮目錄)\android_sdk\sdk\platform-tools
3. adb
4. adb devices

※ 若無法成功時
adb kill-server
adb

※ 豌豆筴
-> 找手機 Driver
-> 破解軟體

Bitmapdata 截圖

import flash.events.MouseEvent;
import flash.display.BitmapData;
import flash.geom.Point;
import flash.display.MovieClip;
import flash.geom.Rectangle;

mask_mc.addEventListener(MouseEvent.MOUSE_DOWN,OnMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP,OnMouseUp);
function OnMouseDown(evt:MouseEvent)
{
    mask_mc.startDrag(false,new Rectangle(source_mc.x,source_mc.y,source_mc.width-mask_mc.width,source_mc.height-mask_mc.height));
}
function OnMouseUp(evt:MouseEvent)
{
    mask_mc.stopDrag();
    getThumbnail();
}

function getThumbnail()
{
    var nX:Number = source_mc.x - mask_mc.x;
    var nY:Number = source_mc.y - mask_mc.y;
    var pt:Point = new Point(mask_mc.x,mask_mc.y);
    pt = source_mc.globalToLocal(pt);
    var nW:Number = mask_mc.width;
    var nH:Number = mask_mc.height;
    var rect:Rectangle = new Rectangle(pt.x,pt.y,nW,nH);

    var bitmapdata:BitmapData = new BitmapData(nW,nH);
    var bitmapdataSource:BitmapData=new BitmapData(source_mc.width,source_mc.height);
    bitmapdataSource.draw(source_mc);
    
    bitmapdata.copyPixels(bitmapdataSource, rect, new Point(0, 0));

    if (getChildByName("bmp") != null)
    {
        removeChild(getChildByName("bmp"));
    }
    var bitmap:Bitmap = new Bitmap(bitmapdata);
    bitmap.name = "bmp";
    bitmap.x = source_mc.x + source_mc.width;
    bitmap.y = source_mc.y + source_mc.height - bitmap.height;
    this.addChild(bitmap);
}

參考資料

關於 XML(一)使用 Flash 載入 XML 資料

var verLoader:URLLoader = new URLLoader(new URLRequest("version.xml"));
verLoader.addEventListener(Event.COMPLETE,OnComplete);
function OnComplete()
{
	var verXML:XML = new XML(verLoader.data);
	trace(verXML);
}

var articleXML:XML = new XML(articleLoader.data);
var i:Number=0;

while(articleXML.article[i])
{
	articles[i]=new Object();
	articles[i].aid=articleXML.article[i].aid;
	articles[i].photo=articleXML.article[i].photo;
	articles[i].title=articleXML.article[i].title;
	articles[i].description=articleXML.article[i].description;
	i++;
}

自定義附帶傳送參數事件

建構事件

package
{
	import flash.events.Event;
	public class MuseumEvent extends Event
	{
		public static const CHANGE_ROOM:String = "CHANGE_ROOM";
		public var data:Object;
		public function MuseumEvent(_type:String, _bubble:Boolean = false , _object:Object = null)
		{
			super(_type, _bubble, false);
			data = _object;
		}
	}
}

使用事件

// 收
this.addEventListener(MuseumEvent.CHANGE_ROOM,OnChangeRoom);

// 發
dispatchEvent(new MuseumEvent(MuseumEvent.CHANGE_ROOM,true,{room:"LOBBY"}));

// 執行
function OnChangeRoom(evt:MuseumEvent){trace(evt.data.zoom);}

3dsmax 拆 UV ( 方形物體 )

Step 1: 建好一個模並且加好材質

Step 2:
Modify 選擇 Unwrap UVW

Step 3 :
Selection Modes > Face Sub-object Mode

Step 4 :
選取整個目標

Step 5 :
Mapping > Normal Mapping

Step 6 :
選擇 Box Mapping > OK

Step 7 :
File > Save UVs

Step 8 :
命名之後儲存

Step 9 :
關掉 Edit UVWs 視窗

Step 10 :
選擇 Load…

Step 11 :
選擇剛剛儲存的 uvw 檔, 開啟

Step 12 :
開啟 Render To Texture 視窗 ( 快速鍵 0 )

Step 13 :

  • Selected Element Common Setting > File Name and Type 檔名隨便, 副檔名設成 png 或 jpg
  • 圖片大小設成 512 x 512
  • 按下 Render

Step 14 :
出現錯誤時選擇 Continue

Step 15 :
算完圖後先將視窗關掉

Step 16 :
回到 Modify > Automatic Flatten UVs > Load

Step 17 :
選擇剛剛儲存的 uvw 檔, 開啟

Step 18 :
開啟 Render To Texture 視窗 ( 快速鍵 0 )

Step 19 :
直接按下 Render, 結果應該會像左邊那張圖一樣
切換成 Alpha Channel 看起來會像右邊那張圖一樣

Step 20 :
按下 Save Image

Step 21 :
存檔類型選擇 *.png

Step 22 :
選擇 RGB 24 bit > 按下 OK

Step 23 :
編輯剛剛存的 png 檔完後儲存覆蓋原本的 png 檔

Step 24 :
回到 3dsmax 開啟材質球 ( 快速鍵 : M )

Step 25 :
選擇一顆空白的材質球 > 按下 Diffuse 旁邊的小框框

Step 26 :
選擇第一個 Bitmap 按下 OK

Step 27 :
選擇剛剛畫好的材質按下「開啟」

Step 28 :
將材質球拉到物件上 > 再按下 Show Standard Map in View Port

Step 29 :
算一張圖來看看 ( 快速鍵 F9 )

Arduino – 可動式電阻

int potPin = 0; // 宣告類比腳位輸入的PIN腳
int val = 0; // 宣告變數Val = 0

void setup() {
Serial.begin(9600); //設定SerialPort的速度9600 = 9600bit/s
}

void loop() {
val = analogRead(potPin); // 用analogRead()這個函式讀取特定腳位的數值到變數val
Serial.print("Val : "); //印出數值在Serial.Monitor
Serial.print(val);
Serial.print("\n");
delay(150); //延遲讀入的時間為150ms
}

所讀到的最大值與最小值

使用 DataGrid

建立一個 DataGrid

import fl.controls.dataGridClasses.DataGridColumn;

//------------------------------------------------------------| 宣告欄位的名稱

var ID:DataGridColumn = new DataGridColumn("ID");
var time:DataGridColumn = new DataGridColumn("time");
var captionAb:DataGridColumn = new DataGridColumn("captionAb");
var captionCh:DataGridColumn = new DataGridColumn("captionCh");

//------------------------------------------------------------| 更改欄位的標籤

ID.headerText = "ID";
time.headerText = "時間";
captionAb.headerText = "原文";
captionCh.headerText = "中文";

//------------------------------------------------------------| 設定欄位的寬度

ID.width = 40;
time.width = 40;
captionAb.width = 250;
captionCh.width = 150;

//------------------------------------------------------------| 設定排序方式

ID.sortOptions = Array.NUMERIC;

//------------------------------------------------------------| 將欄位指定給 DtaGrid

var dgCols:Array = [ID, time,captionAb,captionCh];
caption_dg.columns = dgCols;

//------------------------------------------------------------| 新增資料

caption_dg.addItem(
{
    ID:i+1,
    time:CaptionInfo.captions_time[i],
    captionAb:CaptionInfo.captions_captionAb[i],
    captionCh:CaptionInfo.captions_captionCh[i]
});

常用的事件

項目點選時

fl.events.ListEvent.ITEM_CLICK

項目變更時

flash.events.Event.CHANGE