tinhoctuoixanh@gmail.com

Thứ Hai, 6 tháng 12, 2010

Link hay tổng hợp học Adobe Flash CS5, CS4

Link hay tổng hợp học Adobe Flash

Crack Flash cs4, Flash cs5

Theo lẽ thông thường đọc hướng dẫn crack thì ai cũng crack được. Vậy mà mình đọc thực hành làm đúng mà không crack được, mõi lần có kết nối Internet thì Flash cs4, Flash cs5 của mình lại bị các serial không dùng được, còn nữa không cho mở để làm việc luôn. Thật là bực mình hết sức

May quá hôm này mình thực hiện được rồi và chia sẽ cho những bạn gặp khó khăn giống như mình.

Về Flash CS4 thì
1/ xem hướng dẫn http://www.dailymotion.com/video/x87...hcs4crack_tech
http://www.dailymotion.com/video/x87cub_adobeflashcs4crack_tech
http://www.mediafire.com/?dmwrmjjottm
Crack CS4

2/ download file crack
http://www.mediafire.com/?dmwrmjjottm
3/ giải nén copy mọi thứ(amtlib.dll, WALITUTS.NFO) vào thư mục cài đặt Flash cs4
chú ý backup lại amtlib.dll lỡ có xảy ra lỗi

Về Flash CS5 thì tương tự
1/hướng dẫn
http://rao365.com/phan-mem/136803-cr...ional-cs5.html
http://rao365.com/phan-mem/136803-crack-adobe-flash-professional-cs5.html

download file crack ADOBE_CRACK32.rar.html
copy file amtlib.dll vào thư mục cài đặt flash cs5 (nhớ backup nhé)

Mong là những người bạn gặp khó khăn giờ đã được giải quyết nhé


CRACK Adobe Flash Professional CS5

DOWNLOAD THÌ CÁC BẠN VÔ TRANG CHỦ CHO CHUẨN: WWW.ADOBE.COM ( HƠI CHẬM TÍ NHƯNG YÊN TÂM)
Crack là Chỉ Đối với Windows 32-Bit

Hướng dẫn: Vào thư mục cài đặt Flash của bạn (Hầu hết Có lẽ "C: \\ Program Files \\ Adobe \\ Adobe Flash CS5" và Thay thế Các amtlib.dll với các mới được đưa ra trong các crack

Download Crack (32-bit)



Code:

http://hotfile.com/dl/51245298/e00ce...CRACK.rar.html

-------------------------------------------------- ----------------------

CRACK CHO Không hợp lệ SERIAL NUMBER (64-bit) VẤN ĐỀ
Lưu ý: Crack là Chỉ Đối với Windows 64-Bit

HƯỚNG DẪN:
Đối với các phiên bản 64 bit của Windows như Win 7 x64 hai bản sao của amtlib.dll phải được thay thế. (Sao lưu amtlib.dll ban đầu của bạn)

Trước tiên crack 32-bit (tải về từ trên) amtlib.dll phải được sao chép vào "X: \\ Program Files (x86) \\ Adobe \\ Adobe Flash CS5 \\" ghi đè lên tập tin đó là có. (Chú ý: Xin vui lòng lưu ý rằng một lần nữa thay thế x86 amtlib.dll với crack 32-bit, không 64-bit).

và 64-bit vá crack (tải về từ bên dưới) amtlib.dll nên được sao chép vào "X: \\ Program Files \\ Adobe \\ Adobe Flash CS5 (64 Bit) \\" (Chú ý: Xin vui lòng lưu ý rằng một lần nữa thay thế x64 amtlib.dll với crack 64-bit, không 32-bit).

Download Crack (64-bit)
ADOBE_CRACK64.rar.html


Code:

http://hotfile.com/dl/51245171/84b45...ACK64.rar.html
http://www.vnfx.com/vb/showthread.php?7372-T%C3%ACm-key-Flash-CS5

http://rao365.com/phan-mem/136803-crack-adobe-flash-professional-cs5.html

Theo VNFX

Thứ Hai, 29 tháng 11, 2010

ActionScript 3.0

Cú pháp của Action Script 3.0.
Lập trình hướng đối tượng.
Cơ chế quản lý sự kiện trong Flash.

Cú pháp

Sử dụng ActionScript là cách duy nhất để tạo ra các ứng dụng có sự tương tác người sử dụng
Biến
var x = 10.2;
var x;

Kiểu dữ liệu : int (số nguyên), number (số thập phân) string (ký tự) Boolean ( kiểu logic đúng hoặc sai)

Câu lệnh điều kiện
if (vDieuKien == true) {
doChuongTrinhA();
} else if (myValue == 2) {
doChuongTrinhB();
}
} else {
doThoat();
}

Toán tử so sánh == >, < , >=, <= … if ((vDieuKien1 == 1) && (vDieuKien2 == “KhachHang”)) { doThuTucA(); } Vòng lặp for(var i:int=0;i<10;i++) int =" 0;" int =" 0;" numb ="="" style="font-weight: bold;">Hướng đối tượng OOP- Object-Oriented Programming
Lớp (Class), Đối tượng (Object), Thuôc tinh (attribute), phương thưc (method)…..
tính bao gói, tính, kê thưa, tính đa hình ….

Đối tượng ( trạng thái (state) và hành động (behaviour) )
variable thuộc tính (attribute; property), identifier
phương thức (method)

OOP thường sử dụng hai thuật ngữ mà sau này Java cũng sử dụng là thuộc tín
(attribute) và phương thức (method) để đặc tả tương ứng cho trạng thái (state) hay biế
(variable) và hành động (behavior).

Khái niệm
+ Lập trình hướng đối tượng (OOP) là một phương pháp thiết kế và phát triển Phần mềm dựa trên kiến trúc lớp và đối tượng
+ Đối tượng (Object) là một thực thể mềm bao bọc các thuộc tính và các phương thức liên quan
+ Một đối tượng cụ thể gọi là một thể hiên ( instance)
+ Lớp (class) là một thiết kế (blueprint) hay một mẫu ban đầu (prototype) định nghĩa các thuộc tính và các phương thức chung cho tất cả các đối tượng của cùng một loại nào đó. Một đối tượng là một thể hiện cụ thể của một lớp.
+ Thuộc tính lớp (class attribute) là một hạng mục dữ liệu liên kết với một lớp cụ thể mà không liên kết với các thể hiện của lớp. Nó được định nghĩa bên trong định nghĩa lớp và được chia sẻ bởi tất cả các thể hiện của lớp.
+ Phương thức lớp (class method) là một phương thức được triệu gọi mà không tham khảo tới bất kỳ một đối tượng nào. Tất cả các phương thức lớp ảnh hưởng đến toàn bộ lớp chứ không ảnh hưởng đến một lớp riêng rẽ nào.
+ Thuộc tính (attribute) là dữ liệu trình bày các đặc điểm về một đối tượng.
+ Phương thức (method) có liên quan tới những thứ mà đối tượng có thể làm. Một phương thức đáp ứng một chức năng tác động lên dữ liệu của đối tượng (thuộc tính).
+ Một thông điệp (message) là một lời yêu cầu một hoạt động. Một thông điệp được truyền khi một đối tượng triệu gọi một hay nhiều phương thức của đối tượng khác để yêu cầu thông tin.
+ Đóng gói (encapsulation) là tiến trình che giấu việc thực thi chi tiết của một đối tượng.
+ Che giấu thông tin (information hiding) là việc ẩn đi các chi tiết của thiết kế hay thi công từ các đối tượng khác
+ Thừa kế (inheritance) nghĩa là các hành động (phương thức) và các thuộc tính được định nghĩa trong một lớp có thể được thừa kế hoặc được sử dụng lại bởi lớp khác.
+ Lớp cha (superclass) là lớp có các thuộc tính hay hành động được thừa hưởng bởi một hay nhiều lớp khác. Lớp con (subclass) là lớp thừa hưởng một vài đặc tính chung của lớp cha và thêm vào những đặc tính riêng khác.
+ Đa hình (polymorphism) nghĩa là “nhiều hình thức”, hành động cùng tên có thể được thực hiện khác nhau đối với các đối tượng các lớp khác nhau.



package {
import flash.display.Sprite;
public class Xedap extends Sprite
{
public function Xedap()
{
var maxspeed;
var xich;
}
public function start() : void
{
}
public function end() : void
{
}
}
}



Package {
Import flash.display.Sprite;

public class XedapDiaHinh extends Xedap{
public function leodoc():void{

}
}
}

public function hocdixedap(xd:Xedap):void
{
xd.start();

}

var xd : XedapDiaHinh = new XedapDiaHinh();
Ng.hocdixedap(xd);

Event - Sự kiện
Định nghĩa sự kiện.
Cơ chế làm việc của sự kiện trong Flash.
Áp dụng sự kiện trong Flash

Sự kiện là gì?
Event là lớp nằm ngay dưới lớp Object, là lớp cha của tất cả các lớp khác. Nó là lớp cơ bản
để tạo ra các đối tượng Event, là biến truyền vào trong các hàm lắng nghe sự kiện khi một
Event xảy ra.
Các thuộc tính của lớp Event mang theo những thông tin cơ bản về một Event, như là kiểu
sự kiện hoặc hành động mặc định của sự kiện có thể bị hủy bỏ hay không. Trong phần lớn
Event, những thông tin cơ bản này là rất qua n trọng. Một vài loại sự kiện khác có thể mang
theo nhiều thông tin hơn, ví dụ: Một sự kiện được phát ra khi click chuột, nó có thể mang
theo tham chiếu tới đối tượng được click, vị trí click (tọa độ x và y)...
Thêm một điều quan trọng nữa, đó là một đối tượng chỉ có thể lắng nghe sự kiện khi sự kiện đó do chính nó phát ra. Bạn có thể hỏi như vậy thì sử dụng thế nào, phần tiếp theo sẽ nói
tới điều này.
Sử dụng sự kiện như thế nào?
button.addEventListener(MouseEvent.CLICK, onClickHandler);

function onClickHandler(e: MouseEvent): void
{
trace(“bạn vừa click vào button”);
}


public function addEventListener(type:String,
listener:Function,
useCapture:Boolean = false,
priority:int = 0,
useWeakReference:Boolean = false):void

useCapture: giá trị, mặc đinh là fasle, nếu nó là true, sự kiện sẽ được xử lý ngay
trong quá trình nắm bắt của luồng sự kiện. Hãy nhớ rằng, tại giai đoạn nắm bắt,
node mục tiêu chưa được xử lý nên hàm bắt sự kiện sẽ không được gọi.
priority: mặc định là 0, nó cho biết độ ưu tiên của 1 sự kiện nếu cùng một lúc xảy
ra nhiều sự kiện, nếu tham số này càng lớn thì sự kiện có độ ưu tiên càng cao
useWeakReference: tham số này quyết định những tham chiếu tới việc lắng nghe
sự kiện này là mạnh hay yếu, mặc định là false, có Nghĩa là mạnh. Nếu
useWeakReference = false, nó sẽ ngăn ngừa việc các tham chiếu bị xóa bỏ bởi
bộ dọn rác.

Cần chú ý những gì khi làm việc với Event?
1. Mỗi đối tượng chỉ có thể nghe được một số loại Event (không kể những loại do
người dùng tự định nghĩa), tất cả đều được liệt kê trong đặc tả của lớp mà đối tượng
đó thuộc về. Nên đọc kĩ những đặc tả này trước khi làm việc.
2. Một đối tượng phát ra được Event nào thì có thể và chỉ có thể nghe được Event đó.
Thậm chí, nếu 2 đối tượng thuộc cùng 1 class cũng không thể nghe được sự kiện do
đối tượng kia phát ra
3. Nhớ removeEventListener() sau khi sử dụng, để giảm bộ nhớ mà chương trình
chiếm dụng.
4. Không nên để một đối tượng lắng nghe quá nhiều Event nếu bạn chưa thực sự hiểu
rõ về chúng. Sự thật, điều này làm chương trình của bạn chạy không ổn định.
5. Hãy tự tạo cho mình những Event riêng, điều này rất tốt vì như vậy bạn có thể kết
hợp nhiều Event có sẵn để tạo được 1 Event riêng, nó giải quyết được vấn đề mà
mục 4 nêu ra.

