Hướng dẫn căn bản cách tạo Theme cho Corby ?

tun cua di
tun cua di
Trả lời 14 năm trước

I/ PHẦN MỀM VÀ ỨNG DỤNG CẦN THIẾT:

1. Các công cụ chỉnh sửa hình ảnh:

Mục đích làm theme chính là làm đẹp cho điện thoại, vì vậy ko thể thiếu các công cụ chỉnh sửa hình ảnh.
Các bạn có thể đơn giản là tải hình ảnh, icon,… từ internet hoặc extract từ các file theme khác, tuy nhiên hình ảnh hay icon tải từ internet đôi khi có độ phân giải ko phù hợp nên nhất thiết phải có công cụ chỉnh sửa hình ảnh.
3 công cụ mình thường dùng nhất là Adobe Photoshop, Corel Draw và Microsoft Publisher. Trong bài viết này mình sẽ ko đặt nặng hướng dẫn sử dụng các công cụ này, tất cả phụ thuộc vào các bạn quen sử dụng phần mềm nào để cho ra những icon, wallpaper,… phù hợp với sở thích.

2. Các công cụ reader, decompiler, extracrter file swf:

Việc tự tạo hoàn toàn 1 theme sẽ ngốn rất nhiều công sức cũng như thời gian của bạn, vì vậy, việc search trên internet các file theme đã hoàn thành dành cho star và chỉnh sửa thành theme cho corby, sau đó lược bớt hay thêm thắt các chi tiết chúng ta muốn sẽ giúp các bạn tiết kiệm dc thời gian, công sức nhưng vẫn có thể có theme như ý.
Để làm được việc này, nhất thiết các bạn phải có các công cụ đọc file, chỉnh sửa, extract hay decompiler các file flash đã dc đóng gói thành file *.swf
Trong bài viết này mình sẽ giới thiệu đến các bạn 2 phần mềm theo mình là tốt và dễ sử dụng nhất:

a. Sothink SWF Quicker: đây là 1 công cụ mạnh mẽ, có thể chỉnh sửa trực tiếp file swf mà ko cần phải decompiler thành file FLA, các bạn có thể sử dụng chỉ 1 mình phần mềm này cũng đã có thể tạo theme cho corby, tuy nhiên nhược điểm của phần mềm này là khâu quản lý library ko dc hiệu quả khi so sánh với Adobe Flash!
b. Flash Decompiler Trillix: đây là công cụ decompiler, extracter thược loại dễ sử dụng nhất hiện nay, với công cụ này bạn có thể dễ dàng convert các file swf thành FLA để dễ dàng chỉnh sửa, hoặc dung để extract các hình ảnh trong file swf. Các file FLA, SWF sau khi được convert hay extract được nằm trong các thư mục ghi rõ rang ngày, tên file extract nên việc quản lý khá ổn. Nhược điểm của phần mềm này là các câu lệnh fscommand2 khi convert sẽ bị lỗi. Tuy nhiên việc replace lại các câu lệnh bị lỗi ko quá khó khăn.

3. Công cụ chỉnh sửa file FLA:

Đây là công cụ chính được đề cập trong bài viết này.
Công việc mod theme corby đơn giản thường thực hiện qua các bước sau:
1. download theme cho Star về từ internet,
2. dùng Trillix để convert file swf này thành FLA
3. Dùng công cụ chỉnh sửa file FLA thành file theme phù hợp với corby
4. Publish file FLA lại thành file SWF và đưa vào điện thoại
Để chỉnh sửa file FLA, ta có thể dùng nhiều phần mềm khác nhau, tuy nhiên công cụ phù hợp nhất để làm theme cho corby là Adobe Flash CS3.
Lý do: tuy rằng Adobe Flash 8 dễ dùng hơn, tuy nhiên Flash 8 ko hỗ trợ fscommand2 nên ko thể đưa rung phản hồi vào theme. Flash CS4 thì ko cần thiết.

Mặc định

II/ TỰ TẠO THEME CORBY BẰNG FLASH CS3:

