跳到主要內容

發表文章

目前顯示的是 2011的文章

批次快速更改副檔名

大家好,我是奶綠茶
想要快速的批次更改副檔名,又不想開其他軟體時
可以使用 Windows 的 批次檔
開啟 notepad , 輸入: ren *.jad *.java
另存成 xxx.bat, 並 copy 到你想更改的資料夾裡
點擊二下啟動即可。
這句的意思就是把該 .bat 所在的資料夾下,
副檔名為.jad 改成.java
完成

Flash, Android 呼叫 ASP.NET WebService

大家好,我是奶綠茶
今天來分享如何使用 Flash 及 Android 呼叫 ASP.NET 的 WebService
WebService 的好處, 就是可以把專案所有要用到的方法, 寫在一隻程式裡, 方便日後管理。
傳接的格式, 都使用 JSON
.net 傳 WebService程式
[WebService(Namespace = "http://milkmidi.com/")] //注意這個 Namespace [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { private static JavaScriptSerializer serializer = new JavaScriptSerializer(); public WebService () { } [WebMethod] public string getArray() { return serializer.Serialize(new string[] { "A", "B", "c" }); } [WebMethod] public string getObject() { var json = new { RS = "OK" }; return serializer.Serialize(json); } /// /// Client 端傳 JSON 格式, Server 端解 /// [WebMethod] public string setObject(string json) { JsonObject obj = JsonConvert.Import(typeo…

html5 easel 3D Ball

大家好,我是奶綠茶
今天來分享關於 html5 的技術
試寫一個簡單的 3D Ball 效果
使用的 html5 Framework, 是 gskinner 大神所開發的 easeljs
為什麼要選這套呢,因為是 gskinner 開發, 就一定是好東西
還有一點是他長的很像 AS3 的寫法, 真的超像的
對 Flash Developer 來說,真的不難,

轉載請註明出處

Java String split

大家好,我是奶綠茶
在開發程式時,經常會需要用到把一整個字串依某字位拆成一個 Array
在 Java  裡 可以使用 String 裡的 split 方法
和 FlashActionScript 用法是一樣的
但有一點點不同之處,
如果你想要 split 的字元是 "." ,就要寫成 "\\."
不然永遠得到的 Array 長度都是 0

