<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3278719716174209782</atom:id><lastBuildDate>Fri, 01 Nov 2024 10:36:28 +0000</lastBuildDate><category>Tutoring</category><category>AS3</category><category>Erin&#39;s works</category><category>Flex</category><category>pureMVC</category><category>AIR</category><category>Flash CS3</category><category>543</category><category>Corona SDK</category><category>Flash lite1.1</category><category>Flash lite2.x</category><category>Lua</category><category>LEGO MINDSTORMS  NXT</category><category>Titanium Mobile</category><category>JavaScript</category><category>AUG events</category><category>iPhone</category><category>Android</category><category>Apps</category><category>Cool Sites</category><category>iOS</category><category>C#</category><category>Travel</category><category>Unity</category><category>蕭可愛</category><category>Cairngorm</category><category>Events</category><category>NXT-G</category><category>Swift</category><category>Books</category><category>Flash</category><category>Flash Builder</category><category>Flash CS4</category><category>Java</category><category>Pixel Bender</category><category>Robotlegs</category><category>Windows Mobile</category><category>is BUG?</category><category>Adobe events</category><category>CoffeeScript</category><category>Flash lite3</category><category>Kuso</category><category>Mac OSX</category><category>Online Game</category><category>Software</category><category>Spring</category><category>jsfl</category><title>Erin&#39;s Blog</title><description></description><link>https://erinylin.blogspot.com/</link><managingEditor>noreply@blogger.com (Erin Lin)</managingEditor><generator>Blogger</generator><openSearch:totalResults>149</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-8341290285754999811</guid><pubDate>Fri, 04 Dec 2020 10:40:00 +0000</pubDate><atom:updated>2020-12-04T18:40:47.611+08:00</atom:updated><title>新服務近期上線</title><atom:summary type="text">
  雖然有很長一陣子沒有更新blog了，最近籌備新的網頁前端線上服務，敬請期待 =D