Trong phần này, mình sẽ hướng dẫn chi tiết cách mình đã làm theme Android Sense For Corby. Các bạn có thể làm tương tự để làm nên 1 file theme như ý.
Để làm theme Android Sense, đầu tiên các bạn phải có các file đồng hồ, định dạng swf đặt trong thư mục Clocks, các file wallpaper định dạng swf hoặc jpg nằm trong thư mục wallpaper, cuối cùng là các file icon, có thể định dạng jpg hoặc png.
Theme Android Sense này có 2 phần: phần 1 là Gadget, phần 2 là Menu.
Trong bài hướng dẫn này, mình sẽ hướng dẫn các bạn làm phần Menu.
Với Gadget, các bạn có thể làm tương tự, nhưng với action script có chút thay đổi. Các thay đổi này mình sẽ nói rõ trong mục 3 của bài viết này.

• Cách làm Menu Android Sense:
Đầu tiên, các bạn mở Adobe Flash CS3
Chọn Create New >> Flash File (Action Script 2.0)

Sau đó chọn Size,
chọn khung hình là 240 x 320 pixel>>ok
Hình đã được co lại. Bấm vào đây để xem đúng kích thước. Kích thước ảnh là 758x477.

Chọn Settings…
Version: Flash Lite 2.1
Action Script Version: ActionScript 2.0
Bỏ tick chọn Compress Movie
Chọn JPEG Quality là 100>>OK
Hình đã được co lại. Bấm vào đây để xem đúng kích thước. Kích thước ảnh là 746x605.

Sau đó nhấn Ctr+S, lưu lại với tên là Menu.
Tiếp theo, ta sẽ bắt tay vào làm wallpaper changer:
Các bạn chuẩn bị 1 file ảnh bất kì, có kích thước là 240x320 để làm ảnh nền. Sau đó kéo thả ảnh nền này vào Adobe Flash CS3, chương trình sẽ tự động cân chỉnh để ảnh nằm đúng ngay trung tâm. Nhấp phải chuột vào ảnh nền, chọn convert to symbols…, tich chọn vào movie clip>>OK

__________________
tun cua di
tun cua di
Trả lời 14 năm trước

Nhìn xuống thanh properties phía dưới chương trình, nhấp vào <Instance Name>, sau đó gõ vào tên sau: wallpaperMovie (lưu ý chữ M viết hoa).

Tiếp tục, các bạn nhấn phím F9 để hiện bảng action.
Các bạn nhấp chuột lên Frame 1 ở tab Layer, sau đó dán dòng code này vào phần Action script

Code:
function nextWallpaper()
{
loadMovie("", wallpaperMovie);
++thei;
trace(thei + ".jpg");
wallpaperMovie.loadMovie(theDir + "/wallpapers/" + thei + ".jpg");
wallLoader.checkLoad.gotoAndPlay(2);
}
function doOnLoad()
{
pctLoaded = wallpaperMovie.getBytesTotal();
trace(pctLoaded + "bytes");
if (pctLoaded == "-1")
{
nextWallpaperSWF();
}
}
function nextWallpaperSWF()
{
loadMovie("", wallpaperMovie);
trace(thei + ".swf");
wallLoader.checkLoad1.gotoAndPlay(2);
wallpaperMovie.loadMovie(theDir + "/wallpapers/" + thei + ".swf");
}
function doOnLoadSWF()
{
pctLoaded1 = wallpaperMovie.getBytesTotal();
trace(pctLoaded1 + "bytes");
if (pctLoaded1 == "-1")
{
thei = "0";
nextWallpaper();
}
}
function prevWallpaper()
{
loadMovie("", wallpaperMovie);
--thei;
trace(thei + ".jpg");
wallpaperMovie.loadMovie(theDir + "/wallpapers/" + thei + ".jpg");
wallLoader.checkLoad.gotoAndPlay(2);
}
setInterval(this, "time", 1000);
dotime();
stop();
theDir = this._url.slice(0, this._url.lastIndexOf("/"));
var thei;
thei = 0;
nextWallpaper();
Hình đã được co lại. Bấm vào đây để xem đúng kích thước. Kích thước ảnh là 1118x629.