public class StringSplit { public static void main(String args[]) throws Exception{ String testString = "Real.How.To"; // bad System.out.println(java.util.Arrays.toString( testString.split(".") )); // output : [] // good System.out.println(java.util.Arrays.toString( testString.split("\\.") )); // output : [Real, How, To] } } 參考文章:http://www.rgagnon.com/javadetails/java-0438.html

Bluestacks 讓 PC 也可以安裝 Android 系統

大家好,我是奶綠茶
想在 PC 上, 安裝 Android 系統, 之前需要用 VM 的方式來安裝,
現在有更好的選擇了:BlueStacks
http://bluestacks.com
先到官網下載安裝程式,然後下一步下一步,下一步即可
完成後, 啟動應用程式


啟動畫面


工具列左到右為:
Menu ,
水平、垂直切換,
放大至Screen的大小,
app項單
如何安裝其他的應用程式呢?
首先你要先下載 Android 的安裝程式檔, 副檔名為 .apk
找到路徑
C:\Program Files\BlueStacks\
有個名為 HD-ApkHandler.exe
把你的 apk 檔拉過去,就會開始安裝了

轉載請註明出處

簡易版 3D Banner 效果

大家好,我是奶綠茶
最近學生問起了一個 3D 的 Banner 效果要如何製作
寫了一個簡單的 Demo, 程式碼也很短,
只用到 TweenMax , 和 FlashPlayer10 的 3D 即可做到
/* milkmidi.blogspot.com */ import com.greensock.TweenMax; var container:Sprite = new Sprite(); container.x = stage.stageWidth >> 1; addChild( container ); addEventListener(Event.ENTER_FRAME , enterFrameHandler); var back:MovieClip = new Back_mc; back.x = stage.stageWidth >>1; back.y = 40; back.visible=false; addChild( back ); back.addEventListener(MouseEvent.CLICK , function(){ showBack(false); }); (function () { for(var i:int = 0 ; i<6 ; i++){ var _mc:MovieClip = new Item_mc; _mc.width = 100; _mc.scaleY = _mc.scaleX; _mc.x = 110*i - (110*3); _mc.y = 40; _mc.addEventListener(MouseEvent.ROLL_OVER , itemOverOutHandler); _mc.addEventListener(MouseEvent.ROLL_OUT , itemOverOutHandler); _mc.addEventListener(MouseEvent.CLICK , itemOverOutHandler); _mc.gotoAndStop(i+1); container.addChild( _mc ); } function itemOverOutHandler (e:Even…

Flash is Dead?

最近 Adobe 公佈了一項重要訊息
將不再更新行動裝置上的 Flash Player Plugin
所以 Flash 以死, 我將失業(誤)
其實也沒那麼嚴重, 只是將重心放在 Apps for Mobile.
其實我覺得在手機、或是平版上, 看用 flash 製作的 PC 版網站, 本來就是一件奇怪的事
因為在設計理念上時, 就已經不一樣, 硬體規格也不同
當初 Jobs 不讓水果版支援 Flash , 這點我也認同, 必竟本來就是二個不同的東西
Flash 失去了跨平台的優勢, 那下一步呢? 還要不要學 Flash ?
來說說我自已的觀點。

把市場切割成桌機(PC , Mac)、行動裝置(IOS, Android)二者
桌機:
以前 Flash 只能單靠 CPU 運算,現在多了硬體加速的支援, 能做到的效果屌太多了
Flash 有個最強大的優勢,就是快速製作 Content 的好工具, 程式也好寫,
在製作 Web 網站時, 還是第一首選。
現在許多的互動裝置, 都可以和 flash 溝通, 在呈現面上, Flash 的優勢還是最好。
(你可以用 Java , C# 去跑動畫試試看, 就知道 Flash 太簡單了)

行動裝置:
因為硬體的關系,不可能跑到像桌機上那麼復雜的效果,
就算今天水果支援了 Flash , 在使用者操作的考量上, 還是要做二個版本
Html5 就變成了唯一的選擇, 好在你會寫 AS3, Html5 的程式對你不會太難,
難在的是不同瀏覽器對 Html5 的支援度完全不同

---------------------我是分隔線之大家好,我是奶綠茶---------------------------

為了要讓二者平台都能看, 又想省錢不想做二個版本(最好能包山包海通通包)
就選 Html5 版就好了呀!
錯, 因為 IE8 以下不支援 Html5 , IE9又限定 WIN7 才能裝, 裝了後, 也不是完整的支援 Html5
且且且且且且且且, W3C 都還沒統一規格,
光針對瀏覽器, 就可以寫死你
還是回到一開始說的, 還是要做二個版本


Adobe 將把重心放在 Apps for Mobile. 指的就是跨平台技術 AIR.
用 AIR 寫的 app. 本質還是 flash, 所以還是會受到 flash 先天的限制
但快速, 好寫, 跨…

Away3D4 stage3D Coverflow

大家好,我是奶綠茶
今天來分享一下如何使用 Away3D4 製作經典的 Coverflow 效果
之前都是習慣用 PV3D 製作,但 PV3D 沒有推出 Stage3D 的版本,只好轉戰 Away3D
還好之前有玩過,寫起來長的差不多。
原理和之前分享過的幾篇 Coverflow 教學一樣
同時也練習了一下 Robotlegs , Demo如下。


轉載請註明出處
SourceCodeDownload

其中 ScrollBar 類別是使用 clockmaker 這篇的教學
http://clockmaker.jp/blog/2011/10/stage3d-cover-flow/

Android , Adobe AIR Socket

大家好,我是奶綠茶
今天來介紹一下 Adobe AIR ServerSocket
需求:
很多台電腦,在同一個區網,要能彼此溝通,同時 Android 平版也要能傳接值。
解:
本來想如果就只有單 flash 的話, 可以使用 P2P 區網連線就決解了,
但因為 Andriod 平版也要能支援, 所以就改成 Socket 來溝通。

那為什麼不用 Java 架 Socket Server 就好了,因為我是閃客(因為用 Java 做動畫會死人)
AIR 端,使用ServerSocket 類別。
在畫面上就只放所有連線的 Client 列表,一個發送訊息的文字和Button, 一個接收的文字
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="createComplete(event);" close="appCloseHandler()"> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ import flash.display.NativeWindow; import flash.events.Event; import flash.events.ProgressEvent; import flash.events.Server…

Flash in Android WebView

大家好,我是奶綠茶
在 Android 裡可以使用 WbeView 來包一個 flash 的網頁
但在 3.0 以上的版本要再多加一些設定,才能讓 flash 順利出現。
在 AndroidManifest.xml 加入這二段即可
uses-sdk android:minSdkVersion="11"
application android:hardwareAccelerated="true"
完成

Andoird Launcher AIR App

大家好,我是奶綠茶
最近案子的需要,所以會用 Android 和 AIR 來混搭開發 app
遇到的問題有:
1.Android 怎麼啟動另一個 App(Andoird or AIR) ?
2.啟動後,如何帶變數過去?
3.反過來 AIR 啟動 Andoird 且帶值? 
先了解 Android 怎麼啟動另一個 App.
使用 Intent 類別, 且指定要啟動的 app package路徑
Intent intent = new Intent( Intent.ACTION_MAIN , null); intent.addCategory( Intent.CATEGORY_LAUNCHER); final ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.fuelgauge.PowerUsageSummary"); intent.setComponent(cn); startActivity(intent); 如果是要啟動 AIR 的 app. 就要在 package 前加上 air.
new ComponentName("air.com.android.settings", "air.com.android.settings.fuelgauge.PowerUsageSummary"); 
第二個問題是啟動後,如何帶變數過去?
只要在 intent 使用 putExtra 即可 intent.putExtra("Key", "Value");
接收的 Activity 在 onCreate();
使用 getIntent().getExtras().getString("Key");
但在 AIR 的部份,無法修改 onCreate ,所以只好找另外的方法。
好在 Android 的機制裡,可以使用 scheme 的方法呼叫, 像 market:// 這樣,
當遇到這樣的連結時,只要 app 有在 mainfest 設定 intent-filter 的話,就會啟動該 app.
在這我們以:testa…

Android killProcess

大家好,我是奶綠茶 在開發 Android App 時,如果想要關掉 app 時 只要一直按 Back 鍵,就會離開應用程式。 但其實 Android 只是把他放到常註程式裡,並沒有成正的關掉 這時可以在主 Activity 的 onDestroy裡加上 @Override protected void onDestroy() { super.onDestroy(); android.os.Process.killProcess(android.os.Process.myPid()); } 就可以完整的移掉

WP7Contact Android App

奶小茶我第一個 Android APP 上架了
是一個仿 WP7 介面的電話本
從2010年九月研究 Android 到現在, 總算是有點小心得
WP7Contact Lite


1.1.94
字母選擇列表


輔色選擇


播號鍵盤


通訊清單

StarlingFramework

Adobe Flash Player11 推出後,最令人開心的是支援 GPU 運算
可以透過顯卡來幫忙,不在只有以往的 CPU。
但要自已從無到有的從底層寫,好像有點辛苦
奶小茶我今天就是要介紹的是一套 2D flash API, 一樣底層是支援 GPU 運算的

StarlingFramework, The GPU powered 2D Flash API
http://www.starling-framework.org/
可以先到官網下載 Source 和 Sample Code.
編譯時,一定要選擇 Flash Player11 才行
這套 FrameWork 的好處,就是寫法長的跟本來的差不多
一樣是叫 Sprite, TextField, Stage,
一樣可以有 addChild 等方法,學起來不會太難
看一下試寫的效果,結合 Box2D, 300個Box, 還可以保持在 30FPS 左右

AIR3.0 Native extensions Example Part1

大家好,我是奶綠茶
Adobe AIR3.0 即將發怖
其中最酷的新功能就是可以呼叫原生的程式
在這奶綠茶我就以 Android 來做個 Demo。
1.呼叫 Android toast

2.呼叫 Android AlertDialog

3.呼叫 Android DatePickerDialog(非同步,並得到所選的日期回傳給 flash)


4.List Dialog

5.得到 DeviceID

教學Step:
1.下載 AIR3.0 SDK(目前是 RC 1 3.0.0.388)
http://labs.adobe.com/downloads/air3.html

2.安裝 FlashDevelop4
3.安裝 Ant (方便下 Command Line, 不裝也可以)
http://ant.apache.org/
4.安裝 AntPlugin for FD4
http://code.google.com/p/fd-ant-plugin/

5.FlashAction3
AIR3.0裡,多出了一個 ExtensionContext 類別,用來呼叫原生的程式碼
var extension:ExtensionContext = ExtensionContext.createExtensionContext("Native ID", null);
其中Native ID指的是你要呼叫的 id 名稱
同時要在你的 application.xml 宣告

<extensions>
<extensionID>milkmidi.air3.demo</extensionID>
</extensions>

結著就可以使用
extension.call("funcationName", ...params);
來呼叫
如果是同步的話,extendsion 就會直接 return 值
非同步的話,就使用 addEvetnListener( StatusEvent.STAUS ) 來偵聽

6.Android 端
使用 Eclipse 開啟新的 Android Project
將 AIR3.0 SDK 裡的 lib\android\FlashRuntimeExtensions.jar 加到 Complie Path 裡
public class AIR3Cont…

Android Custom Title

大家好,我是奶綠茶,
今天來分享如何客制化 Android 的 Title Bar
先看預設的樣式


接著改變 Style, 變成水果風

先製作 title 的 layout, my_title.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button style="@style/title_bar_button_back" android:id="@+id/back_btn" android:layout_marginLeft="5dp" android:text="Back" /><!-- 這裡是 Back 鍵 --> <TextView style="@style/title_bar_text" android:id="@+id/title_txt" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Title" /> </RelativeLayout>
style.xml
<style name="my_theme" parent="@android:style/Theme.Light"> <item name="android:windowContentOverlay">@null</item> <item name="android:windowTitleSize">40.0dip</item> <item nam…

Android Save 圖片至 SD Card

大家好,我是奶綠茶
今天來分享一下如果將 Android 的畫面拍成圖檔並存在 SD Card 裡
首先要在 Manifest.xml 裡開啟 寫入的權限
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
接著要把 View 轉成 Bitmap 物件
final ViewGroup _v = (ViewGroup) findViewById(R.id.root); Bitmap bm = Bitmap.createBitmap(_v.getWidth(), _v.getHeight(), Bitmap.Config.RGB_565); _v.draw(new Canvas(bm)); 透過 File 來存檔 先檢查使用者有沒有 SD Card
public static boolean checkSDCard() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return true; } return false; } 存檔 public static void saveBitmap(String pFolderPath, Bitmap pBitmap, String pFileName) throws IOException { String _folderPath = pFolderPath; if (_folderPath.lastIndexOf("/") == -1) { _folderPath += "/"; } File _file = new File(_folderPath + pFileName); OutputStream _outStream = new FileOutputStream(_file); pBitmap.compress(Bitmap.CompressFormat.…

Android ImageView ScaleType

大家好,我是奶綠茶
在 Android 裡的 ImageView 元件,可以放置圖片
其中可以設定 ScaleType
官方 API 說明

為了方便測試,在這先準備二張圖片
450x500和 500x450
筆者以 320x480 的 Emulator 來測試

Layout 的部份放上二個 RadioButton 用來切換二圖不同 Size 的圖片
再放上六個 Button 來顯示圖片同 Size 的圖片 再放上六個 Button 來顯示圖片
主程式
package milkmidi.tutorial.imagescaletype; import android.app.Activity; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager.LayoutParams; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.PopupWindow; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.TextView; public class ImageViewScaleTypeMainActivity extends Activity implements OnCheckedChangeListener { Drawable mCurrentDrawable; @Override public void onCreate(Bundle savedInstanceState) { super.o…

FlashAS2 載入 Youtube

大家好,我是奶綠茶
對非程式人員來說,學習 AS3 是非常痛苦的
所以還是有許多人是使用 AS2 來開發專案,
所以奶小茶我還是決定來寫一些 AS2 的系列教學

官方說明的 AS2 文件在這
點我
文件最小方有送上 AS2 的 fla
在這來補充幾個會遇到的問題

1. 載入 youtube 影片後, removeMovieClip 後,聲音依然存在,或是越看越慢的問題
答,不要 youtube 時,要執行 ytplayer.destroy(); 這樣才清的掉。

2. 要更改影片 size 呢
需要等到 youtube 影片載入後,呼叫 setSize(Width, Hight) 即可



轉載請註明出處
SourceCodeDownload

Android SDK R12,無法啟動 Emulator 的問題

大家好,我是奶綠茶
最近很開心的更新 Android SDK 版本
當要啟動 Emualotr 時,總是出現
invalid command-line parameter: Files\Android\android-sdk-windows\tools/emulator-arm.exe.
Hint: use '@foo' to launch a virtual device named 'foo'.
please use -help for more information
查了一下發現是 SDK 的大 Bug
在 WIN7 下, 空白字元會產生錯誤
本來想搬資料夾,但又覺得麻煩,後來找到這篇
http://code.google.com/p/android/issues/detail?id=18317
把本來的路徑:
C:\Program Files\Android\android-sdk\
換成
C:\PROGRA~1\Android\android-sdk
就搞定了,連資料夾都可以不用搬。

移除 iOS App icon 自動幫你加上亮光

大家好,我是奶綠茶
在開發 iOS 時, 水果會貼心的在你的 app icon 加上亮光
如果不想要加呢?
原文是這樣寫的:
Note: You can prevent iOS from adding the shine to your application icon. To do this, you need to add the UIPrerenderedIcon key to your application's Info.plist file (to learn about this file, see 「The Information Property List」 in iOS Application Programming Guide).
The presence (or absence) of the added shine does not change the dimensions of your application icon.

參考文章:
http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW2

如果用 AIR 開發的話,只需要在你的 xml 裡加上

<InfoAdditions>
<![CDATA[
<key>UIPrerenderedIcon</key>
<true/>
]]>
</InfoAdditions>>

參考文章:
http://help.adobe.com/zh_TW/air/build/WS901d38e593cd1bac1e63e3d129907d2886-8000.html


轉載請註明出處

FlashDevelop4 compile Android, iOS app

大家好,我是奶綠茶
相信大家對 Adobe CS5.5 能夠將 AIR 發怖到 Android 和 iOS 平台是一件非常興奮的事
今天就來分享如何使用 FlashDevelop4 , 透過 Flex SDK , 下 Command Line 的方法
直接 compile 成 apk 和 ipa 檔。
我的工作環境是 Windows7 32或64皆可
安裝所需的檔
1. 先下載 FlashDevelop4
http://www.flashdevelop.org/community/viewtopic.php?f=9&t=8281
目前還是 Beta 版, 如果 FD3 和 FD4 想共存的話,記的在安裝 FD4 時要選擇 standard
安裝時, 會問你要不要自動下載 Flex SDK 和 AIR SDK , 把他取消掉, 我們自己手動下載。
2. 下載 FlexSDK , 筆者我下載的是 Flex4.5(內建 AIR2.6 SDK) 的版本,
3. 下載 AIR2.7 SDK http://www.adobe.com/products/air/sdk/
完成後, 把 AIR2.7 裡的檔案,整個蓋掉 Flex4.5
4. java runtime
5. Android SDK http://developer.android.com/sdk/index.html

開發流程
1.啟動 FlashDevelop4



2.設定 FlexSDK 路徑
3.開啟新專案,選擇 AS3 Android App


此時會看到你的 Project 長成這樣


3. 修改 FlexSDK 路徑和Android SDK路徑
因為背後是使用 Command Line 的方法來 compile , 所以需要再設定一次
開啟 bat/SetupSDK.bat

:: Path to Flex SDK
set FLEX_SDK=C:\Program Files\Adobe\Adobe Flash Builder 4.5\sdks\4.5.1

:: Path to Android SDK
set ANDROID_SDK=D:\Program Files\Android\android-sdk-windows\platform-tools

完成後,按下 Ctrl + Enter, 都沒問題…

Android 漢語拼音排序

大家好,我是奶綠茶
研究了好一陣子的 Android
也上架了一個 WP7Contact 的 App,
來分享一下如果使用漢語拼音來排序聯絡人
android 官方有分享一個 HanziToPinyin.java
使用這個類別,就可以得到漢語拼音
接著透過 String 的 compareToIgnoreCase
就可以依字母排序

1. 得到聯絡人
先過濾一下,只要出現有電話的聯絡人即可,同時只要得到 _id 和 display_name 的欄位就好
String select = "((" + ContactsContract.Data.DISPLAY_NAME + " NOTNULL) AND (" + ContactsContract.Data.HAS_PHONE_NUMBER + "=1) AND (" + ContactsContract.Data.DISPLAY_NAME + " != '' ))"; final String[] PROJECTION = new String[]{ ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME }; Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, PROJECTION, select, null, null);
2. 得到漢語拼音, 這個 function 是從 android 裡另一個類別取出的
public static String getSortKey(String pName) { ArrayList tokens = HanziToPinyin.getInstance().get(pName); if (tokens != null && tokens.size() > 0) { StringBuilder sb = new StringBuilder(); fo…

UIFlow for Flash

這次來練習一下仿 iPhone 的 UIFlow Flash 版

轉載請註明出處

製作羅輯:
把所有的圖片丟到一個 Sprite 裡,並依序排列
接下時,記錄當下的滑鼠座標
再用 EnterFrame 不斷的記錄現在的座標和上一個 FPS 的座標差
丟給主要的 Sprite.x 屬性。
放開後,判斷使用者是否拉動超過一半,移動到下一個或上一個,
當托到第一個或最後一個時,拉動的距離要越來越慢。
IPhoneScrollTween.as
/** * @author milkmidi * @version 1.0.1 * @date created 2011/06/01 */ package milkmidi.behavior { import com.greensock.TweenMax; import com.greensock.easing.Cubic; import flash.display.DisplayObject; import flash.display.Sprite; import flash.display.Stage; import flash.display.StageQuality; import flash.events.Event; import flash.events.EventDispatcher; import flash.events.MouseEvent; import flash.geom.Point; /** * IPhone scroll behavior */ public class IPhoneScrollTween { private static var DECAY :Number = 0.98; private static var BOUNCING_SPRINGESS :Number = 0.45; private static var SNAP_VELOCITY :Number = 40; private var mStage:Stage; public function get stage():Stage { return mStage; } publ…

Adobe AIR for Mobile( iOS 篇)

大家好,我是奶綠茶
繼上一篇的 Android 後
再來分享如何在 iOS 跑 flash AIR
Demo 用的檔案和上一篇一樣
只是把發怖的選項改成 AIR for iOS

在發怖設定那:

Generial
這裡的設定和 Android 差不多
只有 Device 需要選擇 iPad 或是 iPhone
iPhone是 320x480
iPad是 768x1024

Deployment:

首先你要產生 iOS 用的認證檔
正規的流程是你要先加入 iOS 的開發者,才能產生認證檔
但如果你的 Device 有 JB 的話,可以下載假的認證檔
假認證檔點我

Icons:格式有六種


發怖的時間較長,要等一下,
產生 ipa, 丟到 itunes 同步, 完成

測試影片


轉載請註明出處
source code download

Adobe AIR for Mobile( Android 篇)

大家好,我是奶綠茶
今天來教大家如何發怖你的 Flash app , 到 Mobile 上,
軟體需求:
Adobe Flash CS5.5 或是 Adobe Flash Builder4.5
在這以 Flash CS5.5 來做教學
開啟新檔,選擇 AIR for Android

製作方法就和一般的 flash 寫法都一樣
但要注意一些小細節,
1:儘量使用點陣圖而不要用相量
Flash CS5.5 在物件的面版上,提供了新的方法,讓你可以在編譯後,幫你把 MovieClip 直接輸出成點陣圖

使用這個功能,該 MovieClip 就變成了一張圖檔, 裡面的功能會失效
另一個方法是全選你的相量物件,按一下右鍵後,會出現 Convert to Bitmap

2:不要使用 filter, blend mode, alpha
這些都是很吃效能的動作

Publish


General:
Output file:要輸出的 apk 檔名
App name:你的 app 名稱,會出現在 Android 上 icon 的名稱
App ID:這個跟上傳到 android Market 上會有很重要的關係
當你第一次上傳 apk 後, 之後每次更新的 apk 檔, 該 App ID 都要一樣,否則不能上傳
Version:一樣和上到到 android Market 有關,新的 apk 版本號要比前一版高才能上傳。
Version label:這個只是顯示用。
Aspect ratio:可以指定是 Portrait (直), Landscape(橫) 或是 Auto(自動)
Full screen:打勾的話,你的 app 會滿版,沒有的話,上面會保留 Android 的 Tital Bar
Auto orentation:是否自動旋轉。
Render mode:一般 flash 都是透過 CPU 在運算, 在 Mobile 上,可以選擇 GPU 加速。
Included files:編譯成 apk 時,同時把另外的檔案也加入,如圖片或是 sqlite等。

Deployment:

Certificate:驗證檔, 你可以按最右邊的 Create 產生一個屬於自己的驗證檔
Password:你的驗證檔密碼
Android deployment type:
在這雖然有 Emulator…