3.4: Bạn vẫn còn thắc mắc chứ?
Tới đây chắc bạn đã phần nào hiểu được về Event. Tôi xin được đưa ra một ví dụ cụ thể
cho các chú ý đã nêu trên
Bước 1: Tạo một file flash mới đặt tên là EventExample.fla, lưu lại. Chúng ta không cần vẽ
gì trong file này cả, tìm tới màn hình properties của stage chính, viết tên document class là
Main.

Bước 2: Tạo một file mới có tên Main.as, lưu vào cùng thư mục với file đã tạo trong bước 1.
Giờ trở lại với file EventExample.fla, ta mở cửa sổ properties ra, click vào hình cây bút chì ở
cạnh ô nhập tên document class, file Main.as sẽ được mở ra trong 1 tab mới. Chúng ta
chưa làm gì vội với file này
Bước 3: Tạo một file mới có tên NewEvent.as đặt trong cùng thư mục với 2 file đẵ tạo ở
trên, mở file này ra và viết code cho nó như sau:

package
{
import flash.events.*;

public class NewEvent extends Event
{
public static var NEW_EVENT : String = "new event";
public var index: Number = new Number();

public function NewEvent(type:String,index:int,
bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
this.index = index;
}

override public function clone():Event
{
return new NewEvent(type, this.index, bubbles,
cancelable);
}
}
}


Đoạn code trên mô tả một class được thừa kế từ Event, nó có một thuộc tính là
NEW_EVENT thuộc kiểu string và có dạng static. Điều này có nghĩa là chúng ta có thể truy
nhập vào thuộc tính này mà không cần khởi tạo một đối tượng mới thuộc kiểu NewEvent, và
thuộc tính này sẽ trở thành một Event thuộc kiểu NewEvent, nó giống với các từ khóa khi ta
sử dụng kiểu MouseEvent là CLICK hay MOUSE_UP... Biến thứ 2 là index có kiểu Number
(kiểu số tổng quát), biến này lưu một giá trị mà Event phải mang theo khi nó được phát ra.

Constructor của class này truyền vào 4 tham số:
1. Tham số thứ nhất là type, có thể thấy trong MouseEvent, chúng ta có các kiểu như:
CLICK, DOUBLE_CLICK, MOUSE_OUT, MOUSE_OVER..... đó là những kiểu event
được khai báo là các hằng static (các biến kiểu static có thể sử dụng mà không cần
khai báo đối tượng, trong đoạn code trên kiểu được khai báo là public static var
NEW_EVENT : String = "new event";)

2. Tham số thứ 2 là index, như đã nói ở trên, đây là giá trị mà Event sẽ mang theo khi
nó được phát ra, mà trước khi được phát ra thì nó phải được khởi tạo và truyền vào
một index.

3. Tham số thứ 3 là bubbles, như đã nói, khi một Event xảy ra, nó trải qua 3 giai đoạn,
nếu một Event không cần tới giai đoạn Bubbles thì thuộc tính bubbles của nó sẽ có
giá trị false, thông thường, tham số này là mặc định false, ta không cần phải quan
tâm

4. Tham số cuối cùng là cancelable, sau khi được khởi tạo, nó trở thành thuộc tính
read only, nó cho biết rằng một Event xảy ra có thể hủy bỏ được những hành động
mặc định của nó không. Ví dụ, khi ta nhập ký tự vào một ô text, sự kiện
TextEvent.TEXT_INPUT xảy ra mỗi lần ta ấn phím, hành động mặc định của nó là
hiển thị phím ta vừa ấn (nếu được). Ta hoàn toàn có thể sử dụng hàm
preventDefault() để thay đổi sự kiện mặc định đó do sự kiện TextEvent.TEXT_INPUT
có thuộc tính cancelable là true.
Sau khi nhận 4 tham số trên, constructor gọi hàm khởi tạo của cha nó là Event, rồi gán giá
trị index được truyền vào cho thuộc tính index của nó.
Sau khi khởi tạo một Event, để phát ra được Event đó thì chúng ta cần gọi tới hàm
dispatchEvent(e: Event), hàm này làm nhiệm vụ đưa một Event vào luồng sự kiện của hệ
thống. Mặt khác nó cũng gọi tới một hàm được định nghĩa trong Class Event, đó là clone().
Hàm này trả về một đối tượng Event. Thông thường chúng ta thường muốn trả về chính xác
kiểu Event chúng ta tạo ra nên hàm clone() được viết lại (như trên)

Bước 4: Tạo ra một file mới để làm đối tượng phát ra Event tại thư mục lưu chương trình.
File mới có tên là Rect.as, code của nó như sau:

package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.*;

public class Rect extends MovieClip
{
private var index: int = new int();
private var mySprite: Sprite = new Sprite();

public function Rect(ind: int): void
{
this.index = ind;
this.addEventListener(MouseEvent.CLICK, onClickHandler);

mySprite.graphics.beginFill(0x001177, 1);
mySprite.graphics.drawRect(0, 0, 50, 50);
mySprite.graphics.endFill();

this.addChild(mySprite);
}

private function onClickHandler(e: MouseEvent): void
{
var evt: NewEvent = new NewEvent(NewEvent.NEW_EVENT,
this.index, false, false);
dispatchEvent(evt);
}
}
}

Class này nhằm tạo ra một đối tượng hình vuông, có thuộc tính là indexrồi cho nó lắng nghe
sự kiện click, mỗi khi đó sẽ gọi ra hàm onClickHandler(e: MouseEvent). Hàm này làm nhiệm
vụ sinh ra môt đối tượng Event thuộc kiểu NewEvent mà ta đã tạo ra trong bước 3 rồi phát
nó ra, mang theo thuộc tính index của bản thân, bạn nên nhớ thuộc tính này là private và
cũng không có hàm set/get nào khác, về lý thuyết không thể lấy được giá trị này của mỗi đối
tượng Rect.

Bước 5: Quay trở lại hàm class Main đã tạo ra trong bước 2, ta viết code cho nó như sau:

package
{
import flash.display.Sprite;
import flash.geom.Rectangle;
import flash.text.TextField;
import flash.text.TextFormat;

public class Main extends Sprite
{
private var txt: TextField = new TextField();
private var arr: Array = new Array();

public function Main(): void
{
this.addChild(txt);
txt.x = 100;
txt.y = 100;
txt.width = 400;

var i:int = new int();
for (i = 1; i <= 10; i++)
{
var rect: Rect = new Rect(i);
arr.push(rect);
}

for (i = 0; i < arr.length; i++)
{
Rect(arr[i]).addEventListener(NewEvent.NEW_EVENT,
displayIndex);
this.addChild(arr[i]);
this.arr[i].x = (i * 80);
}

}

private function displayIndex (e: NewEvent): void
{
var format: TextFormat = new TextFormat("Tahoma", 20,
0xff1111);
this.txt.text = "Bạn đã click vào hình vuông thứ " +
(e.index).toString();
this.txt.setTextFormat(format);
}
}
}

Hàm này làm nhiệm vụ khởi sinh ra 10 đối tượng Rect, có index chạy từ 1 => 10, add nó lên
màn hình. Đồng thời tạo ra một text field để hiển thị. Bạn hãy chú ý lệnh
Rect(arr[i]).addEventListener(NewEvent.NEW_EVENT, displayIndex);

Lệnh này khai đăng kí để mỗi đối tượng thuộc kiểu Rect lắng nghe sự kiện NewEvent.NEW_EVENT. Hàm được gọi khi sự kiện này xảy ra là displayIndex(e: NewEvent), có
danh sách biến giống với việc bạn sử dụng những Event thông thường khác. Một lần nữa chú ý tới
lệnh
this.txt.text = "Bạn đã click vào hình vuông thứ " + (e.index).toString();

Hàm này sẽ đưa dòng chữ “bạn đã click vào hình vuông thứ i” với i = (e.index).toString(); ở đây e là biến thuộc kiểu NewEvent, nó chính là đối tượng đã được phát ra từ hàm dispatchEvent() trong class Rect. Dễ thấy, mỗi lần bạn click vào một hình vuông, một sự kiện NewEvent được phát ra, khi đó text field sẽ hiển thị index của đối tượng được click. Dưới đây là những gì bạn sẽ thấy:

Tôi đã click vào hình vuông thứ 3 và dòng chữ “Bạn đã click vào hình vuông thứ 3” xuất hiện. Vậy là,
tuy thuộc tính index của mỗi đối tượng thuộc kiểu Rect là private, nhưng chúng ta vẫn có thể lấy
được nó từ class Main.

Tới đây, bạn có lẽ sẽ thấy, ví dụ này chưa đáp ứng được những gì nêu ra trong mục 3.3, vậy thì hãy
thử thay đổi một số thứ coi. Đầu tiên thay dòng
Rect(arr[i]).addEventListener(NewEvent.NEW_EVENT, displayIndex);

Bằng:

if(idisplayIndex);

Có nghĩa là hinh vuông thứ 10 không lắng nghe sự kiện như các hình khác. Nhưng bản than nó vẫn
tự nghe sự kiện click và phát ra sự kiện NewEvent.NEW_EVENT. Vấn đề là không hề có dòng chữ
nào hiện ra cả. Câu hỏi đặt ra: tại sao tất cả 9 đối tượng còn lại đều lắng nghe
NewEvent.NEW_EVENT, đối tượng thứ 10 phát ra sự kiện này nhưng không tự nghe, tại sao các
đối tượng khác không nghe và hiển thị thông tin index của đối tượng số 10 kia. Câu trả lời đúng như
những gì mục 3.3.1 và 3.3.2 nêu ra.
Tiếp nữa, giả sử mỗi đối tượng Rect không chỉ phải nghe sự kiện click mà còn phải nghe một vài sự
kiện khác. Rõ rang rằng nếu xử lý điều đó ở hàm Main thì sẽ rất tốn công. Thay vì thế ta xử lý việc
kiểm tra các sự kiện khác đã xảy ra chưa, nếu rồi thì phát ra Event để hàm Main nhận và xử lý. Điều
này giải quyết những gì mà mục 3.3.3 và 3.3.5 đưa ra.
Việc removeEventListener không được nêu ra ví dụ trong trường hợp này, tuy thế đây là một chú ý
không kém phần quan trọng. Các bạn hãy tham khảo bài 1 chương 4 về code trên timeline, trong đó
có sử dụng tới hàm đó, hãy đọc kĩ và thử thay đổi để không sử dụng lệnh đó nữa, bạn sẽ thấy một số
bất ổn.
Trước khi kết thúc, cảm ơn vì bạn đã theo dõi tới đây….

Chủ Nhật, 28 tháng 11, 2010

Thiết kế hoạt cảnh với Flash CS4.0

Không gian làm việc Flash CS4.0
Các thiết lập ban đầu
Bố trí không gian làm việc (Designer , Developer, Debug, Classic, Animator )
Các công cụ trong thiết kế
Timeline (layer, frame, playhead , rate...)
Layer (Khóa / Hiện, Ẩn, Thêm, Xóa,...)
Frame/Keyframe (tạo, chèn, xóa,... di chuyển, copy) : Insert -> Timeline -> Frame ; Insert -> Timeline -> Keyframe ; hoặc Insert Keyframe từ menu phải chuột ; Insert -> Timeline -> Blank Keyframe hoặc Insert Blank Keyframe.
- Để mở rộng khoảng thời gian của 1 keyframe, bấm Alt và kéo keyframe đó
đến khung hình cuối cùng trong chuỗi mới.
- Để sao chép keyframe hay chuỗi khung hình: bấm Alt-click và kéo keyframe
đó đến vị trí mới.

bấm Shift và click các khung hình cần chọn; bấm Control và click các khung hình cần chọn;
Edit -> Timeline -> Select All Frames.
Edit -> Timeline -> Remove Frame hoặc Remove Frame từ menu từ menu phải chuột
Edit -> Timeline -> Copy Frames. -> Edit > Timeline > Paste Frames
Edit -> Timeline -> Clear Keyframe hoặc keyframe rồi từ menu bật ra, chọn tiếp Clear Keyframe



Thanh công cụ (Toolbar) : Selection Tool, Free Transform Tool, Text Tool, Line Tool, Rectangle Tool, Pen Tool, Brush Tool, Paint Bucket Tool, Eraser Tool, Zoom Tool.