Tới đây, các bạn đã tạm thời hoàn thành đoạn Movie có thể thay đổi wallpaper, tuy nhiên phần Wallpaper Changer chưa có. Tuy nhiên phần wallpaper Changer sẽ được làm sau cùng. Lý do: Wallpaper Changer phải nằm trên cùng để có thể dễ dàng thao tác chuyển đổi wall paper ^^!
Tiếp theo, ta sẽ cùng làm các Button trong menu
Ở đây các bạn cần chuẩn bị icon cho các Button, Mỗi button cần có 1~2 icon tùy bạn muốn chọn hiệu ứng khi nhấp vào.
Để thao tác, đầu tiên các bạn kéo thả icon mình muốn làm vào Flash CS3. Ở Theme Android Sense, mình chọn Call Logs làm button đầu tiên, do đó mình sẽ kéo thả icon Call Logs vào.
Sau đó, bạn nhấp chuột phải vào icon Call Logs, chọn Convert to Symbols…, chọn Button>>OK


Tiếp tục, bạn click lên button vừa tạo, dán đoạn code sau vào phần action:

Code:
on (press)
{
fscommand("launch", "Menu,0");
fscommand2("set", "Menu", 1, 3, 0);
}
tun cua di
tun cua di
Trả lời 14 năm trước
Sau đó, bạn nhấp đúp chuột vào button Call logs, Nhìn lên Tab Layers
bạn sẽ thấy có 4 Frame tương ứng với 4 thao tác là: Up, Over, Down, Hit.
Các bạn nhấp chuột phải vào Frame Up, chọn Copy Frames
Sau đó lần lượt nhấp chuột phải vào 3 Frame còn lại, chọn Paste Frames.
Để tạo hiệu ứng khi bấm vào Icon, bạn cần chỉnh sửa ở Frame Down.
Trong ví dụ này, mình sẽ xoay icon trong Frame Down sang trái 1 tí.
Các bạn có thể Publish thành file swf để test thử.

Các bạn làm tương tự với các button khác. Phần action tương ứng với mỗi Button mình sẽ post trong phần 3.
Để ghi Text bên dưới mỗi Icon, các bạn click vào biểu tượng Text Tool ở thanh công cụ bên trái, hoặc nhấn phím T, click vào chỗ muốn gõ, sau đó nhập nội dung text.
Các bạn lưu ý phần Properties của Text để text tự thay đổi font theo font mình chọn trong điện thoại như sau:
Loại văn bản: Dynamic Text
Selectable: none
Hình đã được co lại. Bấm vào đây để xem đúng kích thước. Kích thước ảnh là 734x529.