</atom:summary><link>https://erinylin.blogspot.com/2020/12/blog-post.html</link><author>noreply@blogger.com (Erin Lin)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-5562900342833389442</guid><pubDate>Thu, 13 Apr 2017 20:47:00 +0000</pubDate><atom:updated>2017-04-14T04:47:26.557+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iOS</category><category domain="http://www.blogger.com/atom/ns#">Swift</category><category domain="http://www.blogger.com/atom/ns#">Tutoring</category><title>[Swift3] weak 與 unowned 關鍵字</title><atom:summary type="text">雖然在 Swift 中看起來&quot;很像&quot;是不需要煩惱內存管理的問題，不過實際上它還是遵循著自動引用計數 (ARC) 的規則，當一個物件沒有被其他對象引用時會自動被銷毀，如果三魂七魄沒有完全回位的話，就會有個靈體留在現世的空間裡，最經典的範例如下：
閉包(Closure)引用 
classClassA {

  typealias Complete = ()-&gt;()

  var name : String
  var onComplete : Complete?

  init(_ name: String){
    self.name = name
    print(&quot;Hello I am \(self.name)&quot;)

    onComplete = {
      print(&quot;\(self.name): onComplete!&quot;) // --&gt; 閉包引用 self, 計數 + </atom:summary><link>https://erinylin.blogspot.com/2017/04/swift3-weak-unowned.html</link><author>noreply@blogger.com (Erin Lin)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-7916995324222803106</guid><pubDate>Tue, 11 Apr 2017 11:09:00 +0000</pubDate><atom:updated>2017-04-12T02:38:23.147+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iOS</category><category domain="http://www.blogger.com/atom/ns#">Swift</category><category domain="http://www.blogger.com/atom/ns#">Tutoring</category><title>[Swift3] ? 與 !</title><atom:summary type="text">學習 Swift 語言覺得最有趣就是變數後面的問號與驚嘆號。看著程式碼帶著一堆 ??!! 相信初學的朋友應該都挺傻眼的。其實會出現 ? 與 ! 是因為 Swift runtime 的特性：不容許變數有 nil 的存在而產生的，這時候就需要先來學習什麼是變數為 Optional(可選性)。

以下是一般情況，預先宣告了一個沒有賦值的變數，然後不小心先使用它，這種情況下就會出現 runtime error：

var string: String
print(string)

---output---------
variable &#39;string&#39; used before being initialized

加上?宣告成 Optional 就安全過關：

var string: String? //-&gt; 設定為 Optional 所以 runtime safe
print(string)
</atom:summary><link>https://erinylin.blogspot.com/2017/04/swift3.html</link><author>noreply@blogger.com (Erin Lin)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-3693237485094780400</guid><pubDate>Thu, 23 Mar 2017 08:56:00 +0000</pubDate><atom:updated>2017-03-23T17:04:35.810+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android</category><category domain="http://www.blogger.com/atom/ns#">Apps</category><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><category domain="http://www.blogger.com/atom/ns#">iOS</category><category domain="http://www.blogger.com/atom/ns#">Swift</category><title>[App] 國道計程收費速算器 2.0</title><atom:summary type="text">

之前的版本跟目前國道計程官網所列資料誤差很大，這支 App 也一直有人在使用，所以為了答謝愛用者只好做了一次大更新，因為對 CoronaSDK scrollView widget 有點怨言，所以 iOS 版本採用 Swift3 重寫了一遍，不過 Android 版本還是維持著 CoronaSDK 版本：

V2.0 更新:
更新地圖資料與國道計程收費官網同步，新增多個服務區、樹林與南雲出入口。
修正快速道路與無計費國道串接點選方式，改採用連續點法，如 苗栗到清水服務區點選順序為：苗栗 -&gt;台中系統 -&gt; 中港系統 -&gt; 清水服務區
更新連假模式價錢基數與修正計程車模式價錢顯示。。
地圖可縮放。=D

Universal Version includes iOS and Android


</atom:summary><link>https://erinylin.blogspot.com/2017/03/app-20.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivbFFlAdpxWftLpQpHkaYhwKzyqET5R3I4IcV0Nl35X40K6hZVvA2T7FXtmMn7khun4j2wCX04qAA8KqFAjYmTmhw0ref2iGqY2ssHL3KOLfI0lKHoGnRAEUVUkw6wn264RGnW6OV3_Cal/s72-c/iphone5_501.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-5651575945583309657</guid><pubDate>Mon, 17 Oct 2016 11:12:00 +0000</pubDate><atom:updated>2016-10-17T19:13:36.367+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Books</category><title>[書評] 拖延心理學：為什麼我老是愛拖延?是與生俱來的壞習慣，還是身不由己?</title><atom:summary type="text">

作者: Jane B. Burka &amp;amp; Lenora M . Yuen

推薦指數 ★★★★★

有時候，只是想了解事情發生原因而不是尋求解法在這邊不是要講這本書的內容，而是想聊它對我的影響。

平常有工作時，我所有的專注力跟精力都是擺在工作上十分有效率，但是回到家裡，就跟一灘爛泥，什麼事情都不想做，尤其過34歲後漸漸變成連假日有朋友邀約都懶得出門的宅女。一直以為我的完美主義是放在工作上，生活就是一個白癡，這樣“愛家”是合理的。但是內心深處又常常問自己「以前我很喜歡嘗試新事物，但是為什麼年紀越大越宅？以前夢想遠大，但是現在卻不知道想做什麼？」宅到都覺得自己除了工作以外什麼都沒有，當在工作上無法滿足成就感時，更是陷入一種自己什麼都不是的無力感，為什麼人生會混到這種地步？

這本書真心的推薦給所有人看尤其是為人父母更需要讀。其實看完書的前半段「認識拖延」就有一種被救贖感。細細回想</atom:summary><link>https://erinylin.blogspot.com/2016/10/blog-post_17.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIyXxOdhfdTlYS9zm9eXFFrzxjqvDAz2HDQ1-iXa-QispkBqPOfIf7nGj25I7SR-_OwZXV7kkEn99jknGVUVtEl4ysVzwPNjfx7kFDU1XhEmAO8v7xEdJgZqOsl0JnQml9mLjFcReXXnHe/s72-c/S__28950531.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-2623325209580772843</guid><pubDate>Thu, 31 Mar 2016 06:15:00 +0000</pubDate><atom:updated>2016-04-07T19:34:10.783+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><category domain="http://www.blogger.com/atom/ns#">Unity</category><title>[Unity]  erinylin.lazylib - Cookie for PlayerPrefs</title><atom:summary type="text">

有鑑於 PlayerPrefs 測試與版本更新問題，將大家都愛用的 PreviewLabs.PlayerPrefs 打包起來，製作重點還是以懶人為主，基本上 PlayerPrefs 資料更新與數量並不可能會有強烈衝擊效能的狀況產生，所以為了方便開發，就弄了一個視覺化工具，方便除錯用。

雖然 PreviewLabs.PlayerPrefs 作者都宣告放棄他們的版權，不過為了尊重程式，僅僅加入了兩個公用函式，其他並無更改。

內有：
Cookie Manager
Cookie 用 DataObject 混合編輯 ScriptableObject
執行階段除錯視窗工具
當然還是有懶人常數檔案輸出
資料版本控制，方便更新版後儲存資料更新
功能其實很多，有興趣的請自行到 Github 下載並參考範例吧！ </atom:summary><link>https://erinylin.blogspot.com/2016/03/unity-erinylinlazylib-cookie-for.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcG8BCOrYfBNKIfbQmBhk6quoufyJkFOloh74U__dl-Lydwa76pAmg6wlZbv3lZ1AaSxL-gKx9G_ja5k1RQwnk8wntA2bV5Lt3xbkDQAVaiH_T9p3sQc437RKiy5IfDZUOGBXRwyTdMDid/s72-c/cookie01.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-3187304782432352873</guid><pubDate>Mon, 14 Mar 2016 05:07:00 +0000</pubDate><atom:updated>2016-03-14T13:10:11.406+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><category domain="http://www.blogger.com/atom/ns#">Unity</category><title>[Unity] erinylin.lazylib - fsm2.0</title><atom:summary type="text">怕上篇文章越改越長，就直接開新的貼。
erinylin_fsm2.0.unitypackageA finite-state machine (FSM) v2.0, use ScriptObject to preset states.

有限狀態機更新版。本人有強迫症，喜歡將工具不斷改寫。本版本主要是學習到 ScriptableObject and EditorGUI 時改寫的。
Feature:Change the State class to ScriptableObject. And rewrite FSMSystem class. 將 State class 改成 ScriptableObject, 並修正了 FSMSystem class 的一些函式。
Export the State of Constant class by one click. 重點來了，建立好的 </atom:summary><link>https://erinylin.blogspot.com/2016/03/unity-erinylinlazylib-fsm20.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiswbstxYvOfuybkPcpE2PpZ4tThkTjrYgqCYDbMzhyi5LVrhH3yW1o2CobKDZ1Lr5FNlDoOiR1u9gtKRyokvkzGU-AE5SZFaupVJkCwPFlg0uwN5kht08EtBPhcAVF38dXF70n0ccknlzF/s72-c/FSM2_01.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-5722851025141564223</guid><pubDate>Thu, 03 Mar 2016 04:59:00 +0000</pubDate><atom:updated>2016-03-03T13:59:39.847+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><category domain="http://www.blogger.com/atom/ns#">Unity</category><title>[Unity] erinylin.lazylib</title><atom:summary type="text">
絕大部分都是組件，會秉持懶人精神，朝使用便捷的方向製作。每個專案都會附上範例場景。不定時更新
erinylin_fsm.unitypackage
lastupdated: 03.03,2016

A finite-state machine (FSM), easy to use also can be set by Inspector window.

有限狀態機


&amp;nbsp;

erinylin_sceneloader.unitypackagelastupdated: 03.03,2016

Camera-specific component for Scene transition that handle to load the next scene and crossfading between scenes.

轉場用組件，Camera 專用，處理下個場景載入，順便以交互</atom:summary><link>https://erinylin.blogspot.com/2016/03/unity-erinylinlazylib.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSYGmA47hLDZZHLoMjKro7FpkgygfYwEOQsnXjVRB1FpfqjGzIkoNCnIiXBpUAPgQQ_5M2nMBkfXXAIFm3LhWH2lpmUovZ32nKx0Gvbxn4wO6G9HfX_oSMj9cYGsb4GLW9sK0ty0HUK0p7/s72-c/lazylib.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-4193687625318400592</guid><pubDate>Fri, 19 Feb 2016 12:51:00 +0000</pubDate><atom:updated>2016-03-03T13:01:19.691+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">pureMVC</category><category domain="http://www.blogger.com/atom/ns#">Tutoring</category><category domain="http://www.blogger.com/atom/ns#">Unity</category><title>PureMVC for Unity</title><atom:summary type="text">幾個月前改用 Unity 開發遊戲，到目前的心得為：組件式開發真的是很便利，但是當組件數量多到一定程度時，結構上就有點可怕，常常在某 GameObject  上掛了組件後就忘了它的存在，雖然可以使用 Singleton design pattern 來製作主要的 Manager（本人對 Singleton 並不是很熱愛），程式還是會亂到一定程度，搜尋了一些 Unity with MVC 討論，一部分的人都對實作 MVC 不是很熱絡，也許是 Unity 特有的開發環境導致。以前開發 Adobe Flex 專案最愛用的 MVC Framework 就是 PureMVC，即使後來有更方便的 MVC Framework 的也擋不住我對它的熱愛。Unity 是沒有所謂的全域 Root Scene，所有場景都是獨立，想要將 AS3 實作邏輯套用在 Unity 上將控制項都在 PureMVC 架構中</atom:summary><link>https://erinylin.blogspot.com/2016/02/puremvc-for-unity.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_y1EOac_NgfkmmivJ5YaXbAisbcFXWPxjdyg6_7OIlq-lGPToBAjdqvC9LgVfOPYUqgmAQjPrOsPM4JZakWrDqfBUogWjlfzayqAMFVEbaTxbIKzizl957P4bEpLR8nqvTRpnIQuLKS2N/s72-c/Scene1_unity_-_PureMVC_-_Web_Player__Personal___OpenGL_4_1_.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-8255137436551173135</guid><pubDate>Mon, 09 Nov 2015 07:34:00 +0000</pubDate><atom:updated>2015-11-16T11:35:04.558+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><category domain="http://www.blogger.com/atom/ns#">Lua</category><title>[CoronaSDK]  TweenTrain, the transition helper class</title><atom:summary type="text">
上週新上架了一個 CoronaSDK transition API helper plugin，主要的目的是為了可以用 string 設定控制所有的動作巨集，方便動作資料預設。

一般來說，如果要使用 transition 達成物件跳躍後往右邊移動，一般語法如下：
transition.to( target, {y = target.y-100, transition=easing.outSine, time = 400} )
transition.to( target, {y = target.y+100, transition=easing.inSine, time = 300, delay=400} )
transition.to( target, {x = target.x+300, transition=easing.inSine, time = 600, delay=700</atom:summary><link>https://erinylin.blogspot.com/2015/11/coronasdk-tweentrain-transition-helper.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqQoWBk3Jk9eBEDRGJyM0xmWo8cmaPMtyg9USCNnxf3KpNfktVw0bcHQwFtJCTG0uMfafkt7M6QenTRS86UM032Ie14M-O7R8SD3t6n0OdSUQneCprHUIXCydknI1YDQ0XIBjW7y0P3M3i/s72-c/TweenTrain___Corona_Store.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-4438362314722442029</guid><pubDate>Fri, 17 Jul 2015 09:22:00 +0000</pubDate><atom:updated>2015-07-17T17:27:38.246+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Lua</category><category domain="http://www.blogger.com/atom/ns#">Tutoring</category><title>[CoronaSDK] 多國語系支援</title><atom:summary type="text">

CoronaSDK 中取得 Android 與 iOS 語系方法並不相同，繁體與簡體取得名稱也不一樣，為了簡化兩系統的繁體與簡體語系支持，所以特別打包了一支函式來控制多國語設定，之前一直忘了分享出來也剛好很久沒更新 Blog 了...＝D

使用方法很簡單：
將語系字串放在 locale/ 並以 strings.i18n(預設）與 strings_[ISO_639-1].i18n
繁體共用命名：zh_hant
簡體共用命名：zh_hans

語系字串資料採用 JSON 格式：
locale/strings.i18n
{ 
&quot;hello&quot; : &quot;Hello&quot;,
&quot;welcome&quot; : &quot;Welcome&quot;
}

locale/strings_zh_hant.i18n
{ 
&quot;welcome&quot; : &quot;歡迎&quot;
}

執行：Global function
 L( str: String ) -</atom:summary><link>https://erinylin.blogspot.com/2015/07/coronasdki18n.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSR7hF3M7kS_Ym5_DEzAgU2pb7_FhQwKldNv8tUpm2xucsYi1R36pEBV0jk9OgsQiYbT0TV1Z0MchTb93lGq9HEUwdKYzhYynwA9qfesAohMUNnadEIZMnnGiifLp9_4hAQ0XvenUI84QW/s72-c/hello.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-9007224173512865517</guid><pubDate>Fri, 06 Mar 2015 09:24:00 +0000</pubDate><atom:updated>2015-03-08T18:23:48.545+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Lua</category><category domain="http://www.blogger.com/atom/ns#">Tutoring</category><title>[Lua] 簡易模擬 C# Delegate Type 行為</title><atom:summary type="text">因為工作需求，準備開始學習 C#，這兩天研究一些公開的 Unity 原始碼發現 C# 有個 Delegate Type 很有意思，它可以利用 + 與 - 將需要搭配執行的 function 指派到委任者然後一起執行。如：

//C#, d1 and d2 are functions
allMethodsDelegate += d1;
allMethodsDelegate += d2;
allMethodsDelegate(); // d1(), d2()
allMethodsDelegate -= d2;
allMethodsDelegate(); // d1()

參考資料：使用委派 (C# 程式設計手冊)

Edit: 03, 08, 2015, 感謝 fb@shanyungyang 的提醒可以使用 Lua 的 metamethod 實作，為了達到屬性能往下傳，本來是打算採用 * /</atom:summary><link>https://erinylin.blogspot.com/2015/03/lua-c-delegate-type.html</link><author>noreply@blogger.com (Erin Lin)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-3323715505147938217</guid><pubDate>Thu, 08 Jan 2015 07:38:00 +0000</pubDate><atom:updated>2015-01-09T02:27:32.268+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><category domain="http://www.blogger.com/atom/ns#">Flash</category><category domain="http://www.blogger.com/atom/ns#">JavaScript</category><category domain="http://www.blogger.com/atom/ns#">jsfl</category><title>[JSFL] Export MovieClip For TexturePacker</title><atom:summary type="text">一般可分析 swf 的軟體都是針對 main timeline 做定位，所以直接從 Adobe Flash 的 Library 選單輸出的 MovieClip .swf 對其來說都是不合法的格式，如果一個 app 使用的動畫量並不多的話，將 MovieClip 轉拉到新文件重新輸出到不是太麻煩的一件事，但是...為了秉持懶人精神，當然是用 Adobe JavaScript API來製作 ，傑克真的太神奇了，想要的格式都可以透過這個修改輸出...說實話，現在一堆手持裝置用 App 的編輯軟體，再如何也沒有 Flash 好用啊！ Flash 大回春！！！！！

首先完成的是 Export MovieClip For TexturePacker：
可直接將 MovieClip 輸出成 TexturePacker 可以分析的 swf 格式，其他的可分析 swf 的 spritesheet 包裝</atom:summary><link>https://erinylin.blogspot.com/2015/01/jsfl-export-movieclip-for-texturepacker.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdv-TCI9uGc9M_SsFU3TPrhz7dktud6qxqS3pImZls-nulss2zXV4DDsKgFCmH2Wle78etqKoUCSDj9UjEZWhMyk6Gg7moUh-v4ndvgEj-fotAINsJvUeCBlOjgenBe8PuaZaV3ERH1XV6/s72-c/gitHub-download-button.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-3177640335209462525</guid><pubDate>Mon, 03 Nov 2014 07:55:00 +0000</pubDate><atom:updated>2014-11-03T15:55:13.403+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Software</category><category domain="http://www.blogger.com/atom/ns#">Tutoring</category><title>[TexturePacker]  Batch converting images to rgba4444</title><atom:summary type="text">因為需要大量將圖片轉檔成較省空間的 rgba4444 格式，研究了一下 TexturePacker command line tool, 只能說，TexturePacker 真的太好用了啊！！！！

轉檔邏輯為將指定檔案夾下所有的 .png 原圖命名加後綴 @2x 順便輸出 0.5 scale 的小圖，所以不需要兩種輸出的可以將最後兩段倍數輸出設定刪除。
--variant 1:@2x \
--variant 0.5: 


 </atom:summary><link>https://erinylin.blogspot.com/2014/11/texturepacker-batch-converting-images.html</link><author>noreply@blogger.com (Erin Lin)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-8120388790149058620</guid><pubDate>Mon, 22 Sep 2014 08:36:00 +0000</pubDate><atom:updated>2014-09-24T16:17:05.093+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><category domain="http://www.blogger.com/atom/ns#">Flash</category><category domain="http://www.blogger.com/atom/ns#">Lua</category><title>[CoronaSDK] FLSprite: Flash Sprite Sheet Parser</title><atom:summary type="text">由於手上有個案子會使用到大量的動畫，之前與客戶配合時為了方便客戶製作，素材都是採用 Flash 或 PhotoShop 輸出 TexturePacker 可打包格式做 sprite sheet 使用。不過為了打包需要輸出大量的 swf，雖然可以使用 Flash 製作 app 用動畫已經簡化的很多步驟，但是某程度上還是有點不便，於是簡單研究了一下 Flash CS6+ 的內建輸出 Sprite Sheet 功能，並分析其輸出的 JSON-Array 格式給 CoronaSDK 使用。不過嚴格說起來， Flash 打包 Sprite Sheet 的算法並沒有很好，尤其是有些時候，判定整個 MovieClip 範圍的長寬會有錯誤，這時候就是調整一下 MovieClip 後重新打包，也許就會正確，但是其判定規則因為沒有多加研究，所以目前不明，請有發現的朋友們告知一下，謝謝。

How to </atom:summary><link>https://erinylin.blogspot.com/2014/09/coronasdk-flsprite-flash-sprite-sheet.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdv-TCI9uGc9M_SsFU3TPrhz7dktud6qxqS3pImZls-nulss2zXV4DDsKgFCmH2Wle78etqKoUCSDj9UjEZWhMyk6Gg7moUh-v4ndvgEj-fotAINsJvUeCBlOjgenBe8PuaZaV3ERH1XV6/s72-c/gitHub-download-button.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-3654770532648212616</guid><pubDate>Thu, 06 Mar 2014 05:09:00 +0000</pubDate><atom:updated>2014-06-18T03:15:53.315+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android</category><category domain="http://www.blogger.com/atom/ns#">Apps</category><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><category domain="http://www.blogger.com/atom/ns#">iOS</category><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Lua</category><title>[App] 1Sec. 一秒反應王 v1.1.0 (v1.1.1)</title><atom:summary type="text">反正就是為了降低失智症發生機率所產生的遊戲...XD
認識我的朋友都知道，我的腦記憶體 80% 都是用在工作上，所以日常生活常常呈現一種失智的狀態，為了避免朋友們的擔心，所以花了些時間製作了一個 App 來幫助其他人與自己多活動腦部細胞，來吧！大家一起來運動...腦細胞！！


魔方網製作的影片介紹：（大感恩啦！！！！）

遊戲速播：（大感恩啦！！！！）


佛心評測：
＊重灌狂人：超刺激！「1Sec.-一秒反應王」在一秒間腦力瞬間爆發（iPhone, Android）
＊app01：只有1秒鐘！超刺激「1Sec.-一秒反應王」活化你的大腦！
＊魔方網：《1Sec. 一秒反應王》考驗你的反應跟耐心

專訪：
＊魔方網：絕不要變痴呆！《1Sec. 一秒反應王》專訪

Universal Version includes iOS and Android



在僅有的一秒時間，你如何讓大腦</atom:summary><link>https://erinylin.blogspot.com/2014/03/app-1sec-v100.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpWfqtUzuazZ0QKxsbklG-tCtpBOx86nCDWRapQCi2VwJa87JM3J37EMMWWXOmuwHTXLBh4dO-0wYu9jQ9U3fTK89BdMo_7GqZQiI4_W8Z2_cNn1ZZUySP4bT9D4EP9u78ZCaodhJxrsxI/s72-c/iTunesArtwork.png" height="72" width="72"/><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-8807550343905053623</guid><pubDate>Wed, 05 Feb 2014 08:16:00 +0000</pubDate><atom:updated>2014-02-05T16:16:54.472+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Lua</category><category domain="http://www.blogger.com/atom/ns#">Tutoring</category><title>[Corona SDK] 多螢幕支援定位函式</title><atom:summary type="text">
為方便 Universal version 的製作，在畫面配置上，我都是採用對應螢幕四方界線方式做定位如 top, left, right, bottom, centerX, centerY，這樣在多螢幕顯示時，物件的位置才能一致，以下是定位函式分享，提供給有需要的朋友使用。



</atom:summary><link>https://erinylin.blogspot.com/2014/02/corona-sdk.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF8WiGhyzNOogm7N2b8Y1yK6JrQwHSpJ5Z6Y6WPweCF_yE0RruIi0jqmHibZ5tkHySIkmvWwpmiJcBU2MthM-LaZ0FfSj_2HHEVZxvKRXgaeMi7ZD5jdCcSv9KHnhN4PgOXSl1Ec1ZdrvJ/s72-c/moveTo.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-7347070455316398222</guid><pubDate>Fri, 17 Jan 2014 05:33:00 +0000</pubDate><atom:updated>2015-03-11T11:57:48.994+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android</category><category domain="http://www.blogger.com/atom/ns#">Apps</category><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><category domain="http://www.blogger.com/atom/ns#">iOS</category><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Lua</category><title>[App] 國道計程收費速算器 v1.1.1</title><atom:summary type="text">
視覺化快選國道里程費用計算。
跟上個壽司比起來，這個App真的幸福太多了...短短不到一週含上架就完成了，如果您操作上發現問題的話，請不吝於告知，我會儘快處理的，謝謝。

佛心評測：
＊ PunPop ：【國道計程收費速算器】算好錢才不會弄錯錢。 
＊ 硬式要學 ：計程收費怎算？「國道計程收費速算器 」3 秒算給妳 

Universal Version includes iOS and Android


&lt;!----&gt;



◎ Introduction
查表查累了嗎？ 
視覺化快選國道里程（ETC）費用計算，自動連續選取設計，方便選取不同國道的相鄰路段。 

選取方式為「同一條國道」為主，雖然不同國道沒有辦法一次選取， 
但是可以自由設定其他起點！想要國道一直線還是走快速道路都隨您選擇！ 

您可以選擇點擊兩國道相接的交流道如「新竹系統」、「南港系統」等，程式自動會將兩國道</atom:summary><link>https://erinylin.blogspot.com/2014/01/app-v10.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPBBYYnDaaVZq5LR9d9vjv27eeNRZvkv1l0rRtyqtGIw35BrJ-c7R2bc2Qoaz1GY43YtvGHOjiSut-IdbvmBOgTBDcjIvy2GwPil0Ry-jfaIq9f8gpm94EJhRopCNsDx7zemyRp2ZdpZtv/s72-c/iTunesArtwork.png" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-5403301019352101176</guid><pubDate>Mon, 04 Nov 2013 15:55:00 +0000</pubDate><atom:updated>2014-04-26T23:16:42.483+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android</category><category domain="http://www.blogger.com/atom/ns#">Apps</category><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><category domain="http://www.blogger.com/atom/ns#">iPhone</category><category domain="http://www.blogger.com/atom/ns#">Lua</category><title>[App] SushiMaster-壽司達人</title><atom:summary type="text">
這個大概是我做過最悲情的遊戲了吧....

Universal Version includes iOS and Android
佛心評測：
＊ punapp.com ：【Sushi Master-壽司達人】可惡，想吃。
＊ Free4u FB粉絲團：【APP推介】看著肚子都要餓了哦~~~！



本遊戲比較適合平板尺寸，在手機上眼力需要很好，以下是iPad 中遊戲畫面：


故事起始於三年前，由於一時無聊，想拿 Corona SDK 來練練手感，於是選擇了本人最喜歡的遊戲類型「寶石方塊」作為主題，開始這個遊戲的開發。

不過在其中，時不時的公司約聘與專案支援，忙到即使假日閒閒在家也懶得寫，時間一晃到了去年中，難得空閒要一鼓作氣把它完成，結果 Corona SDK 版本已經於 2010 年差異有點多，所以做了第一次大改版，弄到六月時幾乎是完工了，萬事具備只欠音效，於是找了朋友幫忙，時間</atom:summary><link>https://erinylin.blogspot.com/2013/11/sushimaster.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC85hFhzcJmD0qdztH32zt-XHXuonNheH4PcLzGkktexKClhn17myfAuFXP_CEAOOVlyENk7wwBI1Gl_8t9QUPoJck6vS2qPhcIVUvmW7irA4no-lgdKEIwKAmjunyGSSValFrCa22eo5z/s72-c/iTunesArtwork.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-6138261063473039470</guid><pubDate>Wed, 03 Jul 2013 10:24:00 +0000</pubDate><atom:updated>2014-02-05T16:30:35.987+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Lua</category><category domain="http://www.blogger.com/atom/ns#">Tutoring</category><title>[CoronaSDK] Coroutine 狀態機</title><atom:summary type="text">最近手上的案子是個麻煩的遊戲，對於遊戲開發來說狀態機(state machine)是很重要的流程控制器，認真研究了一下 Lua 才發現原來它有 Coroutine（協同程序）這個有趣的功能（AS 系列是沒有這種東西的，請原諒我的無知），有興趣搞懂 Coroutine 的朋友可以參考：electronic_blue 的使用 Coroutine 改寫狀態機，它恰恰是以 CoronaSDK 為範本作教學，簡單參考了它的範例程式，打包成了 statemachine.lua 供 CoronaSDK 開發使用。

用法很簡單如同 statemachine.lua 上面寫的範例：


也特別提供了 waiting and continue 功能來做畫面等待與繼續的工作，範例如下：


statemachine.lua
</atom:summary><link>https://erinylin.blogspot.com/2013/07/coronasdk-coroutine.html</link><author>noreply@blogger.com (Erin Lin)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-7735784769292715226</guid><pubDate>Wed, 22 May 2013 17:28:00 +0000</pubDate><atom:updated>2014-02-05T16:26:15.705+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">543</category><title>[543] 開發用工具箱</title><atom:summary type="text">這兩年除了偶而用用 Flash Builder and Flash 寫寫 as 家族外，幾乎主要都是做 app 開發，以下就是介紹 Erin 最近愛用的開發工具：

Subline Text2正式榮登 Erin 心中最好用的程式編輯神器，它的好用不是一兩句話可以解釋清楚的，有興趣的朋友們可以參考 tutsplus 的 Sublime Text2教學影片。基本上除了 ActionScript 家族外，幾乎所有的程式都是使用這個開發。
接下來的連結是 Erin 用的顏色主題，有興趣的可以參考：Sublime Text2 theme color scheme
PS. Sublime Text2 版本是萬年試用版，不過絕對值得付費使用。
Titanium Studio用來做跨平台 app 開發，使用 JavaScript 撰寫。官方提供的 IDE 主要是用來輸出與測試。工具類 apps 都會採用</atom:summary><link>https://erinylin.blogspot.com/2013/05/543_23.html</link><author>noreply@blogger.com (Erin Lin)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-766091098414798294</guid><pubDate>Sun, 12 May 2013 10:51:00 +0000</pubDate><atom:updated>2014-02-05T16:26:29.947+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Lua</category><category domain="http://www.blogger.com/atom/ns#">Tutoring</category><title>[Lua] 一分鐘搞懂 Corona SDK 中 「.」與「：」執行函式時的差別</title><atom:summary type="text">

之前有網友在 台灣可樂娜跨平台基地 - Corona SDK 上詢問 Corona SDK 中 table listener 與 function listener 差別。

其實 :addEventListener 時並沒有強制一定需要使用 table listener，因為它在執行 listener 函式時，對於 table 物件會使用 tableObj:listenerFunc ，而單純的 function 是正常執行 listenerFunc() ，差別是 function listener 不會因為「:」語法糖而將 table 本身帶入。
其實只要看下面範例就可以馬上清楚知道其中的差別：

local rect1 = display.newRect( 20, 20, 50, 50 )
rect1.name = &quot;Rect1&quot;

local rect2 = </atom:summary><link>https://erinylin.blogspot.com/2013/05/lua-corona-sdk.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUg8-LFMex8HiaY9OESwrU8Zz8RKjDKk6vWuyCqtg-JxZ-fVpO2gCjmgXi8o3ln4jJ3_EODURiZeMNzkBnHN8yheiIaxGJwLOdkxOspMHsa3Eij7tR4P5bVnl9vUbCQSsfGY8xxHf1jz7w/s72-c/2013-05-12+18.56.36.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-2023760144962561094</guid><pubDate>Wed, 08 May 2013 17:01:00 +0000</pubDate><atom:updated>2014-02-05T16:26:42.567+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">543</category><category domain="http://www.blogger.com/atom/ns#">Apps</category><category domain="http://www.blogger.com/atom/ns#">Mac OSX</category><category domain="http://www.blogger.com/atom/ns#">Tutoring</category><title>[Mac app] 開啟 Mac OSX 中自帶的 Color Picker 並加上 HexColorPicker 功能</title><atom:summary type="text">參考出處：Mac — Adding Hex Color Picker to Color Picker

Mac app store 上有很多 Color Picker app，差不多 98% 都是需要付費，而這個小工具恰恰是開發中不可缺少一個東西。其實 Mac OSX 中就有自帶一個 ColorPicker，秉持著 DIY 的精神，用幾個小步驟就可以組合出顯示 Hex 色碼的 ColorPicker.app。

Mac 系統需求：10.4 and up

開啟 &amp;nbsp;應用程式 / 工具程式 / AppleScript 編寫程式.app

編輯視窗中寫入:
choose color


接著儲存為 「ColorPicker.app」檔案格式選擇「應用程式」。



執行剛剛完成的 ColorPicker.app ，基本的 Mac 自帶顏色選擇器小工具就完成了。

接下來為了讓它更符合</atom:summary><link>https://erinylin.blogspot.com/2013/05/mac-app-mac-osx-color-picker.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqc8OunvSaVDRUAh2px9VV20jh35TUmgg_H4HdeS5nqgqO3NAuzhrJR8YJIxZHLuaD-ADud3SVsb2BRylslpTSk-vdjdcsYP945KtCizTmE2vp41tdqvPrWCAw9gk79WFJjRWTlbG4P6L8/s72-c/colorPicker01.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-4850428528895790113</guid><pubDate>Mon, 29 Apr 2013 08:27:00 +0000</pubDate><atom:updated>2014-02-05T16:30:01.116+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AIR</category><category domain="http://www.blogger.com/atom/ns#">AS3</category><category domain="http://www.blogger.com/atom/ns#">Corona SDK</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><title>[AIR] JoSi FXGtoLayout</title><atom:summary type="text">JoSi FXGtoLayoutv0.3.0, Adobe AIR 3 runtime這個又是一個 &quot;就是&quot; 系列懶人小工具，主要是針對 Adobe fxg 格式做分析轉成 Mobile 開發用的視圖程式碼，加速畫面配置使用。

為什麼會製作這個工具，原因主要是本人在使用的 Corona SDK 與 Titanium SDK 都沒有好用的視覺化編輯工具。一般設計師產出 layout 檔會使用 PhotoShop&amp;nbsp;來製作，在不多花錢的原則下，畫面對齊的基準就是其輸出的 fxg 資料做對應，如果要一筆一筆將資料鍵入，做久也是會膩的，所以花了點時間將這個工具做出來...



不過目前版本僅支援 Corona SDK 格式輸出。



目前版本 0.3.0 feature:拖曳並放置 fxg 檔案後，轉換的文字會直接貼到剪貼簿。
產生之物件名稱以 d:userLabel 為主(即 </atom:summary><link>https://erinylin.blogspot.com/2013/04/air-josi-fxgtolayout.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju-JsU2sfHDSpJ_lCxprb8eG2LJyXQ_4RrbIQ965-r-oxvYs1-kcmxgdBnWrBDyVXwaY7NFugx1DFI5IaT-eGRkB8X2ZVxRTc1mZp1reSzXxfU7iKEiYc2TUpsQ0W5crHEGraEOGWqoXn5/s72-c/logo128.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3278719716174209782.post-5067151205231332078</guid><pubDate>Sat, 12 Jan 2013 19:35:00 +0000</pubDate><atom:updated>2014-02-06T10:46:19.827+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AIR</category><category domain="http://www.blogger.com/atom/ns#">AS3</category><category domain="http://www.blogger.com/atom/ns#">Erin&#39;s works</category><title>[AIR] JoSiResize - Mobile 開發小工具 0.7.0</title><atom:summary type="text">
詳請請看上篇&amp;nbsp;&amp;nbsp;[AIR] JoSiResize - Mobile 開發小工具
目前版本 0.7.0 feature:修正批次輸出檔名錯置的 bug
下載位置相同，完畢！</atom:summary><link>https://erinylin.blogspot.com/2013/01/air-josiresize-mobile-070.html</link><author>noreply@blogger.com (Erin Lin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEbHF-qyBDQh01XRKf2rqWc7IrcrrS_SiHktCX5HNohDI_-3AitiHmda0vm6Rd_KW7cIlg9wzvdR2i8ffPAmqaKufxxMkEQ9Bgd3Qe8K7ZTgfQcFAFPX3Y2Ic068U1b8dFD3KFYA10hnhJ/s72-c/logo128.png" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>