Stage (grid, guides, rulers ) :
View -> Grid -> Show Grid
View -> Snapping -> Snap to Grid
View -> Grid -> Edit Grid

View -> Rulers
Chọn đơn vị Modify -> Document (pixels, inches, centimeters)


Tạo mới file Fla


Symbol
Movie Clip, Button, Graphic
panel properties


Sử dụng Brush tool Pen Tool , Rectangle Tool, Oval Tool, và đổ màu sắc

Sử dụng mầu
RGB : Red-Green-Blue
HBS : H (Hue) – Vùng màu ; S (Saturation) – Độ bão hòa màu ; B (Bright hay V - Value) – Độ sáng

Gradient
texture - Sử dụng ảnh làm texture
Radial
Linear
Gradient Transform Tool

texture : Paint Bucket Tool - Bitmap

Trace Bitmap
Modify > Bitmap > Trace Bitmap
Modify > Shape > Optimize


Tween (shape, motion guide, frame by frame) : tự động tạo ra hoạt hình thay đổi vị trí, hình dáng, mầu sắc của đối tượng (symbol), mỗi tween chỉ áp dụng được cho 1 layer
Guide layer
Classic Tween (symbol)
Motion tween (3D tween) (symbol)
Ease,
shape tween (not symbol)
Create Shape Tween ; Modify > Shape > Add Shape Hint

bone
mask

filter Blur (BlurX, BlurY)

Sound
File > Import to Stage
Event
Start
Event: Chế độ này được sử dụng để chạy file âm thanh tại một thời điểm bất kì và
độc lập hoàn toàn với các âm thanh khác. Một âm thanh được gán chế độ Event sẽ
chạy cho hết độ dài của nó kể cả khi đã hết frame (có thể xảy ra trường hợp 2 bản
của cùng 1 file âm thanh dạng Event bị chạy cùng 1 lúc). Một file âm thanh kiểu
Event phải được download hết về máy trước khi được chạy.
Start: Tương tự như Event, ngoại trừ việc nếu âm thanh đó đang chạy sẽ không có
thêm instance nào khác của nó được chạy.
Stop: Âm thanh có thuộc tính này không được tự động chạy.
Stream: Thuộc tính này được dùng để đồng bộ một âm thanh với timeline và các
chuyển động. Âm thanh kiểu stream sẽ bắt đầu và kết thúc tùy ý tùy thuộc điều
khiển.

Menu Effect
Left Channel/Right
Channel : Âm thanh
được chạy từ phía trái
hoặc phải.
Fade Left to
Right/Fade Right to
Left : Đảo kênh âm
thanh.
Fade In/Fade Out: Âm
lượng tăng/giảm dần
dần khi âm thanh được
chạy.
Custom: Cho phép bạn
tùy chỉnh âm lượng tại các thơi điểm tùy ý.
Time In và Time Out trong cửa sổ Edit Envelope (tối đa 8 điểm xử lý bằng cách click vào bất kì vị trí nào trong cửa sổ điều chỉnh âm thanh)

Cài đặt Flash CS 4.0

Yêu cầu cài đặt
Windows:
CPU: 1GHz +
OS: Microsoft® Windows® XP Service Pack 3
Windows Vista® Home Premium, Business, Ultimate, Enterprice Service Pack 1
RAM: 1GB+
HDD: 3.5GB+
Màn hình: Độ phân giải 1024x768 với 16-bit đồ họa trở lên.
Ổ quang: DVD-ROM
Phần mềm: Quicktime 7.12 trở lên giúp hỗ trợ các tính năng đa phương tiện.
Internet: Đường truyền băng thông rộng cho các dịch vụ online.

Macintosh:
CPU: PowerPC® G5 hoặc Bộ vi xử lí đa nhân của Intel
OS: Tiger OSX 10.4.11, Leopard 10.5.4 trở lên
RAM: 1GB +
HDD: 4GB +
Màn hình: Độ phân giải 1024x768 với 16-bit đồ họa trở lên.
Ổ quang: DVD-ROM
Phần mềm: Quicktime 7.12 trở lên giúp hỗ trợ các tính năng đa phương tiện.
Internet: Đường truyền băng thông rộng cho các dịch vụ online.


Yêu cầu cài đặt Adobe Flash CS5
Windows:
CPU: Intel® Core™2 Duo or AMD Phenom® II processor; 64-bit support required 1GHz +
OS: Microsoft® Windows® XP Service Pack 3, 64-bit operating system required: Microsoft® Windows Vista® Home Premium, Business, Ultimate, Enterprise with Service Pack 1 Windows® 7
RAM: 2GB +
HDD: 10GB+
Màn hình: Độ phân giải 1024x768 với 16-bit đồ họa trở lên.
Ổ quang: DVD-ROM
Phần mềm: Quicktime 7.12 trở lên giúp hỗ trợ các tính năng đa phương tiện.
Internet: Đường truyền băng thông rộng cho các dịch vụ online.


Các bước cài đặt

1- Trước khi tiến hành cài đặt, tắt tất cả các ứng dụng đang chạy, (Adobe, Micosoft Office, các trình duyệt, tạm thời tắt các phần mềm diệt virus).
2- Đăng nhập bằng tài khoản quản trị (Administrative Account)
3- Tiến hành theo các bước:
- Cho đĩa DVD cài đặt vào ổ, và làm theo các chỉ dẫn trên màn hình. Nếu bộ chương trình không được tự động cài đặt, vào thư mục Adobe CS4 trong thư mục gốc của đĩa cài, click đúp vào file Setup.exe và bắt đầu quá trình cài đặt.
- Nếu bạn download phần mềm từ Internet, vào thư mục Adobe CS4, click đúp vào file Setup.exe và bắt đầu quá trình cài đặt.
4- Nếu nâng cấp từ phiên bản cũ, chương trình cài đặt sẽ kiểm tra hệ thống để chọn những sản phẩm được nâng cấp. Nếu ko thể tìm ra, chương trình sẽ hỏi bạn nhập mã đăng kí (serial number) của phần mềm được nâng cấp. Bạn cũng có thể cài đặt phần mềm dưới dạng dùng thử (trial), sau đó nhập mã đăng kí mới vào cửa sổ đăng kí lúc sử dụng phầm mềm.

*) Lưu ý: Để cài đặt các gói bổ sung hoặc cài lại phần mềm sau khi đã cài đặt hoàn tất, bạn cần sử dụng bộ cài gốc ( nằm trong CD, DVD hoặc từ Internet)


GỠ BỎ CÀI ĐẶT:
1- Trước khi gỡ bỏ cài đặt, tắt toàn bộ các chương trình đang chạy, bao gồm cả các ứng dụng của Adobe, Microsoft Office, và các trình duyệt,

2- Làm theo các bước sau:
WINDOWS XP: Mở cửa sổ Control Panel và click đúp vào biểu tượng Add or Remove Programs, chọn phần mềm cần gỡ bỏ, Click Uninstall/ Change, và làm theo các chỉ dẫn trên màn hình.

WINDOWS VISTA: Mở cửa sổ Control Panel và click đúp vào biểu tượng Programs and Features, chọn phần mềm cần gỡ bỏ, click Uninstall/Change, và làm theo các chỉ dẫn trên màn hình.

MAC OS : đối với hệ điều hành của Apple có tính năng gỡ bỏ mới. Không gỡ bỏ theo phương thức truyền thống là kéo thả ứng dụng vào thùng rác (Trash). Để gỡ bỏ một cách an toàn, click đúp vào bộ cài có trong đường dẫn Application/Utilities/Adobe Installers, đăng nhập bằng tài khoản quản trị, rồi chọn Remove Components và làm theo các chỉ dẫn trên màn hình.

Chủ Nhật, 21 tháng 11, 2010

Ví dụ tạo ứng dụng FlashLite với CS4.0 và AS2.0

Flash Lite runtime đã được tối ưu hóa cho các thiết bị điện tử chủ yếu là thiết bị di động, nó nhẹ hơn nền tảng Adobe Flash thông thường, hỗ trợ sử dụng ít tài nguyên CPU, kích thước file nhỏ hơn, dùng ít bộ nhớ hơn. Có thể tạo mọi kiểu nội dung với FLash Lite từ những trò chơi, hoạt hình màn hình bảo vệ, màn hình, bản đồ... Trong ví dụ này sẽ mô tả từng bước quá trình sáng tạo một ứng dụng FlashLite điển hình cho di động. Ứng dung tự động gửi email đến một địa chỉ định trước.

Có nhiều phiên bản FLashLite khác nhau ứng với các đòng diện thoại khác nhau, trong ví dụ này giới thiệu Flash Lite 3.0 thử nghiệm với trình giả lập Nokia N96. Tuy nhiên ứng dụng này cũng có thể làm việc trên mọi dòng điện thoại hỗ trợ FlashLite 3.0

Yêu cầu

Adobe Flash CS3 / CS4 Professional
  • Adobe Device Central CS3 / CS4
  • Access to PHP server

Download Source Files

Yêu cầu kiến thức

Biết sử dụng Flash CS 4.0 và lập trình ActionScript 2.0


Bước 1 : Tạo một tài liệu mới

Khởi động FLash IDE. Trong màn hình khởi động chọn "Flash File (Mobile) để khởi động ứng dụng Adobe Device Central.

Create a New Flash Lite Document


Bước 2 : Cài đặt thiết bị

Góc trái màn hình là biểu tượng thư viện trực tuyến ”Online Library” cung cấp toàn thể danh sách các điện thoại di động. Tìm thiết bị Nokia N96 và click dúp để cài đặt trình giả lập thiết bị sẽ được cài đặt trên máy tính nhà thiết kế.

Install the Device



Bước 3 : Lựa chọn thiết bị

Góc trên bên phải của Thư viện trực tuyến ”Online Library” tìm trong thư viện địa phương ”Local Library”. Gồm danh sách các trình giả lập thiết bị đã tải về từ thư viện trực tuyến. Click đúp để chọn Nokia N96.

Select the Device


Bước 4 : Xem lại thông tin thiết lập cho thiết bị

Xem lại thông tin của thiết bị Nokia N96. gồm các kiểu thông tin về dòng điện thoại này, kích cỡ màn hình, nền tảng và phiên bản Flash Lite được hỗ trợ.

Check the Device information



Bước 5 : Tạo tài liệu Flash

Chọn ”New Document” để tạo tài liệu mới. Chọn Flash Lite version là Flash Lite 3.0 và ActionScript Version là ActionScript 2.0. Sau khi xác lập các thông số, click đúp vào hình ảnh điện thoại cạnh đó để tạo ra một tài liệu Flash mới với mọi xác lập cần thiết cho dòng điện thoại này. Sau đó ta có thể làm việc với file .fla như một ứng dụng desktop thông thường.Create the Flash Document

Bước 6 : Tạo hình nền cho ứng dụng

Quay trở lại Flash IDE. Đặt tên lớp đầu tiên là ”background”. Chúng ta bắt đầu bằng việc tạo một hình nền cho ứng dụng. Với công cụ vẽ hình chữ nhật rectangle, tạo một hình chữ nhật cùng kích thước trên màn hình. Áp dụng chế độ đổ mầu phù hợp (từ dưới lên trên)

Assign the Background


Bước 7 : Tạo các nhãn cho ứng dụng

Kết tiếp tạo một lớp mới đặt tên là ”form” . Các phần tử của ứng dụng sẽ được bổ sung trên lớp mới này. Tạo ba trường text như trên hình dưới đây


Create the Labels


Bước 8 : Tạo các trường nhập liệu cho ứng dụng

Tạo ba trường nhập liệu kiểu input text như hình dưới, gõ một vài từ trong các trường này để dễ định vị chúng trên màn hình phát triển.

Insert the Input Text Fields

Bước 8 : Đặt tên cho các trường nhập liệu

Đặt tên cho các trường ” emailInput”, ”subjectInput” và ” messageInput”.

Instance Names


Bước 8 : Thêm nút điều khiển cho người sử dụng

Chúng ta muốn gửi mail khi người dùng bấm nút phải (nút mềm softkey) của điện thoại di động. Đặt nhãn Send tại góc dưới cùng bên phải.

Send Button


Bước 9 : Màn hình phản hồi