Sau khi hoàn tất 24 Button, các bạn cân chỉnh để các icon này sắp xếp đều nhau, để dễ dàng, các bạn có thể cân chỉnh thông qua tab Properties.
Khi đã cân chỉnh xong, các bạn nhấn giữ Shift, chọn lần lượt 24 Button, lưu ý chọn cả text của button nữa. Chọn xong bạn nhấn chuột phải vào 1 button bất kì, chọn Convert to Symbols…, chọn Movie Clip>>OK
Sau đó bạn nhấp đôi chuột vào khoảng trống trên khung làm việc để trở về Layer chính. Chọn Symbols chứa 24 Button mới tạo, và gõ vào Instant Name là Menu, Cuối cùng bạn dán đoạn Code chỉ thị việc lướt qua lại giữa 2 tab Menu vào khung action:
Code:
onClipEvent(mouseDown)
{
this.startDrag(false, 0, 168, 240, 168);
slideto1 = false;
slideto2 = false;
}onClipEvent(mouseUp)
{
this.stopDrag();
if (page == 1)
{
if (this._x >= 200)
{
slideto1 = true;
slideto2 = false;
}
else
{
slideto1 = false;
slideto2 = true;
}
}
if (page == 2)
{
if (this._x <= 40)
{
slideto1 = false;
slideto2 = true;
}
else
{
slideto1 = true;
slideto2 = false;
}
}
}onClipEvent(load)
{
this._xscale = 200;
this._yscale = 200;
this._x = 359;
this._y = 238;
this._alpha = 0;
this._visible = false;
fadein = true;
}onClipEvent(enterFrame)
{
function pop()
{
_parent.popupnow = true;
}
if (this._x > 230)
{
page = 1;
}
if (this._x <= 10)
{
page = 2;
}
if (slideto1)
{
if (this._x < 239)
{
slidespeed = 240 - this._x;
this._x = this._x + slidespeed / 2;
if (this._x > 240)
{
this._x = 240;
slideto1 = false;
}
}
}
else
{
if (slideto2)
{
if (this._x > 0)
{
slidespeed = this._x;
this._x = this._x - slidespeed / 2;
if (this._x < 0)
{
this._x = 0;
slideto2 = false;
}
}
}
}
if (fadeout)
{
this._xscale = this._xscale + 10;
this._yscale = this._yscale + 10;
this._x = this._x + 12;
this._y = this._y + 7;
this._alpha = this._alpha - 15;
if (this._alpha < 10)
{
this._visible = false;
}
}
if (fadein)
{
this._visible = true;
this._xscale = this._xscale - 20;
this._yscale = this._yscale - 20;
this._x = this._x - 24;
this._y = this._y - 14;
this._alpha = this._alpha + 20;
if (this._alpha > 99)
{
fadein = false;
}
}
if (fadeout2)
{
this._xscale = this._xscale + 10;
this._yscale = this._yscale + 10;
this._x = this._x - 12;
this._y = this._y + 7;
this._alpha = this._alpha - 15;
if (this._alpha < 10)
{
this._visible = false;
}
}
}
Các bạn có thể xuất ra thành file swf để test, một số trường hợp có thể gặp phải là file swf sau khi xuất ra sẽ thấy 24 Button ko nằm đúng vị trí như trong file FLA, lúc này các bạn cần vào lại Flash CS3, nhấp đúp chuột vào Symbols Menu để vào khung làm việc, cân chỉnh lại vị trí các Button. Nếu việc cân chỉnh gặp khó khăn, các bạn có thể chọn hết các Buttin (nhấn Ctrl+A) sau đó nhìn xuống tab Properties, sẽ thấy 2 dòng X, Y, bạn gõ lần lượt các thông số sau:
X: -245.9
Y: -132.1
Đây là thông số mình nghĩ sẽ tối ưu, tuy nhiên đôi khi không được chính xác, nên các bạn cần thay đổi thêm giá trị X và Y
Đến đây Menu đã tạm hoàn tất. Tiếp theo ta sẽ tiến hành làm 3 Button phía dưới cùng của Menu, 3 Button này sẽ đứng im khi ta lướt qua do đó nó sẽ không nằm cùng group với các Button khác.
Để bắt đầu, các bạn kéo thả hình ảnh của 3 Button này vào Flash CS3, cân chỉnh đến vị trí thích hợp, và tạo Button tương tự 24 Button trong Menu
Hình đã được co lại. Bấm vào đây để xem đúng kích thước. Kích thước ảnh là 749x188.

__________________

tun cua di
tun cua di
Trả lời 14 năm trước

Phần tiếp theo là thanh Status ở phía trên Menu, với cột sóng, thông tin pin và đồng hồ, phần này tương đối phức tạp với nhiều Layer chồng chất lên nhau, nên để dễ thao tác, các bạn có thể copy lại 2 Symbols mình đã làm sẵn:

Sau khi xong thanh Status, ta lại bắt tay vào làm Wallpaper Changer
Bạn cần chuẩn bị 1 icon để mở wallpaper changer, 2 icon nhỏ màu đỏ, 1 icon nhỏ màu vàng, 1 icon nhỏ màu xanh, mũi tên qua lại và nút OK.
Để bắt đầu, các bạn kéo thả các icon sau vào Flash CS3: Icon mở wall changer và 2 icon nhỏ màu đỏ:
Tiếp tục chọn 3 đối tượng trên, nhấp chuột phải, chọn
Convert To Symbols…, chọn Movie Clip>>OK
Sau đó các bạn gõ vào Instant Name của Symbols này là:wallLoader
Lưu ý: chữ L viết hoa.
Tiếp tục nhấp đúp chuột vào Symbols này để vào vùng làm việc của Symbols.

