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.
![]()
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
![]() 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
![]() 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 ![]() ![]() __________________
|
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
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:
on (press)
{
fscommand("launch", "Menu,0");
fscommand2("set", "Menu", 1, 3, 0);
}
![]() |
Hình đã được co lại. Bấm vào đây để xem đúng kích thước. Kích thước ảnh là 734x529. |
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;
}
}
}
![]() |
Hình đã được co lại. Bấm vào đây để xem đúng kích thước. Kích thước ảnh là 749x188. |
__________________
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:
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:
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:
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:
_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:
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:
on (release)
{
platform.touch_sound();
this._parent.prevWallpaper();
Button Next:
on (release)
{
platform.touch_sound();
this._parent.nextWallpaper();
}
Button OK:
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:
fscommand2("set", "Menu", 1, 3, 0);
Call Logs:
fscommand("launch", "Menu,0");
Photo Contact:
fscommand("launch", "Menu,1");
Music Player:
fscommand("launch", "Menu,2");
Internet Browser:
fscommand("launch", "Menu,3");
Messages
fscommand("launch", "Menu,4");
My files
fscommand("launch", "Menu,5");
Calendar
fscommand("launch", "Menu,6");
Camera
fscommand("launch", "Menu,7");
Communities
fscommand("launch", "Menu,8");
Bluetooth
fscommand("launch", "Menu,9");
Alarms
fscommand("launch", "Menu,10");
Settings
fscommand("launch", "Menu,11");
Find music
fscommand("launch", "Menu,12");
fscommand("launch", "Menu,13");
Fm radio
fscommand("launch", "Menu,14");
Game and more
fscommand("launch", "Menu,15");
Voice recorder
fscommand("launch", "Menu,16");
Dictionary
fscommand("launch", "Menu,17");
Synchronise
fscommand("launch", "Menu,18");
RSS reader
fscommand("launch", "Menu,19");
World clock
fscommand("launch", "Menu,20");
Memo
fscommand("launch", "Menu,21");
Task
fscommand("launch", "Menu,22");
Ax_download
fscommand("launch", "Menu,23");
Calculator
fscommand("launch", "Menu,24");
Convertor
fscommand("launch", "Menu,25");
Timer
fscommand("launch", "Menu,26");
Stop watch
fscommand("launch", "Menu,27");
Sim at
fscommand("launch", "Menu,28");
Keypad
fscommand("launch", "Menu,36");
Contact
fscommand("launch", "Menu,37");
Back to Gadget
fscommand("launch", "Menu,38");
2. Các đoạn AS trong Gadget:
Rung phản hồi:
fscommand2("Set", "idle", "1", "2", "0");
Vào Menu:
fscommand("launch", "idle,3");
Keypad:
fscommand("launch", "idle,1");
Danh bạ:
fscommand("launch", "idle,2");
Games and more:
fscommand("launch", "idle,game");
Viết tin nhắn:
fscommand("launch", "idle,msgComposer");
Inbox:
fscommand("launch", "idle,msgInbox");
Bluetooth:
fscommand("launch", "idle,bluetooth");
Báo thức:
fscommand("launch", "idle,alarm");
Photo:
fscommand("launch", "idle,photo");
Máy tính:
fscommand("launch", "idle,calculator");
Lịch:
fscommand("launch", "idle,clendar");
Profile:
fscommand("launch", "idle,profile");
Youtube:
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):
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
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