<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vicker&#039;s Coding Kitchen</title>
	<atom:link href="http://vicker.cubeforge.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://vicker.cubeforge.net/blog</link>
	<description>Hong Kong Adobe Flash platform developer (Flex, AIR and Flash)</description>
	<lastBuildDate>Wed, 28 Jul 2010 16:37:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>27th July 27th</title>
		<link>http://vicker.cubeforge.net/blog/2010/07/27/27th-july-27th/</link>
		<comments>http://vicker.cubeforge.net/blog/2010/07/27/27th-july-27th/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 17:46:02 +0000</pubDate>
		<dc:creator>Vicker</dc:creator>
				<category><![CDATA[Daily Life]]></category>

		<guid isPermaLink="false">http://vicker.cubeforge.net/blog/?p=355</guid>
		<description><![CDATA[多謝晒以下各位好友o既祝賀~!! Eva, King, Soki, Tsz Ling, Janis, KK, Felix, Heilly, Victor Ip, Johnny, Joe Chan, Andy Li, Kay Li, King Cheung, Deathboy, Patrick Chan, Henry Chan, Jimmy Lee, Priscilla, Ka Wai, Boris, Quill, Denis, Way, Danny, KS, Patrick Lam, May Chan, Helen Yeung, Ahmad, Rainbow, Carmen, Shirley, Ivan Kwan, Eden, Alethea, Matthew, Vincent, Kenix, Olivia, Chester&#8230;


No related posts.]]></description>
			<content:encoded><![CDATA[<p>多謝晒以下各位好友o既祝賀~!!</p>
<p>Eva, King, Soki, Tsz Ling, Janis, KK, Felix, Heilly, Victor Ip, Johnny,<br />
Joe Chan, Andy Li, Kay Li, King Cheung, Deathboy, Patrick Chan, Henry Chan, Jimmy Lee, Priscilla, Ka Wai,<br />
Boris, Quill, Denis, Way, Danny, KS, Patrick Lam, May Chan, Helen Yeung, Ahmad,<br />
Rainbow, Carmen, Shirley, Ivan Kwan, Eden, Alethea, Matthew, Vincent, Kenix, Olivia, Chester&#8230;</p>
<p>另外要多謝以下各機構o既 promotional greetings XD<br />
HSBC, AMEX, Experts Exchange, Gamer.com.tw, Xbox360Achievements.org, MegaGames, CityU 等等&#8230;</p>
<p>我諗每一個人細個o個陣都會許願<br />
人大左知道呢 d 野其實無乜意思<br />
所以與其話有乜生日願望 不如話有乜野生日目標</p>
<p>家: 努力為爸媽爭取一個更舒適o既生活<br />
另一個家: 繼續學習兩個人之間相處的技巧<br />
健康: 終於肥到少少 係時候做返多 d gym XD<br />
工作: 或者係時候尋找一 d 新既衝擊<br />
學業: 第二個 HKICTA 我黎喇~!!<br />
遊戲: 要盡快砌晒 d 舊模型 XD  仲有新多 game 要打&#8230;</p>
<p>人生已經過左三份之一<br />
要快 d defrag 好個人向住下一個 point 進發~!</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://vicker.cubeforge.net/blog/2010/07/27/27th-july-27th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RIA Development 之愚見</title>
		<link>http://vicker.cubeforge.net/blog/2010/04/30/my_potato_thoughts_on_ria_development/</link>
		<comments>http://vicker.cubeforge.net/blog/2010/04/30/my_potato_thoughts_on_ria_development/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 18:15:21 +0000</pubDate>
		<dc:creator>Vicker</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://vicker.cubeforge.net/blog/?p=351</guid>
		<description><![CDATA[近來無論係 Facebook, Twitter, RSS, Newsletter 全部都係o個幾種 heading&#8230; &#8220;HTML5 kills Flash&#8221; &#8220;Apple is evil&#8221; &#8220;Goodbye Flash&#8221; &#8220;I won&#8217;t buy iPhone anymore&#8221; 首先我呢一篇文並唔係想再起爐灶引起另一場罵戰 只係純粹以一個 web developer o既角度去講下自己o既諗法 我唔係想借呢篇文章去教大家點樣揀 technology 只係將我自己所遇到o既一 d 經驗同大家分享 識得我o既人都知道 Vicker o係 Flash / Flex o既死硬派 (其實我只係唔鍾意寫 Java 者&#8230; 但係唔代表我唔會寫&#8230; 而且 UI 黎講我都好鍾意寫 XHTML 同 CSS. W3C standards 簡直係我覺得最有滿足感o既野) 同時間 Vicker 亦都係 Apple o既


No related posts.]]></description>
			<content:encoded><![CDATA[<p>近來無論係 Facebook, Twitter, RSS, Newsletter 全部都係o個幾種 heading&#8230;<br />
&#8220;HTML5 kills Flash&#8221;<br />
&#8220;Apple is evil&#8221;<br />
&#8220;Goodbye Flash&#8221;<br />
&#8220;I won&#8217;t buy iPhone anymore&#8221;</p>
<p>首先我呢一篇文並唔係想再起爐灶引起另一場罵戰<br />
只係純粹以一個 web developer o既角度去講下自己o既諗法<br />
我唔係想借呢篇文章去教大家點樣揀 technology<br />
只係將我自己所遇到o既一 d 經驗同大家分享</p>
<p>識得我o既人都知道 Vicker o係 Flash / Flex o既死硬派<br />
(其實我只係唔鍾意寫 Java 者&#8230; 但係唔代表我唔會寫&#8230; 而且 UI 黎講我都好鍾意寫 XHTML 同 CSS. W3C standards 簡直係我覺得最有滿足感o既野)<br />
同時間 Vicker 亦都係 Apple o既 Fans&#8230; 屋企用 Mac Pro&#8230; 出街用 Macbook&#8230; 電話用 iPhone&#8230;<br />
講真&#8230; 如果你硬係要我o係 Apple 同 Adobe 之間二選一&#8230; 只會同兩個女人跌落海o既問題一樣咁困難&#8230;</p>
<p>至於 Apple 單方面 reject Flash 同其他 technologies (e.g. Unity3D) 係唔係唔o岩~ 我都唔想講太多<br />
但係如果講到工作上究竟應該點揀 technologies 呢&#8230; 下面係我自己呢一排o既見解</p>
<p><strong>點解以前要用 Flash?</strong></p>
<p>Web o既 content 大致上可以分兩種&#8230; Web page 同 Web application</p>
<p>Web page 裡面出現得最多o既 Flash 不外乎係 interactive banners, video ads 又或者 widgets<br />
原因簡單不過&#8230; Banners 黎講 Flash file size 夠細而且 animation 同 interactivity 都好易寫<br />
Video 用左 Flash 就可以解決 cross platform o既問題 (wmv 要倚靠 Windows Media Player / mov 要倚靠 Quicktime)<br />
呢兩點正正就係 HTML5 足以 replace Flash o既原因~ 下面會再詳細講</p>
<p>至於 web applications (或者 RIA) AJAX 絕對係大哥<br />
基本上好多常用o既 RIA 都係靠 XMLHttpRequest 走天下<br />
(GMail, Google Doc, Facebook, Twitter, etc&#8230;)</p>
<p>但係 AJAX 無論點強勁都好&#8230; UI 始終係靠 HTML + CSS render<br />
只要用上 CSS 就會出現 cross browser issue<br />
那怕只係簡單一條 border&#8230; 一個 padding&#8230; 都夠你玩幾個鐘<br />
IE, Firefox, Safari, Chrome, Opera, Camino, etc&#8230;<br />
你寫一次就要 test 幾十次&#8230;</p>
<p>就係因為要解決 cross browser o既問題先會有 browser plug in 呢一層 layer o既出現 (無論係 Java 定 Flash 定 SilverLight)<br />
講到尾我地做 developers / dezelopers 其實只係想寫 d 好野出黎者&#8230;<br />
Cross browser 呢 d 野難得有 plug in 幫我地解決&#8230; 何樂而不為</p>
<p>其次 AJAX 的確有好多 libraries&#8230; 好多 UI components&#8230;<br />
但係有幾多個 libraries 可以 combine 得好呢?<br />
YUI 有自己一套&#8230; jQuery 又有自己一套&#8230; MooTools 又有一套&#8230; 獨立用又唔夠用&#8230; 夾埋用又唔o岩啞..<br />
就好似你食雪糕想食兩隻味&#8230; 去 Godiva 買一個球&#8230; 去 Papagalo 買另一個球&#8230; 放埋同一隻杯度&#8230;<br />
係&#8230; 你食到兩隻味&#8230; 只係佢地中間融埋 d 味好唔夾者&#8230;</p>
<p>Flash d components 就算係 third part develop o既都夾得埋~ 仲 mash 得好好 tim~</p>
<p><strong>點解要用 HTML5 + CSS3?</strong></p>
<p>相信有好多人都係因為 iPhone 唔 support Flash 先認識 HTML5<br />
點解要用 HTML5 相信已經有好多 article / blogs 提過<br />
呢度唔詳細講~ 只講幾點重點</p>
<p>- HTML5 唔係由一間公司操控. 唔需要驚會消失<br />
講真&#8230; 如果有一日 Apple 買起 Adobe 然後 cut 左 Flash 條 product line&#8230; 的確會好大件事</p>
<p>- HTML5 唔需要 plug in<br />
- HTML5 canvas 可以畫野<br />
- HTML5 有 video control<br />
- HTML5 有好多新 controls (Datagrid, sliders etc&#8230;)<br />
- HTML5 o係 mobile device 食少 d resources<br />
- CSS3 可以做 animation<br />
- iPhone support HTML5</p>
<p>Video + Canvas 的確可以完全蓋過 Flash 部份o既優勢<br />
而首當其衝o既相信係 Ads<br />
至於 suffer o既又會再一次係 end users&#8230;<br />
今時今日大家仲可以 disable Flash 黎 remove Ads<br />
將來全部變晒 HTML5&#8230; 除非 HTML5 硬性規定要 declare 個 tag 係唔係 Ad o既者<br />
否則將來你只可以硬食&#8230;</p>
<p><strong>有 HTML5 + CSS3 仲要 Flash 黎做乜?</strong></p>
<p>HTML5 + CSS3 的確做到部份 Flash 可以做到o既野<br />
如果 H+C 做得到的話~ 其實真係唔需要加多一層 layer 去寫 Flash 咁笨</p>
<p>但係我地都要明白一 d H+C o既問題</p>
<p>- Cross browser compatibility 始終係 CSS o既死穴<br />
比個例子大家睇&#8230; CSS3 o既 animation 的確好型~ 但係寫落仲型~ 要 cross browser 就要 1 為 3 體&#8230;</p>
<p>Safari / Chrome<br />
-webkit-transition: opacity 1s linear;</p>
<p>Firefox<br />
-moz-transition: opacity 1s linear;</p>
<p>Opera<br />
-o-transition: opacity 1s linear;</p>
<p>無錯&#8230; 你每一個 transition 都要寫 3 次&#8230; 攪乜鬼呢&#8230;<br />
仲有&#8230; 就算 Safari on MacOS 同 Safari on iPhone 都會有 transition alpha o既 compatibility 問題<br />
基本上你寫得 CSS styled content 就要有通頂做 browser check o既心理準備<br />
你用 CSS 愈勁就 OT 得愈勁&#8230;</p>
<p>- HTML5 canvas 同 video H.264 o既 IP 係 Apple o既<br />
(Reference: http://en.wikipedia.org/wiki/Canvas_element)</p>
<p>如其擔心 Adobe 會執笠&#8230; 不如擔心 Apple 會收你 license fee&#8230; 又或者只有 Safari 可以用 canvas<br />
到時你辛苦寫落o既 HTML5 恐怕要 revamp&#8230;</p>
<p>- HTML5 control 有排等&#8230;<br />
其實 HTML5 好多 controls 都未 fully implement&#8230; e.g. Datagrid.<br />
究竟要等幾耐呢? Who can tell?<br />
到 HTML5 有齊o既一刻&#8230; Flex 又已經去到另一個層次&#8230;</p>
<p>- HTML5 無 web camera<br />
呢一點比較少人提到&#8230;<br />
如果無左 web cam 就會無晒近黎最 hit o既 AR (Augmented Reality)</p>
<p>- HTML5 未有 3D 同 filters<br />
當然 3D 同 filters 只係 d 可有可無o既野<br />
但係唔可以忘記呢 d o野正正影響住 user experience<br />
如果無左 motion blur 好多 animation 都會變得好假</p>
<p><strong>咁究竟應該點樣揀用乜呢?</strong></p>
<p>記得 4 年前我寫左我o既 FYP &#8211; FLABER<br />
當年我一買左 Nokia N73 之後第一件事就係裝 Flash Lite 然後放 FLABER 入去玩<br />
一放就 work o個一種興奮感覺正正就係 Flash cross device o既好處</p>
<p>但係呢幾日反覆思量&#8230; 其實就算 Flash export 得點好都無用&#8230;<br />
要比最好o既 user experience 比 users~ 始終都係要 ground up design 過</p>
<p>Desktop 同 mobile 始終係兩個完全唔同o既 environment<br />
如果將 desktop Flash 放入 mobile device 又太 heavy<br />
如果將 mobile HTML 放入 desktop browser 又太 plain</p>
<p>所以我都係得o個句&#8230;<br />
You have to pick the right tool for the right task.</p>
<p>呢個世界好難話一種 technology 玩晒.<br />
所以唔好再話乜野 kill 乜野喇~ IE6 到今日都未死啦&#8230;</p>
<p>如果只係以 desktop 同 mobile 做為分界線<br />
相信要揀邊種 technology 做 development 就非常簡單</p>
<p>考慮到 CSS o既問題~ 同埋要犧牲 user experience~<br />
再加上 desktop browser 9 乘 9 都有 Flash player<br />
我會繼續用 Flash platform 做 development</p>
<p>至於 mobile&#8230; 不得不否認 mobile device 已經係 iPhone o既天下<br />
就算 Android support Flash 都好&#8230; Flash 暫時都仲係太 heavy&#8230;<br />
所以 mobile development 就一定會揀 HTML + CSS<br />
當然啦如果再 specific d 只係 target iPhone 就一定係寫 Objective C.</p>
<p><strong>黎緊o既 trend 會係點?</strong></p>
<p>正如我 Dad 成日同我講<br />
&#8220;都唔知比你學電腦係唔係害左你&#8230; IT 始終係變化得好快o既世界&#8221;<br />
其實我地做得 developers 就預左日日咁學 日日咁變</p>
<p>Trend 呢 d 野真係無得估&#8230;<br />
今日 Apple 唔比你 deploy Flash<br />
幾個鐘之後 Google Chrome preinstall Flash<br />
食完飯之後 Adobe 有 Flash to HTML5 exporter<br />
聽日 Opera on iPhone embed 左 Flash player<br />
聽晚 Google 出部手機有粒 i7<br />
後日又點&#8230; 大後日係點&#8230;<br />
如其去估&#8230; 不如寫好 d applications</p>
<p>&#8220;條條大路通羅馬&#8221;<br />
最緊要你有個心去寫 d 好野<br />
只要你有心~ 就算只係得 HTML 都會寫到 amazing apps~!!</p>
<p>至於要用乜野 technology 寫野<br />
其實冥冥中你老細或者你上司又或者你 client 自會主宰~ 哈哈<br />
我地努力執行就可以~ XDD</p>
<p><strong>Apple 輸? Adobe 輸?</strong></p>
<p>其實最後咪又係 end user 輸&#8230;<br />
iPhone 無得玩 restaurant city<br />
Flash developer 要比錢 join iPhone development program</p>
<p>點解就係唔可以 mash 埋一齊呢?<br />
Mashup&#8230; 明明就係 Web 2.0 o既根本<br />
<img src="http://vicker.cubeforge.net/img/blog/web_chemistry.png" alt="CHJAF2AHI... What a great web misture" /></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://vicker.cubeforge.net/blog/2010/04/30/my_potato_thoughts_on_ria_development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex FAQ #11: Spark Layout Basics</title>
		<link>http://vicker.cubeforge.net/blog/2010/01/31/flex-faq-11-spark-layout-basics/</link>
		<comments>http://vicker.cubeforge.net/blog/2010/01/31/flex-faq-11-spark-layout-basics/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 10:43:29 +0000</pubDate>
		<dc:creator>Vicker</dc:creator>
				<category><![CDATA[Flex FAQ]]></category>
		<category><![CDATA[Box]]></category>
		<category><![CDATA[Group]]></category>
		<category><![CDATA[HBox]]></category>
		<category><![CDATA[HGroup]]></category>
		<category><![CDATA[HorizontalLayout]]></category>
		<category><![CDATA[LayoutBase]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[VBox]]></category>
		<category><![CDATA[VerticalLayout]]></category>
		<category><![CDATA[VGroup]]></category>

		<guid isPermaLink="false">http://vicker.cubeforge.net/blog/?p=338</guid>
		<description><![CDATA[o係 Flex 裡面我地用得最多o既 control 係乜呢? Label? TextInput? Button? DataGrid? 我覺得答案應該係 VBox 同 HBox 無論係 Application layout, custom item renderer, form layout, padding&#8230; 好多地方都要用 VBox 同 HBox 所以第一個 Spark 要學o既o野就係 VBox 同 HBox o既 alternatives &#8211; Group 同 LayoutBase 顧名思意 Group 係用黎將唔同o既 components group 埋一齊 呢 d components 可以係 control 亦可以係 containers 可以係 Spark component 亦可以係


Related posts:<ol><li><a href='http://vicker.cubeforge.net/blog/2010/01/16/flex-faq-10-how-many-flex-4-namespace/' rel='bookmark' title='Permanent Link: Flex FAQ #10: Flex 4 有幾多個 namespace'>Flex FAQ #10: Flex 4 有幾多個 namespace</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2010/01/14/flex-faq-9-why-spark/' rel='bookmark' title='Permanent Link: Flex FAQ #9: 點解要 Spark'>Flex FAQ #9: 點解要 Spark</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>o係 Flex 裡面我地用得最多o既 control 係乜呢?<br />
Label? TextInput? Button? DataGrid?<br />
我覺得答案應該係 VBox 同 HBox</p>
<p>無論係 Application layout, custom item renderer, form layout, padding&#8230;<br />
好多地方都要用 VBox 同 HBox<br />
所以第一個 Spark 要學o既o野就係 VBox 同 HBox o既 alternatives &#8211; Group 同 LayoutBase</p>
<p>顧名思意 Group 係用黎將唔同o既 components group 埋一齊<br />
呢 d components 可以係 control 亦可以係 containers<br />
可以係 Spark component 亦可以係 Halo component<br />
Group 基本上係取代左 Halo o既 Box container<br />
同 Box 一樣~ Group 本身 by default 係 absolute layout<br />
Absolute layout 者係所有 child component 都係 position o係 x 0 y 0<br />
所以下面o既 example 所有 component 都會重疊左</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;s:Application
	xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
	xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
	xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;&gt;

	&lt;s:Group&gt;

		&lt;!-- Spark and Halo Button --&gt;
		&lt;s:Button label=&quot;Spark Button&quot; /&gt;
		&lt;mx:Button label=&quot;Halo Button&quot; /&gt;

		&lt;!-- Nested Group --&gt;
		&lt;s:Group&gt;

			&lt;!-- Spark DropDownList and Halo ComboBox --&gt;
			&lt;s:DropDownList /&gt;
			&lt;mx:ComboBox /&gt;

		&lt;/s:Group&gt;

	&lt;/s:Group&gt;

&lt;/s:Application&gt;
</pre>
<p>Box 有兩種 subclass~ HBox 同 VBox<br />
HBox 會將所有 child 跟據每一個 child o既 width 打橫放而且唔會重疊<br />
VBox 同 HBox 一樣~ 不過係打直放</p>
<p>Group 同 Box 都有 similar o既 subclass HGroup 同 VGroup<br />
原理一樣~ HGroup 打橫~ VGroup 打直~</p>
<p>下面呢個 example 將 Spark Group 同 Halo Box 放埋一齊做對比<br />
Compile 完之後睇落其實係無分別</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;s:Application
	xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
	xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
	xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;&gt;

	&lt;!-- Spark vertical group --&gt;
	&lt;s:VGroup left=&quot;0&quot;&gt;

		&lt;s:Button label=&quot;Spark Button&quot; /&gt;
		&lt;mx:Button label=&quot;Halo Button&quot; /&gt;

		&lt;!-- Spark horizontal group --&gt;
		&lt;s:HGroup&gt;

			&lt;s:DropDownList /&gt;
			&lt;mx:ComboBox /&gt;

		&lt;/s:HGroup&gt;

	&lt;/s:VGroup&gt;

	&lt;!-- Halo veritcal box --&gt;
	&lt;mx:VBox right=&quot;0&quot;&gt;

		&lt;s:Button label=&quot;Spark Button&quot; /&gt;
		&lt;mx:Button label=&quot;Halo Button&quot; /&gt;

		&lt;!-- Halo horizontal box --&gt;
		&lt;mx:HBox&gt;

			&lt;s:DropDownList /&gt;
			&lt;mx:ComboBox /&gt;

		&lt;/mx:HBox&gt;

	&lt;/mx:VBox&gt;

&lt;/s:Application&gt;
</pre>
<p>Spark Group 比 Halo Box 厲害o既地方就係除左 absolute, horizontal 同 vertical 之外<br />
仲可以 custom define 其他o既 layout<br />
就算係圓形都可以&#8230; 只要你識計數~ 哈哈</p>
<p>但係要用 custom layout 就唔可以再用 HGroup 同 VGroup<br />
要用另一種方法可以 set layout&#8230;<br />
就係用 Group o既 layout properties 同埋 layoutBase class<br />
layoutBase class 係 Group 用黎將 child components 排位o既一個 class<br />
事實上 HGroup 只係一個 Group layout 上面 apply 左 Spark predefine o既 HorizontalLayout~<br />
者係 HGroup 某程度上只係一種 shortcut~ VGroup 都係一樣~ 用左 predefine o既 VerticalLayout~</p>
<p>如果將上面o既 example Spark Group 部份用 layout 再寫一次的話就會係下面咁樣&#8230;</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;s:Application
	xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
	xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
	xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;&gt;

	&lt;!-- Spark group with vertical layout --&gt;
	&lt;s:Group&gt;

		&lt;s:layout&gt;
			&lt;s:VerticalLayout /&gt;
		&lt;/s:layout&gt;

		&lt;s:Button label=&quot;Spark Button&quot; /&gt;
		&lt;mx:Button label=&quot;Halo Button&quot; /&gt;

		&lt;!-- Spark group with horizontal layout --&gt;
		&lt;s:Group&gt;

			&lt;s:layout&gt;
				&lt;s:HorizontalLayout /&gt;
			&lt;/s:layout&gt;

			&lt;s:DropDownList /&gt;
			&lt;mx:ComboBox /&gt;

		&lt;/s:Group&gt;

	&lt;/s:Group&gt;

&lt;/s:Application&gt;
</pre>
<p>我 personally 比較喜歡用 layout 多過 HGroup VGroup<br />
主要係考慮到 flexibility~<br />
好多時我地都會轉 layout design<br />
如果用 HGroup VGroup 寫法的話~ 如果想轉 layout 就要一次過改晒 open 同 close tag<br />
如果 Group 裡面無乜 child components 都還可以<br />
如果多起上黎~ 你改左個 open tag 之後要搵返個 close tag 都幾麻煩&#8230;</p>
<pre class="brush: xml;">
&lt;s:HGroup&gt;
	...
&lt;/s:HGroup&gt;
</pre>
<p>而且用 layout 仲可以 runtime 隨時轉 layout class<br />
可以做到更加多變化o既 UI<br />
例如你有一堆 tag 想 show 比 user 睇<br />
想 elegant 一 d可以用 custom made o既 tag cloud layout<br />
想清楚 d 咁 list out 又可以轉左 VerticalLayout<br />
想玩花臣的又可以用 circular layout</p>
<p>下面o既 example 就示範左點樣 runtime 轉 layout<br />
而裡面o既 CircularLayout o係 Andrew Trice 寫o既 custom layout<br />
<a href="http://www.insideria.com/2009/05/flex-4-custom-layouts.html">http://www.insideria.com/2009/05/flex-4-custom-layouts.html</a></p>
<p><a href="http://vicker.cubeforge.net/blog/2010/01/31/flex-faq-11-spark-layout-basics/"><em>Click here to view the embedded video.</em></a></p>
<p>English title: Spark Layout Basics</p>


<p>Related posts:<ol><li><a href='http://vicker.cubeforge.net/blog/2010/01/16/flex-faq-10-how-many-flex-4-namespace/' rel='bookmark' title='Permanent Link: Flex FAQ #10: Flex 4 有幾多個 namespace'>Flex FAQ #10: Flex 4 有幾多個 namespace</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2010/01/14/flex-faq-9-why-spark/' rel='bookmark' title='Permanent Link: Flex FAQ #9: 點解要 Spark'>Flex FAQ #9: 點解要 Spark</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://vicker.cubeforge.net/blog/2010/01/31/flex-faq-11-spark-layout-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex FAQ #10: Flex 4 有幾多個 namespace</title>
		<link>http://vicker.cubeforge.net/blog/2010/01/16/flex-faq-10-how-many-flex-4-namespace/</link>
		<comments>http://vicker.cubeforge.net/blog/2010/01/16/flex-faq-10-how-many-flex-4-namespace/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 17:33:47 +0000</pubDate>
		<dc:creator>Vicker</dc:creator>
				<category><![CDATA[Flex FAQ]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Halo]]></category>
		<category><![CDATA[namespace]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://vicker.cubeforge.net/blog/?p=320</guid>
		<description><![CDATA[知道點解要用 Spark 之後當然要實戰下啦 首先寫返個 Hello Spark application 先 以下o係 main application o既 source code * 太簡單喇~ 無 build application 放上黎~ 抱歉 &#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62; &#60;s:Application xmlns:fx=&#34;http://ns.adobe.com/mxml/2009&#34; xmlns:s=&#34;library://ns.adobe.com/flex/spark&#34; xmlns:mx=&#34;library://ns.adobe.com/flex/mx&#34;&#62; &#60;s:Label text=&#34;Hello Spark!&#34; /&#62; &#60;/s:Application&#62; 唔太複雜吧~ 不過都幾多野唔同~ 首先當然係 namespace 啦 Flex Builder 3 (FB3) 寫 Flex 3 app 時o既 namespace 真係簡單到不得了 xmlns:mx=&#34;http://www.adobe.com/2006/mxml&#34; 一個 mx 走天涯~ 一個已經包括左: -


Related posts:<ol><li><a href='http://vicker.cubeforge.net/blog/2010/01/14/flex-faq-9-why-spark/' rel='bookmark' title='Permanent Link: Flex FAQ #9: 點解要 Spark'>Flex FAQ #9: 點解要 Spark</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/08/04/flex-faq-1-how-to-place-flex-applications-input-cursor-focus-on-a-specific-textinput-control-by-defaul/' rel='bookmark' title='Permanent Link: Flex FAQ #1: 點樣令 Flex 程式開始時將 cursor 指定係某一個 TextInput 裡面'>Flex FAQ #1: 點樣令 Flex 程式開始時將 cursor 指定係某一個 TextInput 裡面</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/08/10/flex-faq-2-how-to-remove-all-the-svn-information-produced-by-subclips/' rel='bookmark' title='Permanent Link: Flex FAQ #2: 點樣清除亂左既 subclipse .svn 資料'>Flex FAQ #2: 點樣清除亂左既 subclipse .svn 資料</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>知道點解要用 Spark 之後當然要實戰下啦<br />
首先寫返個 Hello Spark application 先<br />
以下o係 main application o既 source code<br />
* 太簡單喇~ 無 build application 放上黎~ 抱歉</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;s:Application
	xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
	xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
	xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;&gt;

	&lt;s:Label text=&quot;Hello Spark!&quot; /&gt;

&lt;/s:Application&gt;
</pre>
<p>唔太複雜吧~ 不過都幾多野唔同~ 首先當然係 namespace 啦</p>
<p><strong>Flex Builder 3 (FB3) 寫 Flex 3 app 時o既 namespace 真係簡單到不得了</strong></p>
<pre class="brush: xml;">
xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot;
</pre>
<p>一個 mx 走天涯~<br />
一個已經包括左:<br />
- language (Array, uint, Number, Object etc&#8230;) 同埋<br />
- Halo components (Button, VBox, DataGrid etc&#8230;)</p>
<p><strong>FB4 寫 Flex 3 namespace 基本上無變架~ 大家唔駛咁擔心</strong></p>
<pre class="brush: xml;">
xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot;
</pre>
<p>但係 FB4 寫 Flex 4 就複雜喇~<br />
首先 Flex 4 namespace 唔再係一個 namespace 玩晒~<br />
而係好 clear cut 咁分開左 language 同 component namespaces</p>
<p><strong>Flex 4 o既 language namespace 係</strong></p>
<pre class="brush: xml;">
xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
</pre>
<p>至於 Flex 4 o既 component namespace 分為 Halo 同 Spark</p>
<p><strong>Flex 4 Halo namespace</strong></p>
<pre class="brush: xml;">
xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;
</pre>
<p>!!!! 大家要留意 FB4 Beta 2 o既 Halo namespace 係 library://ns.adobe.com/flex/halo   !!!!<br />
!!!! 不過最新o既 internal build 用左 library://ns.adobe.com/flex/mx 暫時未知原因係乜 !!!!</p>
<p><strong>Flex 4 Spark namespace</strong></p>
<pre class="brush: xml;">
xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
</pre>
<p>所以如果大家用 FB4 寫 Flex 4 o既時候需要同時用 Halo 同 Spark 就要一次過用晒 fx, s 同 mx 3 個 namespaces<br />
當然啦~ 將來當 Spark 有齊 Halo d component o既時候~ 應該可以一個 s namespace 攪掂晒~!</p>
<p>呢個 Hello Spark app 除左 namespace declaration 之外<br />
比較特別o既就係 Spark Application 同 Spark Label<br />
好明顯佢地係用黎 replace Halo Application 同 Halo Label ga la<br />
至於有乜 improvement 就容後再講喇~</p>


<p>Related posts:<ol><li><a href='http://vicker.cubeforge.net/blog/2010/01/14/flex-faq-9-why-spark/' rel='bookmark' title='Permanent Link: Flex FAQ #9: 點解要 Spark'>Flex FAQ #9: 點解要 Spark</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/08/04/flex-faq-1-how-to-place-flex-applications-input-cursor-focus-on-a-specific-textinput-control-by-defaul/' rel='bookmark' title='Permanent Link: Flex FAQ #1: 點樣令 Flex 程式開始時將 cursor 指定係某一個 TextInput 裡面'>Flex FAQ #1: 點樣令 Flex 程式開始時將 cursor 指定係某一個 TextInput 裡面</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/08/10/flex-faq-2-how-to-remove-all-the-svn-information-produced-by-subclips/' rel='bookmark' title='Permanent Link: Flex FAQ #2: 點樣清除亂左既 subclipse .svn 資料'>Flex FAQ #2: 點樣清除亂左既 subclipse .svn 資料</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://vicker.cubeforge.net/blog/2010/01/16/flex-faq-10-how-many-flex-4-namespace/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flex FAQ #9: 點解要 Spark</title>
		<link>http://vicker.cubeforge.net/blog/2010/01/14/flex-faq-9-why-spark/</link>
		<comments>http://vicker.cubeforge.net/blog/2010/01/14/flex-faq-9-why-spark/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 17:28:26 +0000</pubDate>
		<dc:creator>Vicker</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex FAQ]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Halo]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://vicker.cubeforge.net/blog/?p=314</guid>
		<description><![CDATA[認識 Spark 之前先要講下 Halo Halo 係 Flex 3 o既主要骨格 由最 base o既 application (mx:Application) 去到 layout properties (horizontalAlign, padding) 再去到 UI control (mx:Button, mx:TextInput) 都係 Halo o既範圍 而 Spark 就係 Flex 4 o既主要骨格 好地地用緊 Halo 點解又要 Spark 呢? 用得 Flex 比較深入o既 developer 或者 designer&#8230; 又或者 dezeloper 都會發現 Halo 有幾個比較大o既問題 1) Skinning Skinning and Skinning Halo


Related posts:<ol><li><a href='http://vicker.cubeforge.net/blog/2010/01/16/flex-faq-10-how-many-flex-4-namespace/' rel='bookmark' title='Permanent Link: Flex FAQ #10: Flex 4 有幾多個 namespace'>Flex FAQ #10: Flex 4 有幾多個 namespace</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/08/04/flex-faq-1-how-to-place-flex-applications-input-cursor-focus-on-a-specific-textinput-control-by-defaul/' rel='bookmark' title='Permanent Link: Flex FAQ #1: 點樣令 Flex 程式開始時將 cursor 指定係某一個 TextInput 裡面'>Flex FAQ #1: 點樣令 Flex 程式開始時將 cursor 指定係某一個 TextInput 裡面</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/08/17/flex-faq-3-how-to-download-a-file-in-flex-using-filereference/' rel='bookmark' title='Permanent Link: Flex FAQ #3: 點樣用 Flex FileReference 下載檔案'>Flex FAQ #3: 點樣用 Flex FileReference 下載檔案</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>認識 Spark 之前先要講下 Halo</p>
<p>Halo 係 Flex 3 o既主要骨格<br />
由最 base o既 application (mx:Application)<br />
去到 layout properties (horizontalAlign, padding)<br />
再去到 UI control (mx:Button, mx:TextInput) 都係 Halo o既範圍<br />
而 Spark 就係 Flex 4 o既主要骨格</p>
<p>好地地用緊 Halo 點解又要 Spark 呢?</p>
<p>用得 Flex 比較深入o既 developer 或者 designer&#8230; 又或者 dezeloper 都會發現 Halo 有幾個比較大o既問題</p>
<p>1) Skinning Skinning and Skinning</p>
<p>Halo control 要做 skin 係非常痛苦架<br />
一係就只係用 CSS 做 d 好似無做過咁o既 styling<br />
一係就用 Flash 畫好晒 d 野~ 之後 export SWF~ Flex embed SWF~ 再 CSS map class&#8230;<br />
要改野咩? 開返個 Flash source 由頭做過啦</p>
<p>而且 Halo control o既 internal object 係 fixed 架<br />
舉個例~ 一個 Halo button 裡面有一個 icon 同一個 text field~ 唔可以多亦唔可以少<br />
如果想做一個有兩個 icon o既 button 就只可以由一個 Box container 開始砌~ 之後再自己加返 custom events&#8230;</p>
<p>2) 雞肋 States</p>
<p>Flex o既 States 本身係一樣好方便o既 function<br />
只要 define 一個 base state~ 然後 further define 其他 state 多左或者少左o既野~ 就可以好易做到 transition<br />
但係只要 state o既數量稍為多 d~ 又或者 state 同 state 之間變化比較多~ 就會開始 lost control&#8230;<br />
究竟 B 呢個 state 有 d 乜呢&#8230; 睇返 state A 先~ 哦~ 原來乜都無&#8230;</p>
<p>3) Heavy</p>
<p>其實 Flex Application 本身係 SWF file 已經唔係太大 file size<br />
不過如果你寫既 application 比較 large scale~ 又或者對於 memory consumption 好緊張~<br />
就會好想幫 Flex 3 大瘦身~</p>
<p>Flex 3 為左將所有野簡單化~ 有時會將一 d 你未必需要用o既 item 都放左入去<br />
舉個例~ Box container by default 係有 scroll bar 架~ 只係平時唔用o既時候無 display<br />
但係無 display 代唔代表佢完全唔用 resources 呢?<br />
大家只要睇下 super class Container 就會發現一大堆比 scroll 用o既 variables&#8230; 都幾多下&#8230;</p>
<p>幾個 Box 可能影響唔大<br />
但係如果你用 data grid 再加埋 custom item renderer 仲要用 Box 做 layout&#8230; 咁就大件事喇&#8230;<br />
你就會問&#8230; 明明我個 Box 唔駛 scroll&#8230; 點解要屈我 d resources</p>
<p>上面提到只係比較大o既問題<br />
當然仲有好多其他野啦~ 例如 CSS 唔 standard 呀~ Animate color 會傻左呀~ 等等等等&#8230;<br />
而 Spark o既開發就係為左解決上面呢堆問題~</p>
<p>呢度就暫時粗略講一講<br />
之後我會詳細咁講每一 part~</p>
<p>1) Spark o既 control 大致上可以細分為 HostComponent 同 SkinClass<br />
HostComponent 主要負責 event / state declaration 同埋 contain data<br />
SkinClass 就負責控制所有 graphic elements, state content 同 data binding</p>
<p>好處在於 HostComponent 只係負責最 base o既 feature<br />
而 SkinClass 就可以比你點玩都得~ 就算你想個 Button 係星形再加兩個 icon 都無問題</p>
<p>2) States o既 format 完全唔同晒~<br />
State 裡面o既野唔再o係 state o既層面處理~ 而係o係 control o既層面處理<br />
配合埋 Flash Builder o既 State editor 要知道 current state 有乜簡直易如反掌</p>
<p>3) Scroll bar 再唔o係 default component 會有o既野<br />
要用就要自己 declare~ 唔用就當然慳好多 resources 啦~</p>
<p>仲有好多其他 changes~ 包括 improved CSS class~ custom layout~ PopUpAnchor~ TLF~<br />
可以咁講&#8230; 要學o既野多過 Flex 2 上 Flex 3 好多好多倍~ 哈哈</p>


<p>Related posts:<ol><li><a href='http://vicker.cubeforge.net/blog/2010/01/16/flex-faq-10-how-many-flex-4-namespace/' rel='bookmark' title='Permanent Link: Flex FAQ #10: Flex 4 有幾多個 namespace'>Flex FAQ #10: Flex 4 有幾多個 namespace</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/08/04/flex-faq-1-how-to-place-flex-applications-input-cursor-focus-on-a-specific-textinput-control-by-defaul/' rel='bookmark' title='Permanent Link: Flex FAQ #1: 點樣令 Flex 程式開始時將 cursor 指定係某一個 TextInput 裡面'>Flex FAQ #1: 點樣令 Flex 程式開始時將 cursor 指定係某一個 TextInput 裡面</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/08/17/flex-faq-3-how-to-download-a-file-in-flex-using-filereference/' rel='bookmark' title='Permanent Link: Flex FAQ #3: 點樣用 Flex FileReference 下載檔案'>Flex FAQ #3: 點樣用 Flex FileReference 下載檔案</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://vicker.cubeforge.net/blog/2010/01/14/flex-faq-9-why-spark/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flex 4 重新上路</title>
		<link>http://vicker.cubeforge.net/blog/2010/01/12/flex-4-ground-up/</link>
		<comments>http://vicker.cubeforge.net/blog/2010/01/12/flex-4-ground-up/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 16:26:44 +0000</pubDate>
		<dc:creator>Vicker</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Builder]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://vicker.cubeforge.net/blog/?p=311</guid>
		<description><![CDATA[近期因為要寫幾個比較細既 Flex application 所以借機會用下 Flash Builder 4 寫 Flex 4 apps Flex 4 最大最大既改變當然係 Spark framework 黎緊我會將寫 Flex 4 o既一 d 心得同大家分享下 大家亦唔需要太擔心 Flex 4 o既 syntax 會再變 因為 Flex 4 o既 SDK 已經 freeze 左 除左 bug fix 同埋 font embedding 之外~ 其他都應該唔會再變 大家可以放心去用喇~! 首先大家要 Flex 4 app 當然要用最新o既 compiler 啦 大家可以用 Flex 4


Related posts:<ol><li><a href='http://vicker.cubeforge.net/blog/2010/01/14/flex-faq-9-why-spark/' rel='bookmark' title='Permanent Link: Flex FAQ #9: 點解要 Spark'>Flex FAQ #9: 點解要 Spark</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/08/10/flex-faq-2-how-to-remove-all-the-svn-information-produced-by-subclips/' rel='bookmark' title='Permanent Link: Flex FAQ #2: 點樣清除亂左既 subclipse .svn 資料'>Flex FAQ #2: 點樣清除亂左既 subclipse .svn 資料</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/01/23/time-travel-episode-1-adobe-flex-workshop/' rel='bookmark' title='Permanent Link: 時光倒流第一集 &#8211; Adobe Flex Workshop'>時光倒流第一集 &#8211; Adobe Flex Workshop</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>近期因為要寫幾個比較細既 Flex application<br />
所以借機會用下 Flash Builder 4 寫 Flex 4 apps<br />
Flex 4 最大最大既改變當然係 Spark framework<br />
黎緊我會將寫 Flex 4 o既一 d 心得同大家分享下</p>
<p>大家亦唔需要太擔心 Flex 4 o既 syntax 會再變<br />
因為 Flex 4 o既 SDK 已經 freeze 左<br />
除左 bug fix 同埋 font embedding 之外~ 其他都應該唔會再變<br />
大家可以放心去用喇~!</p>
<p>首先大家要 Flex 4 app 當然要用最新o既 compiler 啦<br />
大家可以用 Flex 4 o既 SDK 又或者 Adobe Flash Builder 4 beta 2</p>
<p>Adobe Flex 4 SDK (Free)<br />
<a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4">http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4</a></p>
<p>Adobe Flash Builder 4 beta 2 (Trial)<br />
<a href="http://labs.adobe.com/technologies/flashbuilder4/">http://labs.adobe.com/technologies/flashbuilder4/</a></p>
<p>有一點要提一提大家<br />
雖然 FB4 可以同時 compile Flex 3 同 Flex 4 o既 applications<br />
但係 FB4 o既 plugin support 唔係咁 work<br />
如果你本身會用一大堆 eclipse plugin 的話<br />
我強烈建議你 keep 返 FB3~!!</p>
<p>裝 SubClipse 還是可以的不過要 manual install&#8230;<br />
Aptana 就暫時唔得喇&#8230;</p>


<p>Related posts:<ol><li><a href='http://vicker.cubeforge.net/blog/2010/01/14/flex-faq-9-why-spark/' rel='bookmark' title='Permanent Link: Flex FAQ #9: 點解要 Spark'>Flex FAQ #9: 點解要 Spark</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/08/10/flex-faq-2-how-to-remove-all-the-svn-information-produced-by-subclips/' rel='bookmark' title='Permanent Link: Flex FAQ #2: 點樣清除亂左既 subclipse .svn 資料'>Flex FAQ #2: 點樣清除亂左既 subclipse .svn 資料</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2007/01/23/time-travel-episode-1-adobe-flex-workshop/' rel='bookmark' title='Permanent Link: 時光倒流第一集 &#8211; Adobe Flex Workshop'>時光倒流第一集 &#8211; Adobe Flex Workshop</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://vicker.cubeforge.net/blog/2010/01/12/flex-4-ground-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex FAQ #8: Font Embedding 全集</title>
		<link>http://vicker.cubeforge.net/blog/2009/04/07/flex-faq-8-all-about-font-embedding/</link>
		<comments>http://vicker.cubeforge.net/blog/2009/04/07/flex-faq-8-all-about-font-embedding/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 16:40:15 +0000</pubDate>
		<dc:creator>Vicker</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex FAQ]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DynaComware]]></category>
		<category><![CDATA[dynamic text]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[font-face]]></category>
		<category><![CDATA[font-family]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://vicker.cubeforge.net/blog/?p=280</guid>
		<description><![CDATA[尋日要幫一個 application 做 font embedding 主要係想 embed 楷書 其實 font embedding 本身並唔係一件難事 因為 Flex 本身已經 support~ 但係 embed 得黎又要控制好 file size 就唔簡單~! 至於楷書o既問題就更加多&#8230; 應該 specific d 講&#8230; 係 Microsoft o既標楷體o既問題更加多&#8230; 由淺入深~ 1) Flex 直接 Embed font 方法主要有兩種 1A) Flex CSS refer local font @font-face { src: local(&#34;標楷體&#34;); font-family: &#34;KaiShu&#34;; } o係 CSS 裡面 declare font-face


Related posts:<ol><li><a href='http://vicker.cubeforge.net/blog/2007/08/17/flex-faq-3-how-to-download-a-file-in-flex-using-filereference/' rel='bookmark' title='Permanent Link: Flex FAQ #3: 點樣用 Flex FileReference 下載檔案'>Flex FAQ #3: 點樣用 Flex FileReference 下載檔案</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2008/12/09/adobe-max-sf-day-1/' rel='bookmark' title='Permanent Link: Adobe MAX SF day 1'>Adobe MAX SF day 1</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2005/10/09/new-technologies-keep-on-coming%e2%80%a6/' rel='bookmark' title='Permanent Link: NEW TECHNOLOGIES KEEP ON COMING…'>NEW TECHNOLOGIES KEEP ON COMING…</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>尋日要幫一個 application 做 font embedding<br />
主要係想 embed 楷書<br />
其實 font embedding 本身並唔係一件難事<br />
因為 Flex 本身已經 support~<br />
但係 embed 得黎又要控制好 file size 就唔簡單~!<br />
至於楷書o既問題就更加多&#8230;<br />
應該 specific d 講&#8230; 係 Microsoft o既標楷體o既問題更加多&#8230;</p>
<p>由淺入深~</p>
<p><strong>1) Flex 直接 Embed font</strong></p>
<p>方法主要有兩種</p>
<p><strong>1A) Flex CSS refer local font</strong></p>
<pre class="brush: css;">
@font-face
{
	src: local(&quot;標楷體&quot;);
	font-family: &quot;KaiShu&quot;;
}
</pre>
<p>o係 CSS 裡面 declare font-face<br />
然後 source 利用 local 指住個字體名<br />
最後 declare 一個 font family 名~ (呢個隨意就得)<br />
呢度最 tricky 係個字體名&#8230; 特別係 Mac 機再加埋中文字&#8230;<br />
經常攪到 Flex Builder compile o既時候會出現 local build error&#8230;</p>
<p>好: 快<br />
壞: 唔穩定, File Size 大</p>
<p><strong>1B) Flex CSS refer font file</strong></p>
<pre class="brush: xml;">
@font-face
{
	src: url(&quot;/fonts/標楷體.ttc&quot;);
	font-family: &quot;KaiShu&quot;;
}
</pre>
<p>想解決 1A 出現o既問題就要利用 source 指 url 直接指住 font file<br />
font file 大家可以o係唔同地方買或者 download 到<br />
如果o係 system font 的話</p>
<p>Windows 可以o係控制台 > 字型 裡面抄走<br />
Mac 可以o係 System/Library/Fonts 裡面抄走<br />
(Mac 特別要留意副檔名 dfont 的係 embed 唔到架)</p>
<p>好: 穩定~ 準<br />
壞: File Size 大</p>
<p><strong>備註: Embed Microsoft Windows 內置標楷體o既爆字問題</strong></p>
<p>如果大家要 embed 標楷體~ 就千祈唔好用 Windows 裡面o既標楷體<br />
因為 embed 之後o係 Mac 機睇係會出現爆字問題</p>
<p>關於爆字 (字形破碎) o既問題請參考 &#8211; 破碎的細明體研究院<br />
<a href="http://bbs.bnw.com.tw/conference/viewtopic.php?t=2856">http://bbs.bnw.com.tw/conference/viewtopic.php?t=2856</a></p>
<p>簡單黎講o係 MS 的標楷體 version 太舊 (3.0)<br />
解決方法係去華康科技買返新 d o既 version (latest 5.0) (我試過 2005 年o既 3.10 無問題)</p>
<p>不過用華康標楷體 3.10 最大o既問題係 file size&#8230;<br />
MS (4.9Mb) 華康 (27.9Mb)<br />
一個 Flex application 用之前要 download 4.9Mb 已經唔容易&#8230; 更何況 27.9Mb&#8230;</p>
<p>另外更要特別提一提<br />
Embed 27.9Mb o既字形係好耐同好唔 stable 架<br />
我曾經多次出現 out of memory o既問題&#8230;<br />
10 次 compile 得 2 &#8211; 3 次成功&#8230;<br />
(Mac Pro 都頂唔順&#8230; 好難相信&#8230; 應該又係 Flex Builder 問題&#8230;)</p>
<p><strong>2) Flex 利用 unicode-range 抽出要 embed o既字</strong></p>
<pre class="brush: css;">
@font-face
{
	src: url(&quot;/fonts/標楷體.ttc&quot;);
	font-family: &quot;KaiShu&quot;;
	unicode-range: U+5011,U+6211;
}
</pre>
<p>其實利用 Flex CSS Embed font o既時候係可以透過 unicode-range 抽出某 d 字架<br />
以上面為例就會將 &#8220;們&#8221; 字同 &#8220;我&#8221; 字抽出黎啦~!<br />
究竟點解係 5011 同 6211 呢?</p>
<p>其實 5011 同 6211 係 d 字o既 unicode value in HEX<br />
想 get 一個中文字o既 unicode<br />
大家可以用呢個 Chinese to Unicode converter<br />
<a href="http://www.chinese-tools.com/tools/converter-unicode.html">http://www.chinese-tools.com/tools/converter-unicode.html</a><br />
記住要將個 result 轉返做 HEX value</p>
<p>如果大家用 Mac o既 Numbers 的話可以用下面呢個 equation</p>
<pre class="brush: vb;">
=CONCATENATE(&quot;U+&quot;,RIGHT(DEC2HEX(CODE(&quot;字&quot;)),4))
</pre>
<pre class="brush: css;">
@font-face
{
	src: url(&quot;/fonts/標楷體.ttc&quot;);
	font-family: &quot;KaiShu&quot;;
	unicode-range: U+5011-U+6211;
}
</pre>
<p>至於呢個係另一種寫法~ 將 5011 至 6211 所有字都 embed~<br />
當然大家可以 combine comma &#8220;,&#8221; 同 dash &#8220;-&#8221; 兩種寫法啦~!!</p>
<p>好: 要用o既字先 embed~ 有效控制 file size<br />
壞: 煩&#8230; 要逐粒字加都幾浪費時間&#8230;<br />
更壞: Flex Builder 應該有 bug&#8230; 當 unicode-range 後面太多野會出現 compilation error&#8230;</p>
<p><strong>3) Flash + Flex Combo = 無敵~!</strong></p>
<p>試左一整日&#8230; 放棄左一輪之後&#8230; 突然諗到o既絕技~!<br />
Flash + Flex Combo</p>
<p>首先利用 Flash dynamic text field 寫低需要o既字</p>
<p><img src="http://vicker.cubeforge.net/img/blog/flex_faq_008_01.png" alt="http://vicker.cubeforge.net/img/blog/flex_faq_008_01.png" /></p>
<p>記住要揀埋你需要o既 font<br />
跟住 set dynamic text field o既 font embedding</p>
<p><img src="http://vicker.cubeforge.net/img/blog/flex_faq_008_02.png" alt="http://vicker.cubeforge.net/img/blog/flex_faq_008_02.png" /></p>
<p>然後揀 Auto Fill~<br />
一下就掂晒~!</p>
<p><img src="http://vicker.cubeforge.net/img/blog/flex_faq_008_03.png" alt="http://vicker.cubeforge.net/img/blog/flex_faq_008_03.png" /></p>
<p>然後 Export SWF file~<br />
最後 Flex embed SWF file</p>
<pre class="brush: css;">
@font-face
{
	src: url(&quot;/fonts/font.swf&quot;);
	font-family: &quot;DFBiaoKaiShu-B5&quot;;
}
</pre>
<p>留意 font family 一欄今次唔可以隨便填<br />
一定要同 Flash 裡面寫o既完全一樣<br />
以我上面 example 為例就係 DFBiaoKaiShu-B5</p>
<p>之後就可以 compile 啦~!</p>
<p>好: 快 準 穩定<br />
壞: 要開多一個 application&#8230; =.=</p>


<p>Related posts:<ol><li><a href='http://vicker.cubeforge.net/blog/2007/08/17/flex-faq-3-how-to-download-a-file-in-flex-using-filereference/' rel='bookmark' title='Permanent Link: Flex FAQ #3: 點樣用 Flex FileReference 下載檔案'>Flex FAQ #3: 點樣用 Flex FileReference 下載檔案</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2008/12/09/adobe-max-sf-day-1/' rel='bookmark' title='Permanent Link: Adobe MAX SF day 1'>Adobe MAX SF day 1</a></li>
<li><a href='http://vicker.cubeforge.net/blog/2005/10/09/new-technologies-keep-on-coming%e2%80%a6/' rel='bookmark' title='Permanent Link: NEW TECHNOLOGIES KEEP ON COMING…'>NEW TECHNOLOGIES KEEP ON COMING…</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://vicker.cubeforge.net/blog/2009/04/07/flex-faq-8-all-about-font-embedding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>求婚特餐</title>
		<link>http://vicker.cubeforge.net/blog/2009/04/02/engaging-menu/</link>
		<comments>http://vicker.cubeforge.net/blog/2009/04/02/engaging-menu/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 17:48:56 +0000</pubDate>
		<dc:creator>Vicker</dc:creator>
				<category><![CDATA[Love]]></category>
		<category><![CDATA[Tasaki]]></category>

		<guid isPermaLink="false">http://vicker.cubeforge.net/blog/?p=272</guid>
		<description><![CDATA[今日教大家煮呢個求婚特餐 材料非常豐富 首先要有 heart o既傻佬 一個 一個剛剛求婚 充滿鑽介知識既朋友 一名 珠寶首飾網頁 數個 討論區文章 數十頁 裝滿介指相o既 folder 一個 Preference list 一份 專業 Sales 一個 好好人經理 一名 鑽石 一粒 銀彈 數排 卡紙 一張 較剪 一把 蠟筆 一排 黑白豬 wallpaper 一張 信封 一個 花 一束 Bear Bear 熊 一隻 烏龜 一隻 以上材料因人而異 但最重要係要用心去安排~! 幸福的確係靠自己捉住的 =============================================== 特餐備註 - Tasaki 介指由於係日本即時訂造~


No related posts.]]></description>
			<content:encoded><![CDATA[<p>今日教大家煮呢個求婚特餐<br />
材料非常豐富</p>
<p>首先要有 heart o既傻佬 一個<br />
一個剛剛求婚 充滿鑽介知識既朋友 一名<br />
珠寶首飾網頁 數個<br />
討論區文章 數十頁<br />
裝滿介指相o既 folder 一個<br />
Preference list 一份<br />
專業 Sales 一個<br />
好好人經理 一名<br />
鑽石 一粒<br />
銀彈 數排<br />
卡紙 一張<br />
較剪 一把<br />
蠟筆 一排<br />
黑白豬 wallpaper 一張<br />
信封 一個<br />
花 一束<br />
Bear Bear 熊 一隻<br />
烏龜 一隻</p>
<p>以上材料因人而異<br />
但最重要係要用心去安排~!<br />
幸福的確係靠自己捉住的 <img src='http://vicker.cubeforge.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>===============================================</p>
<p>特餐備註</p>
<p>- Tasaki 介指由於係日本即時訂造~ 製作需時~ 有心理準備要等最少一個月<br />
- 日本介指 size 同香港有出入架&#8230; 最好帶隻實物去度比較準<br />
- 卡紙最緊要夠大&#8230; 方便錯左可以再整過&#8230;<br />
- 唔好用粗身蠟筆&#8230; 準確度好低<br />
- 寫字最好對住 dictionary 寫避免出錯<br />
- 親身去鋪頭之前最好先打電話 confirm 佢地無執笠或者轉左地址</p>
<p>===============================================</p>
<p>特餐特別鳴謝</p>
<p>- Bryan 兄教我既野實在太多&#8230; 感激<br />
- Tasaki o既 Wing 小姐幫我揀左粒好靚o既 IF 石<br />
- Tasaki o既經理幫我安排趕工<br />
- 花墟 櫻花店幫我準備o既花好得~! 好 Pro~!</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://vicker.cubeforge.net/blog/2009/04/02/engaging-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>理由</title>
		<link>http://vicker.cubeforge.net/blog/2009/03/02/reason/</link>
		<comments>http://vicker.cubeforge.net/blog/2009/03/02/reason/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 16:03:47 +0000</pubDate>
		<dc:creator>Vicker</dc:creator>
				<category><![CDATA[Love]]></category>

		<guid isPermaLink="false">http://vicker.cubeforge.net/blog/?p=221</guid>
		<description><![CDATA[通常 d 女仔都會話 d 男人唔會咁早諗結婚 覺得佢地係唔想咁快比人綁住 今晚靜靜地諗呢個問題 發現自己的理由其實好簡單&#8230; &#8220;想比最好的比另一半&#8221; 嗯~ 就係咁&#8230; No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>通常 d 女仔都會話 d 男人唔會咁早諗結婚<br />
覺得佢地係唔想咁快比人綁住</p>
<p>今晚靜靜地諗呢個問題</p>
<p>發現自己的理由其實好簡單&#8230;</p>
<p>&#8220;想比最好的比另一半&#8221;</p>
<p>嗯~ 就係咁&#8230;</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://vicker.cubeforge.net/blog/2009/03/02/reason/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一切重新開始~</title>
		<link>http://vicker.cubeforge.net/blog/2009/01/22/everything-restart/</link>
		<comments>http://vicker.cubeforge.net/blog/2009/01/22/everything-restart/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 18:12:25 +0000</pubDate>
		<dc:creator>Vicker</dc:creator>
				<category><![CDATA[Daily Life]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://vicker.cubeforge.net/blog/?p=3</guid>
		<description><![CDATA[自己知自己事&#8230; 呢排真係唔係好得&#8230; 完全無晒動力&#8230; 做 d 野亂晒&#8230; 終於&#8230; 今日一個唔小心&#8230; 禁錯左 Drop database&#8230; 幾年的 blog entries 付諸流水&#8230; 唔知點解&#8230; 又無乜特別唔開心o既感覺&#8230; 唔知係唔係人大左&#8230; 大大小小既事都試過 呢 d 唔算係 d 乜野 Anyway&#8230; 盡過能力去補救~ 但係都無辦法挽回&#8230; 最後只可以靠 Google o既 cache result 盡量檢回 index 左o既 post~ 嗯~! 係時候重新開始吧~!!! 努力~!!! No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>自己知自己事&#8230;<br />
呢排真係唔係好得&#8230;<br />
完全無晒動力&#8230;<br />
做 d 野亂晒&#8230;</p>
<p>終於&#8230;</p>
<p>今日一個唔小心&#8230;<br />
禁錯左 Drop database&#8230;<br />
幾年的 blog entries 付諸流水&#8230;<br />
唔知點解&#8230; 又無乜特別唔開心o既感覺&#8230;<br />
唔知係唔係人大左&#8230; 大大小小既事都試過<br />
呢 d 唔算係 d 乜野</p>
<p>Anyway&#8230;</p>
<p>盡過能力去補救~ 但係都無辦法挽回&#8230;<br />
最後只可以靠 Google o既 cache result 盡量檢回 index 左o既 post~</p>
<p>嗯~!</p>
<p>係時候重新開始吧~!!!<br />
努力~!!!</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://vicker.cubeforge.net/blog/2009/01/22/everything-restart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