Trong vùng làm việc của Symbols, bạn nhấp lên Frame 1, sau đó gõ vào đoạn Action sau:

Code:
stop();
Hình đã được co lại. Bấm vào đây để xem đúng kích thước. Kích thước ảnh là 1117x381.


Tiếp theo, các bạn convert Icon Wallpaper changer thành Button và gõ vào đoạn action sau cho Button này:

Code:
on (release)
{
play();
}

Tiếp tục convert 2 icon màu đỏ thành Movie với Instant Name lần lượt là checkLoad và checkLoad1.
Nhấp đúp chuột vào Symbols checkLoad, sau đó gõ đoạn action sau vào Frame 1:
stop();
Tiếp tục tạo Frame 2 trong symbols checkLoad, gõ vào đoạn action sau:

Code:
this._parent.theWallButton._x = "500";
this._parent.theWallButton1._x = "500";

Tạo thêm Frame 3 và Frame 4, trong đó bạn thay icon màu đỏ thành icon màu vàng

Hình đã được co lại. Bấm vào đây để xem đúng kích thước. Kích thước ảnh là 947x347.


Tạo thêm Frame 5, với đoạn action sau:

Code:
_parent._parent.doOnLoad();
_parent.theWallButton._x = "80.1";
_parent.theWallButton1._x = "-80.1";
gotoAndStop(1);

Sau đó nhấp đôi chuột vào khoảng trống để trở lại vùng làm việc của Symbols wallLoader
Tiếp tục nhấp đôi chuột vào Symbol checkLoad1 để vào vùng làm việc của symbol này. Làm tương tự như với symbol checkLoad, nhưng Frame 3 và 4 thay icon màu vàng thành icon màu xanh:

Sau đó, lại nhấp đôi chuột vào khoảng trống để trở lại vùng làm việc của symbol wallLoader.
Trong symbol wallLoader, bạn tạo Frame 2 với action sau:

Code:
stop();

Trong Frame 2, bạn kéo thả vào 3 icon mũi tên qua lại và nút OK, sau dó convert các icon này thành 3 Button
Việc cuối cùng cần làm là gõ vào action tương ứng với 3 button trên.
Với Button Previous:

