<?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>RichMedia+ &#187; Adobe Flash</title>
	<atom:link href="http://blog.richmediaplus.com/tag/adobe-flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.richmediaplus.com</link>
	<description>About the Adobe&#039;s RIA related solution and technology, like Adobe Air, Adobe Flex, Mobile Dev. You also can find the SEO for Flex, RIA, User Ex in this blog.</description>
	<lastBuildDate>Fri, 16 Dec 2011 09:33:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>如何更新 Flash CS5.5 內建除錯 Player</title>
		<link>http://blog.richmediaplus.com/2011/08/update-flash-ide-auth-player/</link>
		<comments>http://blog.richmediaplus.com/2011/08/update-flash-ide-auth-player/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 14:21:10 +0000</pubDate>
		<dc:creator>Ticore Shih</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[Adobe Flash]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=808</guid>
		<description><![CDATA[最近一年來 Flash Player 改版速度變快 光是 10 Major Version，就出了 10.1, 10.2, 10.3 三種 Minor Version 而且還有新增少量的 API 倘若習慣用 Flash IDE Test Movie 方式測試開發新 API 程式 官方又沒發更新檔案的話，就會遇到問題了 相較之下，Flash Builder 開發就沒有這種問題 它完全是用獨立版或是外掛版 Flash Player 來除錯 可以自行更新安裝 我找了一下 Google，國外雖然有人遇到這樣問題 只知道 Flash IDE 除錯播放器是這個檔案 C:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\Configuration\authplay.dll 可是沒有找到更新版的方法 再用 Google 找 authplay.dll，只有找到 Acrobat 相關安全更新 於是直接往 Adobe 安裝目錄下一找，發現一堆各種版本的 authplay.dll [...]
Related posts:<ol>
<li><a href='http://blog.richmediaplus.com/2011/09/fp-102-103-textfield-font-issue/' rel='bookmark' title='Flash Player 10.2, 10.3 TextField 中文字體問題'>Flash Player 10.2, 10.3 TextField 中文字體問題</a></li>
<li><a href='http://blog.richmediaplus.com/2011/09/nested-mask-crash-issue/' rel='bookmark' title='巢狀遮罩造成 Flash Player 死機的 Bug'>巢狀遮罩造成 Flash Player 死機的 Bug</a></li>
<li><a href='http://blog.richmediaplus.com/2010/06/flash-player-10-1-and-air-2-released/' rel='bookmark' title='Flash Player 10.1 and AIR 2 正式版放出'>Flash Player 10.1 and AIR 2 正式版放出</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>最近一年來 Flash Player 改版速度變快<br />
光是 10 Major Version，就出了 10.1, 10.2, 10.3 三種 Minor Version<br />
而且還有新增少量的 API<br />
倘若習慣用 Flash IDE Test Movie 方式測試開發新 API 程式<br />
官方又沒發更新檔案的話，就會遇到問題了</p>
<p>相較之下，Flash Builder 開發就沒有這種問題<br />
它完全是用獨立版或是外掛版 Flash Player 來除錯<br />
可以自行更新安裝</p>
<p>我找了一下 Google，<a href="http://swfhead.com/blog/?p=575">國外雖然有人遇到這樣問題</a><br />
只知道 Flash IDE 除錯播放器是這個檔案</p>
<p>C:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\Configuration\authplay.dll</p>
<p>可是沒有找到更新版的方法<br />
再用 Google 找 authplay.dll，只有找到 Acrobat 相關安全更新<br />
於是直接往 Adobe 安裝目錄下一找，發現一堆各種版本的 authplay.dll<br />
Acrobat 安裝目錄下有比較新的 10.3 版</p>
<p>手動替換到 Flash CS5.5 安裝目錄下之後<br />
隨便用 Flash IDE 測試輸出版號，結果成功更新了！</p>
<p><a href="http://blog-uploads.richmediaplus.com/2011/08/Flash_AuthPlayer_10_3.png"><img src="http://blog-uploads.richmediaplus.com/2011/08/Flash_AuthPlayer_10_3-300x233.png" alt="" title="Flash_AuthPlayer_10_3" width="300" height="233" class="alignnone size-medium wp-image-809" /></a></p>
<p>但是還是無法用新的 API<br />
這是因為少了新版的 AS3 Global Library &#8211; playerglobal.swc<br />
一樣上網找一下發現在這裡可以下載</p>
<p>http://download.macromedia.com/pub/labs/flashplatformruntimes/flashplayer10-3/flashplayer10-3_playerglobal_052011.swc</p>
<p>自行放到以下位置</p>
<p>C:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\Configuration\ActionScript 3.0\FP10.3\playerglobal.swc</p>
<p>然後準備一份 10.3 發布設定檔案，直接從 10.2 複製過來修改就好了</p>
<p>C:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\Configuration\Players\FlashPlayer10_2.xml</p>
<p>裡面所有 10.2 的都改為 10.3，SWF version 改為 12</p>
<pre>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;players&gt;
  &lt;player id="FlashPlayer10.3" version="12" asversion="3"&gt;
   &lt;name&gt;Flash Player 10.3&lt;/name&gt;
   &lt;path builtin="true"/&gt;
   &lt;path platform="WIN"&gt;Device Central/adcdl.exe&lt;/path&gt;
   &lt;path platform="MAC"&gt;Device Central/adcdl&lt;/path&gt;
   &lt;playerDefinitionPath
      as2="$(UserConfig)/Classes/FP10;$(UserConfig)/Classes/FP9;$(UserConfig)/Classes/FP8;$(UserConfig)/Classes/FP7"
      as3="$(AppConfig)/ActionScript 3.0/FP10.3/playerglobal.swc" /&gt;
....
</pre>
<p>重開 Flash IDE 會發現多出 10.3 發布設定<br />
也能使用並編譯新的 API 了</p>
<p>後記，假如除錯用 Player 只是一個 dll 就搞定，而且被廣泛用於 CS 系列軟體內<br />
那麼是不是有可能讓 Flash CS3 也能開發 Flash Player 10.x 的程式呢？<br />
晚點再來試試看！</p>
<p>好吧，我測試過了 Flash CS3, CS5，Test Movie 就當掉了</p>
<p>Related posts:<ol>
<li><a href='http://blog.richmediaplus.com/2011/09/fp-102-103-textfield-font-issue/' rel='bookmark' title='Flash Player 10.2, 10.3 TextField 中文字體問題'>Flash Player 10.2, 10.3 TextField 中文字體問題</a></li>
<li><a href='http://blog.richmediaplus.com/2011/09/nested-mask-crash-issue/' rel='bookmark' title='巢狀遮罩造成 Flash Player 死機的 Bug'>巢狀遮罩造成 Flash Player 死機的 Bug</a></li>
<li><a href='http://blog.richmediaplus.com/2010/06/flash-player-10-1-and-air-2-released/' rel='bookmark' title='Flash Player 10.1 and AIR 2 正式版放出'>Flash Player 10.1 and AIR 2 正式版放出</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2011/08/update-flash-ide-auth-player/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash 混色模式的問題與解決方式</title>
		<link>http://blog.richmediaplus.com/2011/06/avoid-flash-blend-mode-issue/</link>
		<comments>http://blog.richmediaplus.com/2011/06/avoid-flash-blend-mode-issue/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 02:17:52 +0000</pubDate>
		<dc:creator>Ticore Shih</dc:creator>
				<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Blend Mode]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=773</guid>
		<description><![CDATA[去年公司的設計作 Flash Banner 時，遇到一個奇怪的問題 大量使用 Filter, Blend Mode, Alpha, Mask 之後 (這是不良的習慣，請勿仿效) 最終渲染的結果圖片上會出現奇怪的斑點 可明明用的都是 Hard Light，圖片也都是高亮色系 怎麼反而出現暗色斑點呢? 經過反覆測試，拆解之後 發現主要會出現問題的是 Hard Light, Overlay 這兩種混色模式 當一個 MovieClip 套用這兩種混色模式，且後面的背景是純白色時 前景再疊上一層帶有 Alpha 50% 左右的色塊 就很容易產生問題 以下則是使用 Flex 4 MXML 作更進一步的測試程式： &#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;fx:Library&#62; &#60;fx:Definition name=&#34;HRule&#34;&#62; &#60;s:Line width=&#34;100%&#34;&#62; &#60;s:stroke&#62;&#60;s:SolidColorStroke color=&#34;#000000&#34; /&#62;&#60;/s:stroke&#62; &#60;/s:Line&#62; &#60;/fx:Definition&#62; &#60;fx:Definition name=&#34;Border&#34;&#62; [...]
Related posts:<ol>
<li><a href='http://blog.richmediaplus.com/2011/09/nested-mask-crash-issue/' rel='bookmark' title='巢狀遮罩造成 Flash Player 死機的 Bug'>巢狀遮罩造成 Flash Player 死機的 Bug</a></li>
<li><a href='http://blog.richmediaplus.com/2011/09/fp-102-103-textfield-font-issue/' rel='bookmark' title='Flash Player 10.2, 10.3 TextField 中文字體問題'>Flash Player 10.2, 10.3 TextField 中文字體問題</a></li>
<li><a href='http://blog.richmediaplus.com/2011/08/update-flash-ide-auth-player/' rel='bookmark' title='如何更新 Flash CS5.5 內建除錯 Player'>如何更新 Flash CS5.5 內建除錯 Player</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>去年公司的設計作 Flash Banner 時，遇到一個奇怪的問題<br />
大量使用 Filter, Blend Mode, Alpha, Mask 之後<br />
(這是不良的習慣，請勿仿效)<br />
最終渲染的結果圖片上會出現奇怪的斑點</p>
<p><a href="http://blog-uploads.richmediaplus.com/2011/06/BlendModeIssue01.png"><img class="alignnone size-full wp-image-774" title="BlendModeIssue01" src="http://blog-uploads.richmediaplus.com/2011/06/BlendModeIssue01.png" alt="" width="176" height="198" /></a></p>
<p>可明明用的都是 Hard Light，圖片也都是高亮色系<br />
怎麼反而出現暗色斑點呢?</p>
<p>經過反覆測試，拆解之後<br />
發現主要會出現問題的是 Hard Light, Overlay 這兩種混色模式<br />
當一個 MovieClip 套用這兩種混色模式，且後面的背景是純白色時<br />
前景再疊上一層帶有 Alpha 50% 左右的色塊<br />
就很容易產生問題</p>
<p>以下則是使用 Flex 4 MXML 作更進一步的測試程式：</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span>
<span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span> xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span></span>
<span style="color: #000000;">  xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span></span>
<span style="color: #000000;">  xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span><span style="color: #7400FF;">&gt;</span></span>
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Library</span><span style="color: #7400FF;">&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Definition</span> name=<span style="color: #ff0000;">&quot;HRule&quot;</span><span style="color: #7400FF;">&gt;</span></span>
   <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Line</span> width=<span style="color: #ff0000;">&quot;100%&quot;</span><span style="color: #7400FF;">&gt;</span></span>
    <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:stroke</span><span style="color: #7400FF;">&gt;</span><span style="color: #7400FF;">&lt;s:SolidColorStroke</span> color=<span style="color: #ff0000;">&quot;#000000&quot;</span> <span style="color: #7400FF;">/&gt;</span><span style="color: #7400FF;">&lt;/s:stroke</span><span style="color: #7400FF;">&gt;</span></span>
   <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Line</span><span style="color: #7400FF;">&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Definition</span><span style="color: #7400FF;">&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Definition</span> name=<span style="color: #ff0000;">&quot;Border&quot;</span><span style="color: #7400FF;">&gt;</span></span>
   <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Rect</span><span style="color: #7400FF;">&gt;</span></span>
    <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:stroke</span><span style="color: #7400FF;">&gt;</span></span>
     <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:SolidColorStroke</span> color=<span style="color: #ff0000;">&quot;#000000&quot;</span> alpha=<span style="color: #ff0000;">&quot;0.7&quot;</span> weight=<span style="color: #ff0000;">&quot;4&quot;</span> joints=<span style="color: #ff0000;">&quot;bevel&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
    <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:stroke</span><span style="color: #7400FF;">&gt;</span></span>
   <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Rect</span><span style="color: #7400FF;">&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Definition</span><span style="color: #7400FF;">&gt;</span></span>
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Library</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Metadata</span><span style="color: #7400FF;">&gt;</span></span>
  [SWF(width=&quot;500&quot;, height=&quot;400&quot;)]
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Metadata</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Declarations</span><span style="color: #7400FF;">&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:ArrayList</span> id=<span style="color: #ff0000;">&quot;blendModes&quot;</span><span style="color: #7400FF;">&gt;</span></span>
   {[BlendMode.NORMAL, BlendMode.HARDLIGHT,
    BlendMode.OVERLAY, BlendMode.ADD,
    BlendMode.ALPHA, BlendMode.DARKEN,
    BlendMode.DIFFERENCE, BlendMode.ERASE,
    BlendMode.INVERT, BlendMode.LAYER,
    BlendMode.LIGHTEN, BlendMode.MULTIPLY,
    BlendMode.SCREEN, BlendMode.SUBTRACT]}
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:ArrayList</span><span style="color: #7400FF;">&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:ArrayList</span> id=<span style="color: #ff0000;">&quot;opaqueBgColors&quot;</span><span style="color: #7400FF;">&gt;</span></span>
   {[{label: &quot;Null&quot;, data: null},
    {label: &quot;#000000&quot;, data: 0x000000},
    {label: &quot;#808080&quot;, data: 0x808080},
    {label: &quot;#FFFFFF&quot;, data: 0xFFFFFF},
    {label: &quot;#FF0000&quot;, data: 0xFF0000},
    {label: &quot;#00FF00&quot;, data: 0x00FF00},
    {label: &quot;#0000FF&quot;, data: 0x0000FF}]}
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:ArrayList</span><span style="color: #7400FF;">&gt;</span></span>
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;/fx:Declarations</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:layout</span><span style="color: #7400FF;">&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:HorizontalLayout</span> verticalAlign=<span style="color: #ff0000;">&quot;middle&quot;</span> horizontalAlign=<span style="color: #ff0000;">&quot;center&quot;</span> gap=<span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:layout</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
 <span style="color: #000000;"><span style="color: #808080; font-style: italic;">&lt;!-- Graphics Group --&gt;</span></span>
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Group</span> id=<span style="color: #ff0000;">&quot;graphicsGroup&quot;</span> width=<span style="color: #ff0000;">&quot;200&quot;</span> height=<span style="color: #ff0000;">&quot;250&quot;</span> alpha=<span style="color: #ff0000;">&quot;{alphaSlider.value}&quot;</span> blendMode=<span style="color: #ff0000;">&quot;normal&quot;</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Group</span> id=<span style="color: #ff0000;">&quot;underGroup&quot;</span> top=<span style="color: #ff0000;">&quot;24&quot;</span> bottom=<span style="color: #ff0000;">&quot;44&quot;</span> left=<span style="color: #ff0000;">&quot;4&quot;</span> right=<span style="color: #ff0000;">&quot;4&quot;</span></span>
<span style="color: #000000;">     opaqueBackground=<span style="color: #ff0000;">&quot;{underOpaqueBgList.selectedItem.data}&quot;</span></span>
<span style="color: #000000;">     blendMode=<span style="color: #ff0000;">&quot;{underBlendModeList.selectedItem ? underBlendModeList.selectedItem : 'normal'}&quot;</span><span style="color: #7400FF;">&gt;</span></span>
   <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Rect</span> top=<span style="color: #ff0000;">&quot;0&quot;</span> bottom=<span style="color: #ff0000;">&quot;0&quot;</span> left=<span style="color: #ff0000;">&quot;0&quot;</span> right=<span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #7400FF;">&gt;</span></span>
    <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:fill</span><span style="color: #7400FF;">&gt;</span></span>
     <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:LinearGradient</span> rotation=<span style="color: #ff0000;">&quot;90&quot;</span><span style="color: #7400FF;">&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#FF0000&quot;</span> ratio=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#FFFF00&quot;</span> ratio=<span style="color: #ff0000;">&quot;.15&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#00FF00&quot;</span> ratio=<span style="color: #ff0000;">&quot;.3&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#00FFFF&quot;</span> ratio=<span style="color: #ff0000;">&quot;.45&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#0000FF&quot;</span> ratio=<span style="color: #ff0000;">&quot;.60&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#FF00FF&quot;</span> ratio=<span style="color: #ff0000;">&quot;.75&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#FF0000&quot;</span> ratio=<span style="color: #ff0000;">&quot;.9&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#FFFFFF&quot;</span> ratio=<span style="color: #ff0000;">&quot;.90001&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#FFFFFF&quot;</span> ratio=<span style="color: #ff0000;">&quot;.95&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#000000&quot;</span> ratio=<span style="color: #ff0000;">&quot;.95001&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#000000&quot;</span> ratio=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
     <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:LinearGradient</span><span style="color: #7400FF;">&gt;</span></span>
    <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:fill</span><span style="color: #7400FF;">&gt;</span></span>
   <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Rect</span><span style="color: #7400FF;">&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Group</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Border</span> top=<span style="color: #ff0000;">&quot;20&quot;</span> bottom=<span style="color: #ff0000;">&quot;40&quot;</span> left=<span style="color: #ff0000;">&quot;0&quot;</span> right=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Label</span> top=<span style="color: #ff0000;">&quot;30&quot;</span> left=<span style="color: #ff0000;">&quot;-20&quot;</span> text=<span style="color: #ff0000;">&quot;Under Graphic (Colour Gradient)&quot;</span> rotation=<span style="color: #ff0000;">&quot;-90&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
&nbsp;
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Group</span> top=<span style="color: #ff0000;">&quot;4&quot;</span> bottom=<span style="color: #ff0000;">&quot;4&quot;</span> left=<span style="color: #ff0000;">&quot;24&quot;</span> right=<span style="color: #ff0000;">&quot;44&quot;</span> cacheAsBitmap=<span style="color: #ff0000;">&quot;{cacheAsBitmapCk.selected}&quot;</span><span style="color: #7400FF;">&gt;</span></span>
   <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Rect</span> top=<span style="color: #ff0000;">&quot;0&quot;</span> bottom=<span style="color: #ff0000;">&quot;0&quot;</span> left=<span style="color: #ff0000;">&quot;0&quot;</span> right=<span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #7400FF;">&gt;</span></span>
    <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:fill</span><span style="color: #7400FF;">&gt;</span></span>
     <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:LinearGradient</span><span style="color: #7400FF;">&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#000000&quot;</span> ratio=<span style="color: #ff0000;">&quot;0&quot;</span> alpha=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:GradientEntry</span> color=<span style="color: #ff0000;">&quot;#000000&quot;</span> ratio=<span style="color: #ff0000;">&quot;1&quot;</span> alpha=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
     <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:LinearGradient</span><span style="color: #7400FF;">&gt;</span></span>
    <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:fill</span><span style="color: #7400FF;">&gt;</span></span>
   <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Rect</span><span style="color: #7400FF;">&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Group</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:Border</span> top=<span style="color: #ff0000;">&quot;0&quot;</span> bottom=<span style="color: #ff0000;">&quot;0&quot;</span> left=<span style="color: #ff0000;">&quot;20&quot;</span> right=<span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Label</span> top=<span style="color: #ff0000;">&quot;-20&quot;</span> left=<span style="color: #ff0000;">&quot;0&quot;</span> text=<span style="color: #ff0000;">&quot;Over Graphic (#000000, 0-100% Alpha)&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Group</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
 <span style="color: #000000;"><span style="color: #808080; font-style: italic;">&lt;!-- Graphic Control Group --&gt;</span></span>
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:VGroup</span> gap=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #7400FF;">&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Label</span> text=<span style="color: #ff0000;">&quot;Under Graphic Blend Mode:&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:List</span> id=<span style="color: #ff0000;">&quot;underBlendModeList&quot;</span> height=<span style="color: #ff0000;">&quot;100&quot;</span> dataProvider=<span style="color: #ff0000;">&quot;{blendModes}&quot;</span> requireSelection=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Label</span> text=<span style="color: #ff0000;">&quot;Under Graphic Opaque Background:&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:List</span> id=<span style="color: #ff0000;">&quot;underOpaqueBgList&quot;</span> height=<span style="color: #ff0000;">&quot;100&quot;</span> dataProvider=<span style="color: #ff0000;">&quot;{opaqueBgColors}&quot;</span> requireSelection=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
&nbsp;
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:HRule</span> width=<span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
&nbsp;
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:CheckBox</span> id=<span style="color: #ff0000;">&quot;cacheAsBitmapCk&quot;</span> label=<span style="color: #ff0000;">&quot;Over Graphic Cache As Bitmap&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
&nbsp;
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;fx:HRule</span> width=<span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
&nbsp;
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Label</span> text=<span style="color: #ff0000;">&quot;Graphic Group Alpha: {alphaSlider.value}&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
  <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:HSlider</span> id=<span style="color: #ff0000;">&quot;alphaSlider&quot;</span> width=<span style="color: #ff0000;">&quot;80%&quot;</span> value=<span style="color: #ff0000;">&quot;1&quot;</span> stepSize=<span style="color: #ff0000;">&quot;0.01&quot;</span> minimum=<span style="color: #ff0000;">&quot;0&quot;</span> maximum=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>
 <span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:VGroup</span><span style="color: #7400FF;">&gt;</span></span>
&nbsp;
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span></pre></div></div>

<p>前景是黑色，Alpha 0-100% 漸層<br />
中景是各種顏色漸層色塊，配合各種 Blend Mode 測試<br />
背景是純白色</p>
<p>Online Demo：</p>
<p>
<object width="500" height="400">
<param name="movie" value="http://blog-uploads.richmediaplus.com/2011/06/BlendModeTest01.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="500" height="400" src="http://blog-uploads.richmediaplus.com/2011/06/BlendModeTest01.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p>Hard Light 模式結果：</p>
<p><a href="http://blog-uploads.richmediaplus.com/2011/06/BlendModeIssue02.png"><img src="http://blog-uploads.richmediaplus.com/2011/06/BlendModeIssue02-300x263.png" alt="" title="BlendModeIssue02" width="300" height="263" class="alignnone size-medium wp-image-776" /></a></p>
<p>Overlay 模式結果：</p>
<p><a href="http://blog-uploads.richmediaplus.com/2011/06/BlendModeIssue03.png"><img src="http://blog-uploads.richmediaplus.com/2011/06/BlendModeIssue03-300x263.png" alt="" title="BlendModeIssue03" width="300" height="263" class="alignnone size-medium wp-image-777" /></a></p>
<p>可以很明顯的發現混色結果怪怪的，就連黑白色混出來的結果也是<br />
反覆測試之後發現有幾種方式可以繞過這個問題</p>
<ul>
<li>包含中景、前景的整個 MovieClip，套用一個非 100% 的 Alpha 值</li>
<li>前景打開點陣圖快取</li>
<li>背景不要用純白色，只要帶一點點灰就能避開這問題，e.g. #FEFEFE<br />
需要注意的是 RGB 都要非 256<br />
因為這個問題是三色 Channel 個別發生的</li>
</ul>
<p>以上的問題似乎會發生在 Flash Player 9, 10 所有版本上<br />
包含目前最新版本 10.3.181.22，OS Win7<br />
而更早期的 Flash Player 8 卻是正常的</p>
<p>Related posts:<ol>
<li><a href='http://blog.richmediaplus.com/2011/09/nested-mask-crash-issue/' rel='bookmark' title='巢狀遮罩造成 Flash Player 死機的 Bug'>巢狀遮罩造成 Flash Player 死機的 Bug</a></li>
<li><a href='http://blog.richmediaplus.com/2011/09/fp-102-103-textfield-font-issue/' rel='bookmark' title='Flash Player 10.2, 10.3 TextField 中文字體問題'>Flash Player 10.2, 10.3 TextField 中文字體問題</a></li>
<li><a href='http://blog.richmediaplus.com/2011/08/update-flash-ide-auth-player/' rel='bookmark' title='如何更新 Flash CS5.5 內建除錯 Player'>如何更新 Flash CS5.5 內建除錯 Player</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2011/06/avoid-flash-blend-mode-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex文本不可选择链接失效解决方法</title>
		<link>http://blog.richmediaplus.com/2011/05/unselectable-link-enable-label-solution/</link>
		<comments>http://blog.richmediaplus.com/2011/05/unselectable-link-enable-label-solution/#comments</comments>
		<pubDate>Thu, 26 May 2011 10:09:01 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[selectable]]></category>
		<category><![CDATA[textfield]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=768</guid>
		<description><![CDATA[Flash AS 的 textfield 关于响应超链接的时候与 selectable 属性无关。 而在 Adobe Flex 中 TextArea, Text, Label 等用到 textfield 控件必须将 selectable 属性设置为 true，才能响应超链接。 原因在于 Adobe Flex 中对于 FoucsManager 的控制。 代码如下(FocusManager.as)： /** * @private * This gets called when mouse clicks on a focusable object. * We block player behavior */ private function mouseFocusChangeHandler&#40;event:FocusEvent&#41;:void &#123; // trace(&#34;FocusManager: mouseFocusChangeHandler in [...]
Related posts:<ol>
<li><a href='http://blog.richmediaplus.com/2011/11/custom-flex-cursor-instance/' rel='bookmark' title='自訂 Flex 滑鼠游標實體'>自訂 Flex 滑鼠游標實體</a></li>
<li><a href='http://blog.richmediaplus.com/2011/07/detect-stage-scale-by-textfield/' rel='bookmark' title='利用文字欄位偵測舞台縮放比例'>利用文字欄位偵測舞台縮放比例</a></li>
<li><a href='http://blog.richmediaplus.com/2009/04/call-adobe-air-app-from-browser/' rel='bookmark' title='從瀏覽器呼出相應的Air程式'>從瀏覽器呼出相應的Air程式</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Flash AS 的 textfield 关于响应超链接的时候与 selectable 属性无关。<br />
而在 Adobe Flex 中 TextArea, Text, Label 等用到 textfield 控件必须将 selectable 属性设置为 true，才能响应超链接。<br />
原因在于 Adobe Flex 中对于 FoucsManager 的控制。<br />
代码如下(FocusManager.as)：</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #3f5fbf;">/**
 *  @private
 *  This gets called when mouse clicks on a focusable object.
 *  We block player behavior
 */</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> mouseFocusChangeHandler<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">FocusEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #009900; font-style: italic;">// trace(&quot;FocusManager: mouseFocusChangeHandler  in  = &quot; + this._form.systemManager.loaderInfo.url);</span>
	<span style="color: #009900; font-style: italic;">// trace(&quot;FocusManager: mouseFocusChangeHandler &quot; + event);</span>
&nbsp;
    <span style="color: #009900; font-style: italic;">// If relatedObject is null because we don't have access to the </span>
    <span style="color: #009900; font-style: italic;">// object getting focus then allow the Player to set focus</span>
    <span style="color: #009900; font-style: italic;">// to the object. The isRelatedObjectInaccessible property is </span>
    <span style="color: #009900; font-style: italic;">// Player 10 only so we have to test if it is available. We</span>
    <span style="color: #009900; font-style: italic;">// will only see isRelatedObjectInaccessible if we are a version &quot;10&quot; swf</span>
    <span style="color: #009900; font-style: italic;">// (-target-player=10). Version &quot;9&quot; swfs will not see the property</span>
    <span style="color: #009900; font-style: italic;">// even if running in Player 10.</span>
    <span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">relatedObject</span> == <span style="color: #0033ff; font-weight: bold;">null</span> <span style="color: #000066; font-weight: bold;">&amp;&amp;</span> 
        <span style="color: #990000;">&quot;isRelatedObjectInaccessible&quot;</span> <span style="color: #0033ff; font-weight: bold;">in</span> event <span style="color: #000066; font-weight: bold;">&amp;&amp;</span>
        event<span style="color: #000000;">&#91;</span><span style="color: #990000;">&quot;isRelatedObjectInaccessible&quot;</span><span style="color: #000000;">&#93;</span> == <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #009900; font-style: italic;">// lost focus to a control in different sandbox.</span>
        <span style="color: #0033ff; font-weight: bold;">return</span><span style="color: #000066; font-weight: bold;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">relatedObject</span> <span style="color: #0033ff; font-weight: bold;">is</span> <span style="color: #004993;">TextField</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #6699cc; font-weight: bold;">var</span> tf<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">TextField</span> = event<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">relatedObject</span> <span style="color: #0033ff; font-weight: bold;">as</span> <span style="color: #004993;">TextField</span><span style="color: #000066; font-weight: bold;">;</span>
        <span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>tf<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">type</span> == <span style="color: #990000;">&quot;input&quot;</span> <span style="color: #000066; font-weight: bold;">||</span> tf<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">selectable</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0033ff; font-weight: bold;">return</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #009900; font-style: italic;">// pass it on</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    event<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">preventDefault</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>关键的在于其中鼠标事件如果碰到为TextField的话，必须是可输入或者能选择的情况下，才会继续响应事件。<br />
所以，如果需要相应，可以这么改写：</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">import</span> mx<span style="color: #000066; font-weight: bold;">.</span>controls<span style="color: #000066; font-weight: bold;">.</span>Label<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> UnselectableLinkEnableLabel <span style="color: #0033ff; font-weight: bold;">extends</span> Label
	<span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> UnselectableLinkEnableLabel<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ROLL_OVER</span><span style="color: #000066; font-weight: bold;">,</span> handleRollOver<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ROLL_OUT</span><span style="color: #000066; font-weight: bold;">,</span> handleRollOut<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> handleRollOut<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #009900; font-style: italic;">// TODO Auto-generated method stub</span>
			<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;handleRollOut&quot;</span><span style="color: #000000;">&#41;</span>
			focusManager<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">activate</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> handleRollOver<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #009900; font-style: italic;">// TODO Auto-generated method stub</span>
			<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;handleRollOver&quot;</span><span style="color: #000000;">&#41;</span>
			focusManager<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">deactivate</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p><em>哈哈，写完才发现2008年的时候，<a href="http://ticore.blogspot.com/2008/04/enable-flex-htmltext-link.html">Ticore就已经发过类似的文章</a>(Blogspot)了。</em></p>
<p>Related posts:<ol>
<li><a href='http://blog.richmediaplus.com/2011/11/custom-flex-cursor-instance/' rel='bookmark' title='自訂 Flex 滑鼠游標實體'>自訂 Flex 滑鼠游標實體</a></li>
<li><a href='http://blog.richmediaplus.com/2011/07/detect-stage-scale-by-textfield/' rel='bookmark' title='利用文字欄位偵測舞台縮放比例'>利用文字欄位偵測舞台縮放比例</a></li>
<li><a href='http://blog.richmediaplus.com/2009/04/call-adobe-air-app-from-browser/' rel='bookmark' title='從瀏覽器呼出相應的Air程式'>從瀏覽器呼出相應的Air程式</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2011/05/unselectable-link-enable-label-solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex / Flash 性能优化之 数据存取格式</title>
		<link>http://blog.richmediaplus.com/2010/12/flex-flash-value-type/</link>
		<comments>http://blog.richmediaplus.com/2010/12/flex-flash-value-type/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 14:27:47 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Techniques Optimization]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Adobe Flex]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=705</guid>
		<description><![CDATA[以下结论由寂寞火山得出，我只是借花献佛 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 通常我们存取数据有如下几种方式：Array, Object, 自定义类, 比较特殊的还有 Point, Rectangle 等。 效率依次为(后面的数字是100万次存取运算平均所需时间)： 自定义类public属性 135 Point 140 Rectangle(x等属性) 140 Array 270 Object 500 自定义动态类动态属性 550 Rectangle(left等属性) 700 自定义类getter/setter 1000 自定义类Function 1000 出乎意料，最快的是自定类的public属性，速度是Array的两倍Object的四倍getter/setter的八倍——很整的倍数关系。另外存取坐标要用Point和Rectangle，比Array快的多。Object还是少用吧，多用自定义类。 另外自定义密封类(sealed,默认)和自定义动态类(dynamic)的public属性、getter/setter速度几乎一样，而动态类动态添加的属性和Object相若。 Related posts: Flex / Flash 性能优化技巧之 function SEO For Flex/Flash Flex 3 Style Module
Related posts:<ol>
<li><a href='http://blog.richmediaplus.com/2010/12/flex-flash-function/' rel='bookmark' title='Flex / Flash 性能优化技巧之 function'>Flex / Flash 性能优化技巧之 function</a></li>
<li><a href='http://blog.richmediaplus.com/2009/07/seo-for-flex-flash/' rel='bookmark' title='SEO For Flex/Flash'>SEO For Flex/Flash</a></li>
<li><a href='http://blog.richmediaplus.com/2011/05/flex-3-style-module/' rel='bookmark' title='Flex 3 Style Module'>Flex 3 Style Module</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>以下结论由<strong>寂寞火山</strong>得出，我只是借花献佛<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
通常我们存取数据有如下几种方式：Array, Object, 自定义类, 比较特殊的还有 Point, Rectangle 等。<br />
效率依次为(后面的数字是100万次存取运算平均所需时间)：</p>
<p>自定义类public属性 135<br />
Point 140<br />
Rectangle(x等属性) 140<br />
Array 270<br />
Object 500<br />
自定义动态类动态属性 550<br />
Rectangle(left等属性) 700<br />
自定义类getter/setter 1000<br />
自定义类Function 1000</p>
<p>出乎意料，最快的是自定类的public属性，速度是Array的两倍Object的四倍getter/setter的八倍——很整的倍数关系。另外存取坐标要用Point和Rectangle，比Array快的多。Object还是少用吧，多用自定义类。<br />
另外自定义密封类(sealed,默认)和自定义动态类(dynamic)的public属性、getter/setter速度几乎一样，而动态类动态添加的属性和Object相若。</p>
<p>Related posts:<ol>
<li><a href='http://blog.richmediaplus.com/2010/12/flex-flash-function/' rel='bookmark' title='Flex / Flash 性能优化技巧之 function'>Flex / Flash 性能优化技巧之 function</a></li>
<li><a href='http://blog.richmediaplus.com/2009/07/seo-for-flex-flash/' rel='bookmark' title='SEO For Flex/Flash'>SEO For Flex/Flash</a></li>
<li><a href='http://blog.richmediaplus.com/2011/05/flex-3-style-module/' rel='bookmark' title='Flex 3 Style Module'>Flex 3 Style Module</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2010/12/flex-flash-value-type/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex / Flash 性能优化技巧之 function</title>
		<link>http://blog.richmediaplus.com/2010/12/flex-flash-function/</link>
		<comments>http://blog.richmediaplus.com/2010/12/flex-flash-function/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 14:18:59 +0000</pubDate>
		<dc:creator>Alvin / Aedis.Ju</dc:creator>
				<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Techniques Optimization]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Math]]></category>

		<guid isPermaLink="false">http://blog.richmediaplus.com/?p=706</guid>
		<description><![CDATA[还记得Flex/Flash的程式优化里面有指明flash自带的Math类本身就是AS实现的，所以处理速度很慢。 比如 abs(value:Number) 可以用 value &#60; 0 ? -value : value 这样来代替。 也正是因为这样，我就想自己写个Math类MathUtil来取代Math里面的如abs(value:Number)这样的方法。 MathUtil.as public static function abs&#40;value:Number&#41;:Number &#123; return value &#60; 0 ? -value : value; &#125; 但是测试下来发现自己的MathUtil类比原来的Math类速度慢了一倍之多，难道Math.abs在fp10里优化了？ 结果如果直接采用value &#60; 0 ? -value : value来取代MathUtil.abs(value:Number)的代码，速度就比Math.abs(value:Number)快得多。 因此结论得出是function的关系，如果code代码执行重新套用了一层function，那么运行的速度结果是慢得多。 所以这也说明在对性能及其严格的情况下，写代码的时候也尽量降低代码的层次嵌套关系。 Related posts: htmlFormat for Reduce DataBase Storage in Client Flex / Flash 性能优化之 数据存取格式 AS3 Static Function [...]
Related posts:<ol>
<li><a href='http://blog.richmediaplus.com/2009/03/htmlformatforreducedatabasestorageinclient/' rel='bookmark' title='htmlFormat for Reduce DataBase Storage in Client'>htmlFormat for Reduce DataBase Storage in Client</a></li>
<li><a href='http://blog.richmediaplus.com/2010/12/flex-flash-value-type/' rel='bookmark' title='Flex / Flash 性能优化之 数据存取格式'>Flex / Flash 性能优化之 数据存取格式</a></li>
<li><a href='http://blog.richmediaplus.com/2011/07/as3-static-function-variable/' rel='bookmark' title='AS3 Static Function Variable'>AS3 Static Function Variable</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>还记得Flex/Flash的程式优化里面有指明flash自带的Math类本身就是AS实现的，所以处理速度很慢。<br />
比如<br />
abs(value:Number)<br />
可以用<br />
value &lt; 0 ? -value : value<br />
这样来代替。<br />
也正是因为这样，我就想自己写个Math类MathUtil来取代Math里面的如abs(value:Number)这样的方法。</p>
<p>MathUtil.as</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">public</span> static <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #004993;">abs</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0033ff; font-weight: bold;">return</span> <span style="color: #004993;">value</span> <span style="color: #000066; font-weight: bold;">&lt;</span> <span style="color: #000000; font-weight:bold;">0</span> <span style="color: #000066; font-weight: bold;">?</span> <span style="color: #000066; font-weight: bold;">-</span><span style="color: #004993;">value</span> <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>但是测试下来发现自己的MathUtil类比原来的Math类速度慢了一倍之多，难道Math.abs在fp10里优化了？<br />
结果如果直接采用value &lt; 0 ? -value : value来取代MathUtil.abs(value:Number)的代码，速度就比Math.abs(value:Number)快得多。</p>
<p>因此结论得出是function的关系，如果code代码执行重新套用了一层function，那么运行的速度结果是慢得多。<br />
所以这也说明在对性能及其严格的情况下，写代码的时候也尽量降低代码的层次嵌套关系。</p>
<p>Related posts:<ol>
<li><a href='http://blog.richmediaplus.com/2009/03/htmlformatforreducedatabasestorageinclient/' rel='bookmark' title='htmlFormat for Reduce DataBase Storage in Client'>htmlFormat for Reduce DataBase Storage in Client</a></li>
<li><a href='http://blog.richmediaplus.com/2010/12/flex-flash-value-type/' rel='bookmark' title='Flex / Flash 性能优化之 数据存取格式'>Flex / Flash 性能优化之 数据存取格式</a></li>
<li><a href='http://blog.richmediaplus.com/2011/07/as3-static-function-variable/' rel='bookmark' title='AS3 Static Function Variable'>AS3 Static Function Variable</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.richmediaplus.com/2010/12/flex-flash-function/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