Sau khi mail được gửi cần cung cấp một thông báo cho người sử dụng. Do vậy trong lớp "form" tạo một keyframe mới tại frame số 2 bằng cách bấm F6. Vì nền hình sẽ cùng kích thước trong cả hai màn hình, tạo một frame thông thường với lớp ”background” ở frame 2 (F5)Bước 10 : Hộp thông báo phản hồi.

Trong frame thứ 2 của lớp "form", tạo một trường text động ở trung tâm của màn hình. Căn chỉnh kích thước trường text đủ lớn để hiển thị thông tin phản hồi. Đặt tên trường text là ”serverResponse”.


The Server Response screen



Bước 10 : Nút thoát ứng dụng

Sau cùng, bạn muốn người dùng có thể thoát khỏi ứng dụng bằng việc bấm phím mềm bên phải. Do vậy trong cùng frame khi hiển thị thông tin đáp ứng từ máy chủ, tạo một trường text ở góc dưới bên phải màn hình với chữ "Quit".


The Quit Button


Bước 10 : Mã ActionScript trong Frame 1

Tạo một lớp mới đặt tên là ”actions”. Trong frame đầu tiên của lớp "actions", gõ đoạn mã dưới đấy.

//Stop the movie
stop();

// sets your content to be full screen
fscommand2("FullScreen", true);

// sets your content to dsiplay at high quality
fscommand2("SetQuality", "high");

// set soft keys
fscommand2("SetSoftKeys", null, "Send");

//We will save the server response to this variable
var serverResponseText = "";

//We use LoadVars to send the data to the server
formData = new LoadVars();

//Create a new object that will listen for the key presses
var myListener:Object = new Object();

//Assign the key listener
Key.addListener(myListener);

//This function is called when a key is pressed
myListener.onKeyDown = function() {

//Check if this is the right side soft key
if (Key.getCode() == ExtendedKey.SOFT2) {

//Assign the values to the LoadVars
formData.email = emailInput.text;
formData.subject = subjectInput.text;
formData.message = messageInput.text;

//Send the data to the server
formData.sendAndLoad('http://flashmymind.com/email.php',formData,"POST");
}
};

//This function is called when we get data from the server
formData.onLoad = function(success) {

//If we have succeeded
if (success) {
serverResponseText = "Email has been sent to " + this.sentTo;
}
else {
serverResponseText = "Could not connect to server!"
}

//Go to the second frame
gotoAndStop(2);
};

Bước 11 : Mã ActionScript trong Frame 2

Tạo một keyframe mới trên frame thứ 2 trong lớp "actions". Nhập đoạn mã dưới đây
//Give feedback to the user
serverResponse.text = serverResponseText;

// set soft keys
fscommand2("SetSoftKeys", null, "Quit");

var myListener2:Object = new Object();

//Assign the key listener
Key.addListener(myListener2);

//This function is called when a key is pressed
myListener2.onKeyDown = function() {

//Check if this is the right side soft key
if (Key.getCode() == ExtendedKey.SOFT2) {

//Quit the application
fscommand("Quit");
}
}

Bước 12 : Chuẩn bị ứng dụng trên máy chủ

Ứng dụng đã hoàn thành trên máy khách. Cần thêm đoạn mã ứng dụng trên máy chủ để email có thể được gửi đi. Có thể sử dụng một ngôn ngữ máy chủ phổ dụng là PHP hoặc bất kỳ ngôn ngữ động nào. Tạo một file .php và nhập dòng mã.
$sendTo = $_POST["email"];
$subject = $_POST["subject"];
$message = $_POST["message"];

mail($sendTo, $subject, $message);

echo "&sentTo=$sendTo";
?>

Ở đây ta chỉ đơn giản gửi các số liệu đến máy chủ và gọi đến dịch vụ gửi mail đến một đỉa chỉ email cụ thể. Sau đó ta gán biến "sentTo” giữ địa chỉ email mà ta vừa gửi đi.

Lưu file này thành ”email.php” và upload lên máy chủ server ứng dụng.

Bước 13 : Chạy thử ứng dụng

Sau khi hoàn thành các bước. Chạy thử ứng dụng với tổ hợp phím Ctrl + Enter để kiểm tra ứng dụng Flash Lite vừa tạo. Cửa sổ Adobe Device Central với trình giả lập Nokia N96 sẽ hiển thị. Để nhập ký tự vào trường nhập liệu, bấm phím lựa chọn ở trung tâm của điện thoại. Trình giải lập sau đó sẽ mô phỏng các tính năng của trường nhập liệu trên điện thoại thực.

Ứng dụng hoàn chỉnh trên hình dưới đây


Final Flash Lite Application

Bây giờ bạn sẽ nhận được email trong hộp thư theo địa chỉ mà bạn đã gửi! Lưu ý trình giả lập không hỗ trợ chức năng "Quit", nên cần thử nghiệm thêm trên thiết bị thực.





Reference :
Creating a Flash Lite Application with Flash CS4 and Actionscript 2.0

Quy trình phát triển ứng dụng Mobile với Adobe CS 4

Mobile Workflow in Adobe Creative Suite 4

Vai trò của thiết bị di động trong khung canh
The role of mobile in the Adobe landscape
Device Central CS4
Flash CS4
Illustrator CS4
Photoshop CS4
After Effects CS4
Q&A