Code:
on (release)
{
platform.touch_sound();
this._parent.prevWallpaper();
tun cua di
tun cua di
Trả lời 14 năm trước

Button Next:

Code:
on (release)
{
platform.touch_sound();
this._parent.nextWallpaper();
}

Button OK:

Code:
on (release)
{
gotoAndStop(1);
}

Như vậy là phần Menu đã hoàn thành, các bạn có thể xuất ra file swf để kiểm tra thành quả của mình.
Lưu ý: bạn cần có 1 thư mục wallpapers chứa các file wallpapers với định dạng jpg hoặc swf nằm cùng với file Menu.swf xuất ra thì mới có thể thấy được các wallpaper.
Nếu còn trục trặc, các bạn có thể tham khảo thêm trong 2 file Gadget.FLA và Menu.FLA đính kèm bài viết này.

III/ CÁC ĐOẠN ACTION SCRIPT CẦN BIẾT:

1. Các đoạn AS trong Menu:
Rung phản hồi:

Code:
fscommand2("set", "Menu", 1, 3, 0);

Call Logs:

Code:
fscommand("launch", "Menu,0");

Photo Contact:

Code:
fscommand("launch", "Menu,1");

Music Player:

Code:
fscommand("launch", "Menu,2");

Internet Browser:

Code:
fscommand("launch", "Menu,3");

Messages

Code:
fscommand("launch", "Menu,4");

My files

Code:
fscommand("launch", "Menu,5");

Calendar

Code:
fscommand("launch", "Menu,6");

Camera

Code:
fscommand("launch", "Menu,7");

Communities

Code:
fscommand("launch", "Menu,8");

Bluetooth

Code:
fscommand("launch", "Menu,9");

Alarms

Code:
fscommand("launch", "Menu,10");

Settings

Code:
fscommand("launch", "Menu,11");

Find music

Code:
fscommand("launch", "Menu,12");

Google

Code:
fscommand("launch", "Menu,13");

Fm radio

Code:
fscommand("launch", "Menu,14");

Game and more

Code:
fscommand("launch", "Menu,15");

Voice recorder

Code:
fscommand("launch", "Menu,16");

Dictionary

Code:
fscommand("launch", "Menu,17");

Synchronise

Code:
fscommand("launch", "Menu,18");

RSS reader

Code:
fscommand("launch", "Menu,19");

World clock

Code:
fscommand("launch", "Menu,20");

Memo

Code:
fscommand("launch", "Menu,21");

Task

Code:
fscommand("launch", "Menu,22");

Ax_download

Code:
fscommand("launch", "Menu,23");

Calculator

Code:
fscommand("launch", "Menu,24");

Convertor

Code:
fscommand("launch", "Menu,25");

Timer

Code:
fscommand("launch", "Menu,26");

Stop watch

Code:
fscommand("launch", "Menu,27");

Sim at

Code:
fscommand("launch", "Menu,28");

Keypad

Code:
fscommand("launch", "Menu,36");

Contact

Code:
fscommand("launch", "Menu,37");

Back to Gadget

Code:
fscommand("launch", "Menu,38");


tun cua di
tun cua di
Trả lời 14 năm trước

2. Các đoạn AS trong Gadget:
Rung phản hồi:

Code:
fscommand2("Set", "idle", "1", "2", "0");

Vào Menu:

Code:
fscommand("launch", "idle,3");

Keypad:

Code:
fscommand("launch", "idle,1");

Danh bạ:

Code:
fscommand("launch", "idle,2");

Games and more:

Code:
fscommand("launch", "idle,game");

Viết tin nhắn:

Code:
fscommand("launch", "idle,msgComposer");

Inbox:

Code:
fscommand("launch", "idle,msgInbox");

Bluetooth:

Code:
fscommand("launch", "idle,bluetooth");

Báo thức:

Code:
fscommand("launch", "idle,alarm");

Photo:

Code:
fscommand("launch", "idle,photo");

Máy tính:

Code:
fscommand("launch", "idle,calculator");

Lịch:

Code:
fscommand("launch", "idle,clendar");

Profile:

Code:
fscommand("launch", "idle,profile");

Youtube:

Code:
fscommand("launch", "idle,youtube");

Cuối cùng là đoạn action giúp kéo thả icon (tương tự theme Android trong sixTheme V2):

Code:
onClipEvent(mouseDown)
{
this.startDrag(false, a, b, c, d);
}
onClipEvent(mouseUp)
{
this.stopDrag();
}

Trong đó, a, b, c, d là các con số được thay đổi tùy theo khu vực bạn muốn icon được phép kéo thả.
Lưu ý: đoạn action kéo thả chỉ thực hiện được với các symbols là Movie Clip. Với các symbols là Button thì ko dung dc action này.


Ngoài ra các bạn có thể down file hướng dẫn đầy đủ, và 2 file gadget.fla và menu.fla về để nghiên cứu thêm:
http://www.mediafire.com/?xmztezgnznk
http://www.mediafire.com/?me2nmtwjjn4
http://www.mediafire.com/?zwqi1ntv1zg

nguyen ngoc luc
nguyen ngoc luc
Trả lời 13 năm trước

trời ơi khó quá cái này chỉ dành cho lập trình thôi, hic bác có theme nào thì up lên cho mọi ngừoi với. bác biết có theme samsum corby II (s3850) mới ra không send cho em đi em cảm ơn nhiều nhiều. (theme này có định dạng là ***.smt