tinhoctuoixanh@gmail.com

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