CEO and founder of Moket
Adobe Community Expert (Mobile)
Adobe Instructor (Mobile Developer
Adobe Ambassador
Forum Nokia Champion

Flash technology for Mobile Devices
Optimised version of the Flash player for non-PC devices
Implemented across various device manufacturers and models

The role of mobile in the Adobe landscape
Mobile is now part of the Flash Platform
Open Screen Project bringing it to the forefront
Convergent devices driving a convergent ecosystem of platforms and tools
Late 2009 for FP10 and AIR mobile

The mobile workflow
DESIGN -> DEVELOP -> TEST -> DEPLOY

AI, PS, AE -> Fl, DW -> CD -> APP

Overview of Device Central CS4
Access up-to-date device profiles through online database
Group together project-related files, device profiles and Tasks into a single Project
Take still image snapshots of content and export to HTML
Record video presentations of content
Write and execute test scripts on Flash Lite content
Run scripts across multiple devices at once
Launch new mobile-ready documents for CS4 tools

Mobile Workflow in Adobe CS4 from Adobe Flash Lite on Vimeo.

The Adobe Creative Suite 4 tools offer smooth workflows for both designers and developers creating mobile applications and content. In this episode, we take a walk through the relevant CS4 tools and see this workflow in action.

The "Developing with Flash Lite" video tutorial series by Dale Rankine guides developers of all levels through the tools and techniques used when creating content for the Flash mobile platform. Learn from broad concepts as well as how-to code samples in this easy-to-watch format.

These videos will also be available shortly through AdobeTV and the Mobile and Devices Developer Center

Video

File -> New -> Flash File (Mobile) -> Xác nhận OK để mở Device Central -> thiết lập Device Central Profile trong New Document chọn Player Version là FlashLite 3.0, chọn ActionScript Version là ActionScript 2.0; chọn Content Type là Standalone Player , chọn Full Screen -> chọn trong Local Library profile thiết bị với kích thước màn hình tương ứng ->Chọn Custom Size for All Seleted Devices -> Chọn Create để khởi tạo ứng dụng với các thiết lập đã chọn -> Sau khi khởi tạo thành công chọn Control -> Test Movie để thử nghiệm ứng dụng trong trình mô phỏng thiết bị -> quan sát kiểm tra sự hiển thị trong trình giả lập Emulator -> Ở giai đoạn này có thể chuyển sang thiết kế ảnh nền giao diện trong Photoshop CS4.0, sau khi hoàn thành chuyển sang Flash để lập trình kịch bản -> Trong Device Central có thể chỉnh sửa ảnh trong Scaling thành Stretch to Screen hoặc Fit Proportionaly để khớp ảnh với màn hình thiết bị


Source Mobile Workflow with Creative Suite 4

Thứ Hai, 15 tháng 11, 2010

Không gian làm việc CS5

Tạo ứng dụng Flash

Quy trình tạo ứng dụng Flash

Lập kế hoạch

Quyết định những tính năng ứng dụng cơ bản sẽ thiết kế

Bổ sung các phần tử đa phương tiện

Tạo và import các phần từ đa phương tiên như hình ảnh, âm thanh, video, văn bản ...

Bố trị các phần tử .

Di chuyển, bố chí các phần tử media trên Stage và Timeline để xác định thời điểm, thời lượng và cách thức xuất hiện trong ứng dụng

Áp dụng các hiệu ứng đặc biệt.

Áp dụng các bộ lọc đồ họa (như làm mờ (blurs), hào quang (glows), và cắt vát (bevels) ), kết hợp và các hiệu ứng đặc biệt phù hợp với ứng dụng

Lập trình ActionScript điều khiển hành vi.

Viết mã lệnh ActionScript® để điều khiển hành vi các phần tử media, kể cả cách các phần từ đáp ứng với các tương tác người sử dụng

Kiểm thử, xuất bản ứng dụng

Kiểm thử để đảm bảo ứng dụng hoạt động như thiết kế, tìm và sửa các lỗi gặp phải. Quá trình này nên được tiến hành suốt quá trình sáng tạo ứng dụng. Xuất bản file FLA thành file SWF để có thể hiển thị trên bất kỳ trang Web nào cũng như trong Flash Player.

Tùy từng dự án và phong cách riêng có thể tiến hành các bước theo thứ tự khác nhau.

Không gian làm việc



A - Cửa sổ Tab
B - Cửa sổ ứng dụng
C - chuyển không gian làm việc
D - Thanh tiêu đề của Panel
E - Bảng điều khiển (Control Panel)
F - Bảng công cụ
G - thu nhỏ bảng thành biểu tượng
H - Mở đóng đồng thời nhóm 4 Bảng

Quản lý cửa sổ và các bảng điều khiển
Tạo và tùy biến bằng cách di chuyển và thao tác với các cửa sổ tài liệu và các bảng.





Dock là một nhóm các bảng điều khiển hiển thị cùng nhau theo trục dọc, tổ chức các bảng hợp lý giúp quá trình thiết kế dễ dàng hơn

Di chuyển các bảng công cụ

Thêm gỡ bảng, thao tác với các nhóm bảng

Các bảng chồng lên nhau

Thay đổi kích cỡ, mở đóng các bảng điều khiển

Thứ Hai, 8 tháng 11, 2010

TỔNG HỢP LINK

Remote device access (Nokia):

http://apu.ndhub.net/devices

Userguide Remote Phone Management (RPM):

http://apu.ndhub.net/userguide/index.html

Forum Nokia Online Flash Lite Packager:

http://esitv008song.itlase.com/sispack/

Flash Lite Code Examples (for Nokia): 

http://www.forum.nokia.com/Develop/Other_Technologies/Flash_lite/Code_examples/

Flash Lite Mobile and Devices Developer Center: 

http://www.adobe.com/devnet/devices/flashlite.html

Flash lite Documents:

http://www.forum.nokia.com/Develop/Other_Technologies/Flash_lite/Documentation/

Flash lite Tutorial:

http://www.biskero.org/flash-lite-tutorials

http://www.actionscript.org/forums/forumdisplay.php3?f=90&order=desc&page=2

http://sites.google.com/site/bublishe/home

http://www.biskero.org/category/flash-lite-2


Thứ Tư, 27 tháng 10, 2010

FlashLite

FlashLite là gì ?

Tại sao lại FlashLite?

Ứng dụng FlashLite khi nào ?

Ứng dụng FlashLite ở đâu ?

FlashLite dành cho những ai ?

Cách phát triển ứng dụng với FlashLite
+ Giao diện người dùng
+ Center Device - mô phỏng ngoại vi
+ Quy trình phát triển ứng dụng
+ Xuất bản ứng dụng
+ Ví dụ
+ Điều hướng trên dế
+ Tạo một menu
+ Tạo một trắc nghiệm đơn giản
+ Tạo một trình diễn trên di động



http://www.forum.nokia.com/Develop/Other_Technologies/Flash_lite/Tutorials.xhtml

http://www.adobe.com/devnet/devices/flashlite.html

http://www.adobe.com/devnet/devices.html

Flash Lite Tutorial
Creating a Flash Lite Game - TutorialFlash Lite Tutorials | Adobe Flash Lite

Flash Lite Tutorial | Mariam Dholkawala's Mobile Blog


Developing with Flash Lite Tutorial


Create a Flash Lite Application with Flash CS4 and Actionscript .


Flash Lite Tutorials & Articles


Flash Lite Tutorials | Adobe Flash Lite


Creating a Flash Lite Game - Tutorial


Flash Lite Tutorial: How to Install Flash Lite Menus



Adobe Flash Lite là phiên bản rút gọn của Adobe Flash Player, phần mềm ứng dụng của Adobe System. Phiên bản này dành cho các thiết bị di động cho phép người dùng xem những nội dung và ứng dụng đa phương tiện dùng công cụ của Adobe Flash, những nội dung trước đây chỉ có thể xem trên máy tính cá nhân.

Công nghệ Flash Lite được thực hiện trên trình duyệt khách, hay lớp giao diện người dùng. Những thay đổi gần đây của ActionScript cho phép tích hợp Flash Lite tốt hơn thậm chí hoàn toàn với công nghệ lớp thiết bị kiểu như Java ME và BREW. Flash Lite không nên xem như hệ điều hành trên điện thoại kiểu như Symbian OS, Window Mobile hay IOS (iPhone OS) hoặc Android, đơn giản nó chỉ là công nghệ để phát triển những ứng dụng chạy trên các hệ điều hành trên thiết bị di động.

Flash Lite 1.1 hỗ trợ Flash 4 ActionScript Flash Lite 2.0 trên trình duyệt Flash Player 7, hỗ trợ những tính năng mới có trong ActionScript 2.0. Cả hai phiên bản hỗ trợ chuẩn WEB SVG Tiny cho thiết bị di động. Không giống như SVG, Flash Lite có thể thêm các phần từ âm thanh và tương tác mà không dùng đến các công nghệ khác như JavaScript. Giống Flash, Flash Lite cũng có thể đọc và vẽ các nội dung XML bên ngoài. Flash Lite 3 xây dựng dựa trên Flash 8, thu hẹp khoảng cách giữa các nội dung trên di động và nội dung trên máy tính bằng việc hỗ trợ chuẩn video H.264, cũng như các mã video On2 VP6 và Sorenson. Các nội dung video FLV cũng được hỗ trợ. FLash Lite 4.0 hỗ trợ ActionScript 3, và là một plugin trình duyệt chứ không còn là một player riêng lẻ nữa.

Flash Lite 3.0 dựa trên Flash Player 8 hỗ trợ FLV giống như định dạng sử dụng trên Youtube và Google Video. Flash Lite 2.0 và 2.1 không hỗ trợ FLV.

Trong năm 2005, Adobe System hoàn tất việc hợp nhất với Macromedia, nhà phát triển ban đầu của Flash. Tại thời điểm đó, Flash Lite đã có thể sử dụng cho những người dùng điện thoại di động ở Nhật bản và châu Âu và sau đó ít lâu với người dùng ở Mỹ. NTT DoCoMo là nhà cung cấp dịch vụ đầu tiên tích hợp Flash Lite vào tháng 5 năm 2003.

Khi tiếp thị cho Flash Lite vào tháng 2 năm 2005, Macromedia đã tổ chức cuộc thi thiết kế nội dung Flash trên Mobile lần đầu tiên. Từ hơn 150 ứng dụng được gửi tới, chín ứng dụng đã được chọn trong số các ứng dụng kinh doanh sản xuất hiệu quả và sáng tạo nhất sử dụng trên công nghệ Flash Lite, Ứng dụng hoạt hình, Ứng dụng kinh doanh, nội dung giáo dụng, game hay nhất, nội dung tương tác, Ứng dụng hiệu quả nhất và Flash Lite tốt nhất về mọi khía cạnh.

Tháng 5 năm 2006, với sự ra đời của iriver U10 (phiên bản của iriver clix) hỗ trợ nội dung FLash Lite trong hướng trang landscape. U10 là trình player âm thanh số đầu tiên hỗ trợ Flash Lite.

Vào năm 2005, hầu như 100% thiết bị hỗ trợ Flash Lite là ở Nhật bản. Vào tháng 2 năm 2007, Adobe công bố trên 70% thiết bị Flash Lite được đưa ra thị trường Nhật bản.

Tháng 10 năm 2006, Verizon Wireless công bố hỗ trợ Flash Lite, trở thành hệ điều hành đầu tiên ở Mỹ hỗ trợ công nghệ này. Flash Lite ban đầu có thể trên bốn mô hình thiết bị (Motorola RAZR V3c và V3m, Samsung SCH - a950 và LG The V (VX9800) cũng như phần mở rộng của BREW. Điều này cho phép người dùng download ứng dụng Flash Lite từ dịch vụ "Get It Now" của Verizon , nhưng chưa cho phép người dùng xem các đối tượng Flash từ trình duyệt thiết bị của họ.
Tháng 2 năm 2007, Adobe công bộ tại hội thảo 3GSM World Congress ở Barcelone về phiên bản Flash Lite mới (version 3) sẽ hỗ trợ video, luồng video streaming. Tháng 10 năm 2007 Adobe ra mắt phiên bản FLash Lite 3.

Tại hội thảo phân tích tài chính Adobe 2007, Al Ramadan, thành viên cao cấp của Adobe Mobile và đơn vị kinh doanh giải pháp âm thanh công bố vào tháng 12 năm 2006, 220M thiết bị Flash Lite đã có mặt trên thị trường. Đồng thời cũng tuyên bố Adobe đã kết hợp công nghệ tạo ảnh vector của Actimagine, nhằm giảm tiêu thụ bộ nhớ của các trình điều khiển Flash Lite trong các phiên bản tương lai.

Cho đến tháng Ba năm 2008, cả Adobe lẫn Verizon Wireless chưa công bố khả năng của Adobe Flash Cast, theo thông cáo tháng 2 năm 2007 về khả năng ra mắt vào cuối năm 2007. Cùng tháng này, Stive Jobs mô tả Flash Lite như là " không khả thi để dùng với Web".

Vào tháng 9 năm 2009, Opera Software tích hợp FLash Lite 3.1 vào ứng dụng Internet Channel cho điều khiển game Wii.

Tháng 9 năm 2010, John Gruber đặc trưng Flash Lite như "nỗ lực chủ yếu để thiết lập một nền tảng phần mềm cho mobile" là "hoàn toàn thất bại"

Các phiên bản
  • Macromedia Flash Lite 1.0 và 1.1
    • Trên trình điều khiển Flash Player 4
  • Macromedia Flash Lite 2.0 (Tháng 12 năm 2005)
    • Ra mắt năm 2005, ra thị trường cùng với trình điều khiển Flash Player 7.
  • Adobe Flash Lite 2.1 (Tháng 12 năm 2006)
    • Chạy trên nền tảng BREW
  • Adobe Flash Lite 3 (Ra mắt vào tháng 2 năm 2007)
    • Hỗ trợ chuyển mã FLV
  • Adobe Flash Lite 3.1 (Tháng 2 năm 2009)

Adobe Flash Lite 4 chưa ra mắt vào tháng 5 năm 2010, mặc dù Adobe đã đưa ra các tài liệu tham khảo cho nhà phát triển trên website của họ

So sánh Flash Lite với các nền tảng phát triển tương tự

Flash Lite là nền tảng phát triển cho thiết bị di động có thể dùng trên cả Java ME lẫn trên trình điều khiển Flash Lite Player mà chạy trên Java ME. Các nền tảng khác có thể kể đến như BREW, Symbian, và Window Mobile. Năm 2006 Qualcomm công bố kết hợp với Adobe đưa trình điều khiển Flash Lite chạy trên môi trường BREW thời gian chạy (runtime).

Nội dung Flash Lite có thể xem trên các thiết bị cầm tay di động cài đặt trình điều khiển Flash Lite cùng với các mà các nội dung Java hiển thị trên các thiết bị đó với Java ME runtime. Cả hai công nghệ này có thể cùng chạy trên cùng một thiết bị không bị tranh chấp trực tiếp.
Các ứng dụng, trò chơi và những nội dung khác cũng có thể phát triển trong những công nghệ khác. Flash Lite có một vài ưu điểm và một số nhược điểm khi so sánh với Java ME.

Ưu điểm:

  • Phát triển nhanh do sự hỗ trợ của Adobe Flash IDE giúp cho quá trình lập trình kiểm thử tương đối dễ dàng
  • Hỗ trợ tốt phương thức WORA viết một lần, chạy mọi nơi (write once, run anywhere) không phụ thuộc vào một API cụ thể nào. Kết quả là không phải xuất bản cho từng nền tảng di động mà là hạn chế chủ yếu khi phát triển với Java ME
  • Độ họa vetor (cũng hỗ trợ bitmap) cho phép dễ dàng phóng to thu nhỏ, xoay góc và các biến đổi khác mà không giảm chất lượng
  • Khả năng đóng gói nhiều hoạt hình, đồ họa vào cùng một kích thước file nhờ sử dụng đồ họa vector
  • Khả năng chuyển đổi nội dung Flash trên máy tính (trên cơ sở web) sang thiết bị di động và ngược lại với rất ít công sức.
  • Kỹ năng phát triển Flash - hiểu biết IDE và các ngôn ngữ kịch bản - sẵn sàng để chuyển từ IDE trên máy tính để ban sang môi trường phát triển trên thiết bị di động

Hạn chế:

  • Đến mùng 2 tháng 10 năm 2008, chỉ có 361 điện thoại hỗ trợ Flash Lite. Tuy nhiên điều này đang nhanh chóng thay đổi ở Bắc Mỹ và Châu Âu với sự vào cuộc của những hãng như Verizon và các nhà sản xuất như Nokia, Sony Ericsson và LG đã công bố thiết bị Flash Lite vào năm 2006 và 2007. Giới hạn này có thể là một hạn chế đối tượng của nó so với Java ME, Symbian, hay BREW
  • Hiệu năng đồ họa tương đối thấp (do yêu cầu quá trình xử lý đồ họa vector phức tạp hơn)
  • Xử lý âm thanh nghèo nàn hơn so với các chương trình khác


AS 3.0 và Flash CS4

AS 3.0 là gì ?

Tại sao lại AS 3.0?

Ứng dụng AS 3.0 khi nào ?

Ứng dụng AS 3.0 ở đâu ?

AS 3.0 dành cho những ai ?

Cách phát triển ứng dụng với AS 3.0

AS 3.0 là gì ?

http://en.wikipedia.org/wiki/ActionScript
http://www.adobe.com/devnet/actionscript.html
http://www.adobe.com/devnet/actionscript/articles/six_reasons_as3.html

Tại sao lại AS 3.0?

Ứng dụng AS 3.0 khi nào ?

Ứng dụng AS 3.0 ở đâu ?

AS 3.0 dành cho những ai ?

Cách phát triển ứng dụng với AS 3.0

+ Cách lập trình một nút điều khiển
+ Lập trình menu điều hướng
+ Quản lý sự kiện
+ Load, unload movieclip ngoài
+ Làm việc với XML
+ Ví dụ : tạo một ứng dụng trắc nghiệm



AS 3.0 là gì ?

ActionScript là một ngôn ngữ lập trình kịch bản ban đầu phát triển bởi Macromedia (ngày nay thuộc sở hữu của Adobe System). Thuộc họ ECMAScript với cú pháp giống với ngôn ngữ kịch bản phổ biến là JavaScript, ngay từ khi ra đời ActionScript được sử dụng để phát triển website và các phàn mềm trực tuyến trên nền tảng Adobe Flash Player dưới hình thức các file SWF nhúng trong các trang Web.

Ngôn ngữ được cung cấp mở dưới dạng cung cấp các chỉ tiêu kỹ thuật miễn phí, một trình biên dịch mã mở (một phần của Adobe Flex) và máy ảo mã nguồn mở (Mozilla Tamarin)

Ban đầu ActionScript được thiết kế để điều khiển các hoạt hình 2D đơn giản trong Adobe Flash (Macromedia Flash site). Tập trung vào các hình ảnh động với khả năng tương tác và lập trình hạn chế. Các phiên bản về sau được tăng cường các tính năng cho phép tạo các trò chơi trực tuyến và ứng dụng Internet phong phú với truyền thông trực tuyến (video và âm thanh). Ngày nay, ActionScript cho phép làm việc với vài kiểu cơ sở dữ liệu ứng dụng, và những ứng dụng robotics cơ bản như trong gói Make Controller Kit.
Flash MX 2004 giới thiệu phiên bản ActionScript 2.0, đây là một ngôn ngữ lập trình kịch bản thuận tiện hơn khi phát triển các ứng dụng Flash. Lập trình kịch bản giúp tiết kiệm thời gian khi thiết kế các hoạt cảnh, linh hoạt khi chỉnh sửa.

ActionScript 3.0 ra đời cùng với phiên bản Flash Player 9 alpha vào năm 2006. ActionScript 3.0 là một ngôn ngữ lập trình hướng đối tượng với các tính năng điều khiển, tái sử dụng code mạnh hơn khi xây dựng các ứng dụng Flash phức tạp. Phiên bản mới này cũng được biên dịch và chạy trên máy ảo ActionScript vừa được viết lại hoàn toàn (còn gọi là AVM2) nhờ vậy mã viết trong ActionScript 3.0 nói chung chắm đến FLash Player 9+ trở lên mà không tương thích với những phiên bản trước đó. ActionScript 3.0 thực hiện mã lệnh nhanh gấp 10 lần so với mã ActionScript tiền nhiệm.

Các thư viện Flash có thể dùng với khả năng XML của trình duyệt để tạo ra những nội dung phong phú trong trình duyệt. Công nghệ này được biết đến như là Flash và XML không đồng bộ, giống với AJAX. Adobe cung cấp dòng sản phẩm FLex đáp ứng nhu cầu những ứng dụng phong phú trên Internet xây dựng trên FLash thời gian thực, với các tính chất và lập trình qua ActionScript. ActionScript 3.0 hình thành nền tảng cho Flex 2 API.

Khi ActionScript 3.0 ra đời, bên cạnh sự mong đợi của đa số cộng đồng các nhà phát triển Flash với các khả năng và tính năng mạnh của ngôn ngữ mới, một bộ phận các thiết kế chưa quyết định chuyển ngay sang ngôn ngữ mới. Có vô số lời đồn thổi về tính phức tạp của ActionScript 3.0 cũng như việc tốn nhiều dòng lệnh hơn để hoàn thành những tác vụ lập trình đơn giản.

Trên thực tế có hai kiểu nhà thiết kế viết mã ActionScript. Kiểu người thứ nhất là những nhà phát triển phần lõi. Đây là những người có nền tảng lập trình và có những kinh nghiệm xây dựng các dự án phần mềm trên các ngôn ngữ kiểu như Java hay C#. Với những người này việc học ActionScript 3.0 không có gì khó khăn cả vì nó giống với những ngôn ngữ mà họ đã quen thuộc. Kiểu người thứ hai là các nhà thiết kế tương tác, những nhà thiết kế học lập trình FLASH để làm các công tác hậu kỳ. Những người này thường viết code ngay trên Timeline dù cũng có thể có đôi chút kiến thức về lập trình hướng đối tượng và nhóm này là nhóm ngại chuyển sang ActionScript 3.0.

Tiểu sử của ActionScript

Tiền thân của ActionScript được giới thiệu lần đầu trong FlashPlayer 4, ngôn ngữ lập trình kịch bản này cho phép điều khiển nhiều kiểu tương tác trong Flash nhưng vẫn chưa đủ độ tinh vị quen thuộc của một ngôn ngữ lập trình. Cú pháp và ngữ nghĩa cũng khác với ECMAScript mặc dù những phiên bản sau của nó có thể áp dụng cú pháp giống ECMAScript.

ActionScript 1.0 được giới thiệu trong FLash Player 5 với cú pháp và ngữ nghĩa trên cơ sở ECMAScript. Có một số chỉnh sửa trong phiên bản cùng với FLash Player 6 và FLash Player 7 nhưng về cơ bản vẫn giống nhau.

ActionScript 2.0 được giới thiệu trong Flash MX 2004 và Flex 1.0. Phiên bản ngôn ngữ mới này cũng làm việc với cả Flash Player 6 và Flash Player 7 vì ActionScript 2.0 thực sự là lớp trên cùng của ActionScript 1.0 thời gian chạy. Do đó ActionScript 2.0 không có hiệu năng cao như kỳ vọng vì dưới nó vẫn sử dụng cùng mô hình đối tượng như ActionScript 1.0.

Trong giai đoạn lập kế hoạch phát triển cho Flash Player 9, hiển nhiên là không thể tiếp tục xây dựng động cơ ActionScript hiện tại hỗ trợ cho cả ActionScript 1.0 và ActionScript 2.0. Do đó Adobe bắt đầu viết lại hoàn toàn máy ảo ActionScript (AVM). Một máy ảo tối ưu với hiệu năng cao hơn ra đời và được biết đến với tên AVM2, cùng với phiên bản ActionScript 3.0. Mặc dù AVM2 là máy ảo ưu tiên chạy mã ActionScript mới, Flash Player vẫn tiếp tục hỗ trợ AVM1 để đảm bảo khả năng tương thích ngược với các nội dung Flash đã có.

Tại sao nên sử dụng ActionScript 3.0

Những lợi ích chủ yếu để học sử dụng ActionScript

1. Đòi hỏi kỹ năng cao cấp

Lý do chủ yếu để một nhà phát triển Flash nên chuyển sang ngôn ngữ mới là mọi dự án Flash chủ yếu hiện nay đều xây dựng với ActionScript 3.0. Không còn nhiều công việc với ActionScript 2.0
do đó nên việc học ActionScript 3.0 là thiết yếu.

2. Ứng dụng chạy nhanh hơn

ActionScript 3.0 chạy nhanh gấp 10 lần phiên bản ngôn ngữ trước đó, thậm chí trong một số trường hợp còn chạy nhanh hơn nữa, điều này đồng nghĩa với việc có thể điều khiển đồng thời nhiều đối tượng trên cùng một Stage.

3. Có thêm nhiều API mới

ActionScript 3.0 kèm theo hàng trăm API mới để làm việc với XML, các biểu thức thông thường, các cổng nhỉ phân.... Ngôn ngữ cũng được tổ chức thành gói và không gian tên namespace giúp dễ dàng hơn khi tìm kiếm các đặc tính ngôn ngữ cụ thể. Flash toolbox nhiều hơn và được tổ chức tốt hơn.

4. The display list rocks

Một trong những thanh đổi lớn trong ActionScript 3.0 là cách Flash xử lý các đối tượng trực quan trong movie. Trong phiên bản trước, rất khó để hiển thị hay thao tác với thứ tự (depth) của các đối tượng trong Movie Flash. Ví dụ như rất khó để đặt một đối tượng trực quan lên lớp trên cùng của các đối tượng trong một movie. Điều này dẫn đến nhiều vấn đề trong dự án lớn và tốn nhiều công sức quản lý thủ công. Danh sách hiển thị mới trong ActionScript 3.0 là cơ chế đơn giản để xử lý cách các tài nguyên trực quan được kết xuất trong movie đang thiết kế.

5. Cấu trúc hướng đối tượng

Nhà phát triển đặc biệt yêu thích cấu trúc hướng đối tượng cải tiến trong Action Script 3.0. Bao gồm gõ trong thời gian chạy, đóng gói, không gian tên của lớp và mô hình lớp. Lập trình trong ActionScript 3.0 giống như lập trình các ngôn ngữ bậc cao khác như Java hay C#. Những đặc tính mới có thể không được dùng nhiều ở mức độ nhà thiết kế tương tác nhưng sẽ là khởi đầu tốt nếu phát triển ở mức lập trình cao hơn.

6. Dễ dàng hơn khi lập trình với ActionScript 3.0

Các phiên bản ngôn ngữ cũ có nhiều lỗi và lỗ hổng và dường như những điều này đã được khác phục triệt để trong ActionScript 3.0.

Tương thích với phiên bản cũ và các công nghệ tương lại

Nhiều công nghệ mới sẽ chỉ được thực hiện trên ActionScript 3.0 do vậy công nghệ như Adobe Flex 3 và Adobe AIR yêu cầu ActionScript 3.0.

FAQ về ActionScript 3.0

Một vài câu hỏi thường gặp về Action Script 3.0 với nhà thiết kế khi chuyển sang ngôn ngữ mới:


Tại sao ActionScript 3.0 cần nhiều mã lệnh hơn ActionScript 2.0?

Trả lời ngắn gọn trong nhiều trường hợp, ActionScript 3.0 không đòi hỏi nhiều lệnh. Phần lớn mọi người dẫn chứng ví dụ lập trình quản lý sự kiện click chuột với một bộ quản lý nghe sự kiện. Mặc dù ActionScript 3.0 yêu cầu dùng thêm vài dòng lệnh, những dòng lệnh này lại thực sự giúp toàn chương trình có tổ chức và dễ đọc hơn so với ActionScript 2.0


Tại sao không thể viết code trực tiếp vào biểu tượng như các phiên bản trước ?

Tính năng này chính là nguyên nhân gây rối và nhầm lẫn trong rất nhiều dự án lớn, vì mã ActionScript trải rộng toàn thể dự án nên rất khó cho việc quản lý, chỉnh sửa và phát triển với các dự án lớn. Không viết code trực tiếp vào các biểu tượng, mã chương trình được quản lý tập trung giúp dễ đọc và bảo dưỡng chương trình lâu dài. Vì vậy đội phát triển Flash đã quyết định gỡ khả năng gắn code trực tiếp lên biểu tưởng bắt đầu từ Flash CS3 trở đi khi lập trình với ActionScript 3.0.

Nếu tôi không muốn viết mọi thứ trong các file class ?

Một trong những quan niệm sai lầm khi làm việc với ActionScript 3.0 là bạn phải biết mọi thứ trong các file class. Đơn giản là điều này không đúng, thực tế là bạn vẫn có thể viết mã chương trình của bạn trên Timeline. Tuy nhiên nếu và khi bạn tự thấy cần viết những mã hướng đối tượng hơn nữa, ActionScript 3.0 khiến cho quá trình học ngôn ngữ lập trình hướng đối tượng rất dễ dàng.


Tại sao Adobe tập trung mọi chú ý vào các nhà phát triển Flash ?

Ở thời điểm này, dường như là vậy. Trong thực tế Adobe dành nhiều thời gian cho phát triển những đặc tuyến cho nhà thiết kế. ActionScript 3.0 là thiết yếu để nhà phát triển nâng tầm các ứng dụng Flash lên tầm cao mới. Giờ đây ActionScript 3.0 đã hoàn thiện, và được phát hành, sự chú ý chuyển dần sang việc phát triển các tính năng thiết kế trực quan và hoạt hình cao cấp. Nhìn vào danh sách các tính năng của Flash Player 10 beta. Hầu hết những tính năng mới - như 3D, bộ lọc tùy chỉnh, chuyển động đảo ngược,... hộ trợ theo những yêu cầu bởi nhà thiết kế tương tác.

Where to go from here

There are many learning resources available to help get you started. The following articles contain valuable information for learning ActionScript 3.0:

  • ActionScript 3.0 overview discusses the goals and features of the language, as well as describing ECMAScript for XML (E4X) and Flash Player API features.
  • Emmy Huang of the Flash Player team compiled some tips and common issues you might encounter during development to help ease your transition to ActionScript 3.0.
  • To get more articles and online resources, be sure to check out the ActionScript 3.0 section of the ActionScript Technology Center.
  • I also highly recommend Learning ActionScript 3.0. It is a great book for beginners who are learning the new language. You can review three chapters of the book on the Adobe Developer Connection.
  • For more advanced coders, Colin Moock's book Essential ActionScript 3.0 is largely considered the bible of ActionScript 3.0 development. You can review two chapters of Colin's book on the Adobe Developer Connection as well.
  • If you prefer to learn by watching videos, there are many resources available. Lynda.com is a great place to learn about ActionScript 3.0. In particular, ActionScript 3.0 in Flash CS3 Professional is a great introduction to the language. I also run a free video tutorial site (gotoandlearn.com) that has a large number of tutorials featuring ActionScript 3.0.

ActionScript 3.0 là một ngôn ngữ lập trình hướng đối tượng là một bước tiến quan trong trong quá trình phát triển tính năng của Flash Player runtime. Động lực thúc đẩy ActionScript 3.0 là tạo ra một ngôn ngữ lý tưởng thích hợp cho quá trình phát triển nhanh các ứng dụng Internet phòng phú, trở nên phần thiết yếu trong các trải nghiệm web.

Các phiên bản sớm của ActionScript cung cấp sức mạnh và sự linh hoạt cần thiết để tạo ra những trải nghiệm trực tuyến hấp dẫn. Action Script 3.0 giờ là một ngôn ngữ ưu việt hơn nữa, đem lại hiệu năng tuyệt hảo và rất dễ dàng để phát triển những ứng dụng với độ phức tạp cao, cơ sở dữ liệu lớn và hướng đối tượng, trên cơ sở tái sử dụng mã lệnh. Với ActionScript 3.0, nhà phát triển ứng dụng có thể đạt được năng suất và hiệu quả tuyệt vời với những nội dung và ứng dụng trên nền tảng Flash Player.

ActionScript 3.0 dựa trên cơ sở ECMAScript, tiêu chuẩn quốc tế cho ngôn ngữ lập trình kịch bản. ActionScript 3.0 là tương hợp với chỉ tiêu kỹ thuật của ngôn ngữ ECMAScript, thế hệ thứ ba Edition (ECMA-262). Ngôn ngữ cũng bao gồm các tính năng dựa vào công việc đang diễn ra trên ECMAScript Edition 4, xuất hiện bên trongtiêu chuẩn ECMA.

ActionScript được thực hiện bởi máy ảo ActionScript (AVM) được xây dựng trong Flash Player. AVM1, máy ảo được sử dụng để thực thi mã ActionScript hợp lệ, giúp sức cho trình Flash Player ngày nay có thể áp dụng với vô số kiểu ứng dụng tương tác đa phương tiện và ứng dụng Internet phong phú.

Tuy nhiên, quá trình phát triển AVM1 đã đến giới hạn của nó, giờ đây nhu cầu của các nhà phát triển đòi hỏi một bước đột phá lớn. ActionScript 3.0 ra mắt với một máy ảo mới tối ưu hóa cao. Máy ảo ActionScript, AVM2, với hiệu năng vượt xa AVM1. Do đó mã thực thi của ActionScript nhanh gấp 10 lần so với mã ActionScript tiền nhiệm.

Máy ảo AVM2 tích hợp sẵn trong Flash Player 9, và sẽ được là máy ảo chủ yếu chạy mã ActionScript trong tương lai. Phiên bản cũ AVM1 vẫn tiếp tục được hỗ trợ bởi Flash Player để tương thích với nội dung đã có.

Có rất nhiều công cụ tạo ra các sản phẩm và ứng dụng hướng tới Flash Player runtime. Những sản phẩm này thường kết hợp việc hỗ trợ ActionScript để bổ sung các tương tác và tính chất cho các sản phẩm đó. Trong họ sản phẩm của Adobe, các nhà phát triển và thiết kế chuyên nghiệp có thể sử dụng ActionScript trong nhiều công cụ và máy chủ như Flash, Flex, và Flash Media Server để tạo các ứng dụng, nội dung cho Flash Player. Trong họ sản phẩm Flex kể cả công cụ mới Eclipse IDE Flex Builder 2, sẽ là dòng sản phẩm đầu tiên truy nhập vào những tính năng mới của ActionScript 3.0.


Mục tiêu của ActionScript 3.0

Adbe muốn ActionScript 3.0 đem lại một mô hình lập trình được cải tiến phù hợp, tương thích với chuẩn công nghiệp, đem lại một hiệu năng lớn hơn so với những gì từng có trước đây. Mặc dù ActionScript 3.0 đại diện cho một mô hình lập trình runtime mới, nó vẫn rất quen thuộc với nhà phát triển có kiến thức lập trình hướng đối tượng cơ sở.

ActionScript 3.0 ra đời nhằm giải quyết những mục tiêu sau:

  • An toàn: Ngôn ngữ hỗ trợ kiểu an toàn để nhà phát triển có thể viết code rõ ràng, dễ dàng bảo dưỡng mã đã viết.
  • Đơn giản: Ngôn ngữ đủ trực quan để nhà phát triển có thể đọc và viết chương trình không cần thường xuyên tham vấn tài liệu
  • Hiệu năng: Ngôn ngữ cho phép nhà phát triển viết những mã chương trình phức tạp có thể thực hiện hiệu quả và đáp ứng.
  • Tương thích: Ngôn ngữ cung cấp khả năng tương thích ngược và tương thích chuẩn công nghiệp. ActionScript 3.0 là phương ngữ của ECMAScript chính thức hóa các tính năng của ActionScript 2.0 và bổ sung khả năng của ECMAScript cho XML (E4X) và thống nhất ngôn ngữ một cách mạch lạc.

Tính năng của ActionScript 3.0

ActionScript 3.0 gồm 2 phần : phần lõi ngôn ngữ và các Flash Player API. Phần lõi ngôn ngữ định nghĩa các khối xây cơ sở của ngôn ngữ lập trình như các mệnh đề, biểu thức, điều kiện, vòng lặp, kiểu dữ liệu. Flash Player API tạo thành từ các lớp đại diện cung cấp khả năng truy cập vào các chức năng cụ thể của Flash Player.

ActionScript 3.0 gồm các tính năng mạnh mẽ giúp tăng tốc quá trình phát triển ứng dụng. Các biểu thức thường sử dụng cho phép nhiều phép toán xử lý văn bản mạnh. ECMAScript với XML (E4X) chuyển đổi XML thành kiểu dữ liệu bản địa, đơn giản hóa đáng kể quá trình xử lý XML. Danh sách các API trình diễn giúp làm việc với các đối tượng trực quan dễ dàng và nhất quán. Chuẩn hóa mô hình sự kiện DOM gắn kết cách các đối tượng nói chuyện và đáp ứng với nhau trong thời gian chạy (runtime). Đây chỉ là một số trong các khả năng mới mà ActionScript 3.0 đem lại.

Các ngoại lệ thời gian chạy (Runtime exceptions)

Trong ActionScript 2.0, nhiều lỗi thời gian chạy sẽ không được cảnh báo. Điều này giúp cho Flash Player không hiển thị những thông báo lỗi khó giải thích, mà JavaScript thường xuất hiện trong cửa sổ trình duyệt trước đây. Mặt khác, thiếu các thông báo lỗi kiểu này làm việc gỡ lỗi khó khăn hơn trong ActionScript.

ActionScript 3.0 giới thiệu rất nhiệu ngoại lệ thời gian chạy cho các lỗi điều kiện phổ biến, cải thiện khả năng gỡ lỗi chương trình và cho phép các ứng dụng quản lý lỗi mạnh hơn. Lỗi thời gian chạy có thể cung cấp các dấu vết cùng chú thích theo dõi với file nguồn, thông tin số dòng, giúp xác định lỗi nhanh chóng hơn.

Kiểu thời gian chạy (Runtime types)

Trong ActionScript 2.0, kiểu chú giải là ưu tiên cho mục đích trợ giúp nhà phát triển; trong thời gian chạy, mọi giá trị được đặt kiểu động.

Trong ActionScript 3.0, thông tin kiểu được bảo quản trong thời gian chạy và sử dụng cho một số mục đích. Flash Player thực hiện kiểm tra kiểu thời gian chạy, cải thiện an toàn kiểu của toàn hệ thống. Thông tin kiểu cũng được dùng để biểu diễn các biến trong biểu diễn bản địa, cải thiện hiệu năng và giảm tiêu thụ bộ nhớ.

Các lớp niêm phong (Sealed classes)

ActionScript 3.0 giới thiệu khái niệm lớp niêm phong. Lớp niêm phong sở hữu chỉ tập các tính chất và phương pháp cố định mà được định nghĩa vào thời gian biên dịch; các tính chất và phương thức bổ sung không thể thêm vào được. Tính năng này giúp cho việc kiểm tra thời gian biên dịch chặt chẽ hơn, tạo ra những chương trình mạnh hơn. Tính năng này cũng giúp cải thiện sử dụng bộ nhớ vì không yêu cầu một bảng hast nội tại với mỗi bản sao đối tượng (internal hash table). Các lớp động có thể sử dụng các từ khóa động.

Phương pháp đóng (Method closures)

Quản lý sự kiện đơn giản hơn trong ActionScript 3.0 nhờ phương pháp đóng, với đại diện sự kiện dựng sẵn. Trong ActionScript 2.0, một phương pháp đóng không nhớ bản sao đối tượng nó được dẫn xuất dẫn đến những hành vi không mong muốn khi gọi phương pháp đóng. Lớp mx.utils.Delegate là một giảỉ pháp thay thế phổ biến; để dùng nó, người ta hay dùng đoạn mã lệnh dưới đây:

myButton.addEventListener("click", Delegate.create(this, someMethod)); Delegate.create(this, someMethod)

Trong ActionScript 3.0 lớp này không còn cần thiết nữa vì trong ActionScript 3.0, một phương thức đóng clossure khi someMethod được gọi đến. Phương thức đóng này sẽ tự động nhớ bản sao đối tượng ban đầu của nó. Giờ đây chỉ cần viết

myButton.addEventListener("click", someMethod);

ECMAScript với XML (E4X)

Các đặc tính của ActionScript 3.0 thực hiện đầy đủ ECMAScript với XML (E4X), các chuẩn hóa ECMA-357 gần đây. E4X cung cấp tập chỉ thị ngôn ngữ tự nhiên, chính xác dễ dàng thao tác với XML. Không như các API cú pháp xử lý XML truyền thống, E4X khiến cho XML cảm nhận như một kiểu dữ liệu gốc của ngôn ngữ. E4X giúp quá trình phát triển ứng dụng có xử lý XML giảm số lượng mã lệnh cần thiết.

Biểu thức thường dùng (Regular expressions)

ActionScript3.0 cung cấp các biểu thức thường dùng để bạn có thể nhanh chóng tìm kiếm và thao tác với chuỗi. ActionScript 3.0 thực hiện những biểu thức thường dùng định nghĩa trong mô tả ngôn ngữ ECMAScript(ECMA-262)

Không gian tên (Namespaces)

Không gian tên là một cơ cấu sáng tạo mới để kiểm soát các khai báo nhìn thấy. Tương tự với khai báo truyền thống dùng để điều khiển các khai báo (công cộng, riêng tư, bảo vệ), không gian tên là khai báo truy cập phong tục thiết yếu , có tên lựa chọn của bạn. Trong Flex, ví dụ dùng không gian tên anmx_internal với các dữ liệu nội bộ. Không gian tên cung cấp với một URI để tránh xung đột và cũng dùng để biểu diễn không gian tên XML khi làm việc với E4X.

Kiểu dữ liệu sơ khai gốc mới (New primitive types)

ActionScript 2.0 có kiểu dữ liệu số đơn, Number, một kiểu số dấu phẩy động kép. Đến với ActionScript 3.0 có kiểu dữ liệu int mới là số nguyên có dấu 32 bít cho phép mã ActionScript 3.0 tính toán số nguyên nhanh hơn nhờ ưu thế xử lý của các CPU. Kiểu dữ liệu nguyên int là rất phụ hợp với các bộ đếm vòng lặp, và nhiều ứng dụng khác. Kiểu nguyên không dấu uint cũng tương tự như kiểu nguyên.

Các tính năng Flash Player API

Flash Player API là tập các lớp và hàm bộc lộ khả năng của Flash Player với ngôn ngữ ActionScript Các hàm này là cầu nối giữa lõi ngôn ngữ ActionScript và toàn thể nền tảng. Đây là nguồn của nhiều ứng dụng đầy sức mạng và bổ sung rất quan trong với ngôn ngữ lõi. Mặc dù không trình bầy chi tiết ở đây, dưới đây là một vài tính năng mới thú vị đối nhà phát triển Flash.

Mô hình sự kiện DOM3

Mô hình sự kiện cung cấp một cách chuẩn hóa để tạo ra và quản lý các thông điệp sự kiện để các đối tượng trong ứng dụng có thể tương tác và giao tiếp với nhau, duy trì trạng thái và đáp ứng với các thay đổi. Đặc tả W3C DOM3, mô hình này đem lại một cơ cấu rõ ràng hiệu quả hơn hệ thống sự kiện đã có trong các phiên bản trước của ActionScript. Khung ứng dụng Flex dùng cùng mô hình sự kiện như Flash Player API vì vậy hệ thống sự kiện là thống nhất qua các nền tảng từ trên xuống dưới.

Danh mục hiển thị API

Danh sách hiển thị API gồm tập các lớp sửa lại để làm việc với các hình ảnh nguyên thủy trong Flash. Lớp Sprite mới là lớp xây dựng nhẹ, tương tự MovieClip nhưng phù hợp để làm lớp cơ sở cho các thành phần UI. Lớp mới Shapeclass biểu diễn các hình dạng vector thô. Những lớp này có thể khởi tạo tự nhiên với các toán hạng new và có thể cấp phát động lại bất kỳ lúc nào.

Không còn cần phải gán số biểu diễn độ sâu với danh sách các đối tượng hiển thị. Quản lý chiều sâu được tự động và dựng sẵn trong Flash Player. Phương thức mới cung cấp để xác định và quản lý thứ tự - Z của các đối tượng.

5 Lợi ích của việc sử dụng ActionScript 3.0

  1. Hiệu năng lớn hơn

    ActionScript 3 được viết ngay từ đầu với ý tưởng về hiệu năng. Phụ thuộc vào nội dung, bạn có thể thấy sự tăng đáng kể về hiệu năng. Điều này nghĩa là nội dung đã có của bạn có thể chạy trơn tru hơn, nội dung mới viết có thể làm được nhiều điều hơn trong khi vẫn sử dụng cùng một lượng tài nguyên CPU

  2. Tận dụng các API mới của Flash Player

    Adobe Flash Player 9 và 10 với vô số các đặc tuyến mới chỉ dùng được với ActionScript 3.0. Những đặc tính này gồm các XML API dễ dàng hơn qua E4X, danh sách hiển thị các thao tác tiên tiến hơn, cũng như thao tác hình ảnh cao cấp với các bộ lọc Pixel Bender. Như quy luật chung, các đặc tính mới của ActionScript trong tương lai chỉ có thể với ActionScript 3.0

  3. Tận dụng các thư viện cộng đồng và API

    Trong số các thư viện chủ yếu mới công bố bởi cộng động dựng sẵn với ActionScript 3.0, và mọi thứ từ thư viện động cơ hoạt hình 3D Papervision3D vào thư viện hoạt hình Grant Skinner’s Gtween

  4. Khắc phục các mã lỗi dễ hơn

    Trình biên dịch ActionScript 30 cung cấp phương án kiểm tra lỗi nghiêm ngặt hơn, giúp việc tìm và sửa lỗi dễ dàng hơn trước khi chạy nội dung. Khi tìm lỗi, có thể sử dụng một vài đặc tính gỡ lỗi mạnh mới để theo dõi chúng (vẫn có thể dùng trace() ).

  5. Phát triển nội dung đa nền tảng

    ActionScript 3 là ngôn ngữ chuẩn để sử dụng qua các nền tảng Adobe Flash. Hướng tới đây là ngôn ngữ mà Adobe sẽ tập trung hỗ trợ trong các trình player (kiểu như Adobe AIR), máy chủ, và các dòng sản phẩm đã có và sẽ c. Flash Player 10 hỗ trợ ActionScript 3.0, và là yêu cầu để phát triển cho các nội dung Adobe Flex và Adobe AI. Trong tương lai, bạn có thể trông đơi những sản phẩm, dịch vụ thời gian chạy trên nền tảng FLash mới từ Adobe sẽ vẫn sử dụng ActionScript 3.0


Mẹo học ActionScript 3.0

ActionScript 3.0 là một ngôn ngữ hướng đối tượng đầy sức mạnh tiêu biểu cho một mô hình lập trình mới của Flash Player runtime. Nếu đã quen với ActionScript 1.0 hoặc 2.0, có một vài khác biệt về mặt ngôn ngữ khi phát triển chương trình với ActionScript 3.0 cần lưu ý.

Lưu ý: Tham khảo sự khác biệt của ActionScript 2.0 và ActionScript 3.0 trong Flex 2.0 Language Reference.

Để việc chuyển sang ActionScript 3.0 được dễ dàng, dưới đây là một danh sách các thủ thuật và tình huống lỗi thường gặp trong quá trình phát triển ứng dụng

  • Khai báo kiểu cho tất cả các biến, tham số và giá trị trả về. Mặc dù điều này không bắt buộc, nhưng nên khai báo tất cả các biến, tham số và giá trị trả về cùng kiểu, trình biên dịch sẽ đưa ra những thông báo lỗi hữu ích hơn. Tốc độ thực hiện chương trình cũng nhanh hơn vì máy ảo biết trước kiểu biến đang sử dụng.
  • Lưu ý những khai báo với không có chỉ thị truy nhập giờ đât mặc định là package internal, chứ không phải là public nữa. > Khai báo chỉ thị truy cập mặc định giờ đây là internal thay vì public, nghĩa là khai báo chỉ có thể nhìn thấy với gói chứa khai báo, không phải mọi mã lệnh khác.
  • Note that declarations with no access specifier now default to package internal, not public. The default access specifier for declarations is now internal instead of public, meaning that the definition is visible only to the package containing the definition, not to all code. This is consistent with other languages such as Java. Because ActionScript 2.0 declarations defaulted to public, this change will likely be a common pitfall, so always put an access specifier on your declarations to make the intent crystal-clear. To encourage this best practice, the ActionScript 3.0 compiler will output a warning when no access specifier is used.
  • Note that classes are sealed by default, meaning properties cannot be added dynamically at runtime. Classes can now be either dynamic or sealed. Dynamic classes can add additional dynamic properties at runtime; sealed classes cannot. Sealed classes conserve memory because no internal hash table is needed to store dynamic properties, and the compiler can provide better error feedback. The declaration class Foo is sealed. To declare a class dynamic, use the dynamic keyword—for example, dynamic class Foo.
  • Use package declarations to put a class definition into a package. The package keyword is new to ActionScript 3.0.

    ActionScript 2.0 code:

class mx.controls.Button { ... }

ActionScript 3.0 code:

package mx.controls { class Button { .. } }

As in ActionScript 2.0, a public class must be in a file with the same name as the class. Multiple classes may be declared in a single file, but only one class may be public, and its name must match the filename.

  • Import classes, even if references to the class are fully qualified. To use a class MyPackage.MyClass, you must import it with:
import MyPackage.MyClass;

This is true even if all references are fully qualified, that is using the full name MyPackage.MyClass. In ActionScript 3.0, the import statement indicates that you want to use a class definition from another package, whereas in ActionScript 2.0 it was only used to create shorthand names. In ActionScript 3.0, the full class name is only used for disambiguation, and is no longer a substitute for the import statement.

It is also possible to import all of the definitions in a package using the * wildcard character:

import MyPackage.*;

It is considered best practice to import definitions individually, because it results in less ambiguity about which definitions your code uses.

  • Always mark method overrides. The override keyword helps avoid common pitfalls of overriding methods, such as specifying the wrong name or method signature for an overridden method, or when the name of the overridden method changes. It also makes it clear when looking at the code that a method is being overridden. Because it knows whether a method is intended to override another, the compiler can perform more useful validation. The override keyword in ActionScript 3.0 is inspired by the C# override keyword.
  • Declare return types in your functions. It is considered best practice to declare a return type for a function. If you omit a return type, a warning will be displayed. This is done for type safety, so that you don't accidentally leave a return type off and get the default return type of Object. If a function doesn't return any value, declare its return type as void.
  • Note that delegates are now built into the language, making event dispatching easier. In ActionScript 2.0, routing an event to a method required use of the mx.utils.Delegate class or other workarounds:
import mx.utils.Delegate; myButton.addEventListener("click", Delegate.create(this, onClick));

In ActionScript 3.0, a reference to a method automatically remembers the object instance from which it was extracted. This is called a method closure. In essence, it is an automatic delegate. So, the code can simply be written as:

myButton.addEventListener("click", onClick);
  • Note that dereferencing a null or undefined reference will now throw an exception. Dereferencing null or undefined in legacy ActionScript was ignored and evaluated to undefined. Now, a TypeError exception will be thrown. Watch out for code that casually dereferenced null or undefined, and depended on the silent failure behavior. The new exception-throwing behavior is compliant with the ECMAScript specification.
  • Use the -verbose-stacktraces and -debug options. Compiling with the command-line options -verbose-stacktraces and -debug causes filenames and line numbers to appear in the Flash Player runtime alerts. When a runtime error occurs, a dialog box describes the error and lists the call stack where it occurred. Using the -verbose-stacktraces and -debug options can make it easier to locate the source of an error in your code.
  • Explicitly declare properties to be bindable. Properties are no longer bindable by default. You must declare them to be bindable by using the [Bindable] metadata tag.
  • Note that the Flash Player API has been reorganized into packages. Formerly all classes and functions in the Flash Player API were global. Now there are many packages such as flash.display, flash.events, flash.ui, and so on. For example, MovieClip is now flash.display.MovieClip and getTimer and setInterval have been moved to the flash.utils package.
  • Use the new Timer class instead of setInterval/setTimeout. The new Timer class provides a cleaner mechanism for timer events than the setInterval and setTimeout functions. The new Timer class has a number of advantages over setInterval, such as not having to deal with interval ID numbers, and a more modern, object-oriented interface. We regard using Timer instead of setInterval and setTimeout as a best practice.
  • Be sure to subclass events. Events are now strongly typed, and must be subclasses of the new Event base class. The new Event class makes the event system clearer and more efficient. However, this also means that you can no longer use a generic instance of class Object when dispatching events, and you cannot use the object literal shorthand—for example, {type: 'customEvent' }.

    Instead of creating a generic Object class, you now need to use the Event class (for example, dispatchEvent(new Event ('myCustomEventType'))). You need to subclass Event if you want to pass additional properties. The motivation for not using Object is to achieve greater type safety and efficiency.

  • Note that visual elements must extend DisplayObject, and you can define them like any other class. Components are now created dynamically with new and added to the display list using addChild. As a result, createChild has been deprecated. Visual entities, including TextField, can be instantiated like any other object and simply added to a display list using addChild or addChildAt. Note that this means certain APIs are gone, such as createEmptyMovieClip and createTextField. In order to create a new TextField you use new TextField instead of createTextField.
  • Note that E4X (ECMAScript for XML) is now the recommended means of manipulating XML in Flash. E4X is far more powerful and better integrated into the language than the legacy Flash XML class, and provides a host of new capabilities. The legacy Flash XML class is still available for use. If you prefer the legacy XML API, renamed to XMLDocument, it is still available in the flash.xml package.
  • Use the toXMLString method when using E4X. The toString method does not necessarily return the complete XML markup for the object; to get that, use the toXMLString method. The toString method returns a convenient string value for the XML object. It does not necessarily serialize the XML object in its entirety. To get the XML markup, call the toXMLString method.
  • Note that the for...in loop will no longer enumerate properties and methods declared by a class. It only enumerates dynamic properties of an object. ActionScript 3.0 features a new and more advanced mechanism for object introspection, called describeType. Use it to introspect objects in ActionScript 3.0.
  • Note that the root object of a SWF file can now be an instance of a custom class of your choice. In ActionScript 2.0, the root object of a SWF file was always of class MovieClip. In ActionScript 3.0, it may be any subclass of Sprite. You can set a class definition to be the DocumentRoot of a SWF file. When it's loaded, the SWF file will instantiate that class to serve as its root object.

Special thanks go out to our developer community for helping suggest entries for this article. The list presented here is by no means exhaustive, but it's a start that will help you hit the ground running with ActionScript 3.0. If you are familiar with other object-oriented languages, you may find these tips little more than a refresher—skills you've learned elsewhere can immediately be put to use in ActionScript 3.0.

If you are new to object-oriented programming and ActionScript 3.0, then these tips will come in handy. For you, this is definitely a list to pin up in plain sight. Happy coding!






http://help.adobe.com/en_US/flash/cs/using/index.html

http://help.adobe.com/en_US/as3/dev/index.html