Skip to main content

[AIR] JoSi FXGtoLayout

JoSi FXGtoLayout

v0.3.0, Adobe AIR 3 runtime

這個又是一個 "就是" 系列懶人小工具,主要是針對 Adobe fxg 格式做分析轉成 Mobile 開發用的視圖程式碼,加速畫面配置使用。

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



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



目前版本 0.3.0 feature:
  1. 拖曳並放置 fxg 檔案後,轉換的文字會直接貼到剪貼簿。
  2. 產生之物件名稱以 d:userLabel 為主(即 PhotoShop 圖層名稱),所以請注意命名。
  3. 僅支援 Corona SDK 格式輸出。
  4. 僅支援 fxg <<BitmapImage /> 標籤,PhotoShop and Flash 輸出皆可使用,差別是 Flash 會採用 newImage。
  5. 先這樣囉!
輸出之程式碼範例:(輸出 by Photoshop) 

----------------------------------------------------------------------
-- JoSiFXGtoLayout
-- Author:Erin Lin
-- erinylin.blogspot.com
-- Copyright (c) 2013 Erin Lin( Yu-Shan Lin )
-- File Name:file:///---/menu.fxg
----------------------------------------------------------------------
local function moveTo(target, x, y)
target:setReferencePoint(display.TopLeftReferencePoint);
target.x=x; target.y=y
end

local _imgPath='menu.assets/images/'

local bg_ = display.newImageRect( _imgPath..'bg1_0.png', 640, 960 )
moveTo( bg_, 0, 0 )
group:insert( bg_ )

local bg_ = display.newImageRect( _imgPath..'bg2_1.png', 640, 960 )
moveTo( bg_, 0, 0 )
group:insert( bg_ )

local logo = display.newImageRect( _imgPath..'logo_2.png', 586, 925 )
moveTo( logo, 17, 0 )
group:insert( logo )

local btn_stage = display.newImageRect( _imgPath..'btn_stage_4.png', 184, 184 )
moveTo( btn_stage, 199, 578 )
group:insert( btn_stage )

local btn_option = display.newImageRect( _imgPath..'btn_option_6.png', 134, 134 )
moveTo( btn_option, 372, 720 )
group:insert( btn_option )

local btn_ta = display.newImageRect( _imgPath..'btn_ta_8.png', 161, 160 )
moveTo( btn_ta, 26, 682 )
group:insert( btn_ta )

local btn_score = display.newImageRect( _imgPath..'btn_score_10.png', 162, 162 )
moveTo( btn_score, 491, 612 )
group:insert( btn_score )

將產生的程式碼直接 ctrl-p or command-p 到 Corona SDK 的 storyboard template 之 scene:createScene function 內即可,當然前提是 fxg 輸出時的 assets 檔案夾記得 copy 到工作環境下。

Comments

Popular posts from this blog

PureMVC 我也會 [6]

Mediator ViewComponents 與 pureMVC 架構的中介 監聽並反應 View Component 發出的 Event 可以發送與接收 Notification 儘量少操作 Proxy 公開方法,多用 sendNotification... Mediator design pattern 要多認識這個 Mediator 設計模式的話,請自行看連結說明啊! 簡單來講,假使有一個 View 裡面有好幾個 MovieClip 組成,而這些 MovieClip 會互相影響對方...這個情況在 Flash 中,通常都會變成下圖: MovieClip 直接控制其他 MovieClip 搞到整個關係很複雜...換一個元件簡直是災難。 加入 Mediator 後,示意圖就會變成: 這樣,所有的 MovieClip 都透過 Mediator 來跟其他 MovieClip 溝通,當某一個 MovieClip 替換成別的元件,這時候也只需要修改 Mediator 中的引用即可,是不是變得很乾淨?如果同一組 MovieClip 有另外一個操作模式,也只需要替換掉 Mediator 即可!天下太平啊~~~ 而 PureMVC 中就是利用 Mediator class 為與前端 ViewComponent 的中介,這樣可以切開 ViewComponent 與 PureMVC framework 的關係,不管你前端介面使用 Flash or Flex 製作都跟程式核心無關。 所以 ViewComponent 製作時只需要兩個原則,一把所有的請求都以 Event 送出由 Mediator 處理,二提供公開方法, Mediator 只需要監聽 View 的 Event,將收到的資訊透過公開方法喂進 ViewComponent 即可。 如在 ViewComponent 中: public function setList( result:Object ):void{ list.dataProvider = result as ArrayCollection; } //然後在按下取得資料的按鈕 Click action 寫上: dispatchEvent( new Event( "GET_LIST" )); 新建 Mediator 的時候一樣有幾個重點方...