<?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/"
	>

<channel>
	<title>fly away</title>
	<atom:link href="http://hirokimo.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://hirokimo.com</link>
	<description>有希望才有未来 有执著才有幸福</description>
	<pubDate>Wed, 04 Aug 2010 08:31:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>如何在flashIDE中查找替换代码</title>
		<link>http://hirokimo.com/?p=88</link>
		<comments>http://hirokimo.com/?p=88#comments</comments>
		<pubDate>Tue, 25 May 2010 05:40:13 +0000</pubDate>
		<dc:creator>hirokimo</dc:creator>
		
		<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://hirokimo.com/?p=88</guid>
		<description><![CDATA[用flashIDE要全局查找和替换必须在关闭代码编辑窗口后,打开全局查找窗口查找替换.
但是有些时候,库里有很多linkage的元件不在舞台上,如果这些元件里含有代码的时候是没办法全局找到的.
解决方法是:
1.在舞台新建一个帧A
2.打开库全选将元件拖入帧A
3.查找替换后删除帧
这个问题充分说明了,做flash开发除了逻辑思维,还需要拓展形象思维能力.
既然通过继承得不到父类,就要想办法把父类搞出来.
几十个类在文档里你可以用工具查找替换,但几十个元件在母体内,就要用flasher的思维来操作它.
至此,永远记得2advanced带来的感动.
]]></description>
			<content:encoded><![CDATA[<p>用flashIDE要全局查找和替换必须在关闭代码编辑窗口后,打开全局查找窗口查找替换.<br />
但是有些时候,库里有很多linkage的元件不在舞台上,如果这些元件里含有代码的时候是没办法全局找到的.</p>
<p>解决方法是:<br />
1.在舞台新建一个帧A<br />
2.打开库全选将元件拖入帧A<br />
3.查找替换后删除帧</p>
<p>这个问题充分说明了,做flash开发除了逻辑思维,还需要拓展形象思维能力.<br />
既然通过继承得不到父类,就要想办法把父类搞出来.<br />
几十个类在文档里你可以用工具查找替换,但几十个元件在母体内,就要用flasher的思维来操作它.<br />
至此,永远记得2advanced带来的感动.</p>
]]></content:encoded>
			<wfw:commentRss>http://hirokimo.com/?feed=rss2&amp;p=88</wfw:commentRss>
		</item>
		<item>
		<title>flash与javascript交互注意事项</title>
		<link>http://hirokimo.com/?p=76</link>
		<comments>http://hirokimo.com/?p=76#comments</comments>
		<pubDate>Tue, 29 Sep 2009 08:06:39 +0000</pubDate>
		<dc:creator>hirokimo</dc:creator>
		
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://hirokimo.com/?p=76</guid>
		<description><![CDATA[网上大多都是帮助文档,其实as和js的交互有很多注意事项,来总结一下:
一.flash到javascript
1. getURL方法
getURL(&#34;javascript:s2j_call('参数')&#34;,&#34;_self&#34;);
这个是很古老的了,不过发布成player7或之前的版本都可以支持到它,所以几年来一直用它.
不过只能传递字符串参数,只能做些简单的调用.最致命的是,执行这条语句会导致页面正在加载的异步js进程被阻断,所以如果一个页面渲染了一般flash就发出这个事件,那就等着空白页面吧.
所以现在不要再用这条方法了!
2.ExternalInterface接口
ExternalInterface.call(&#34;s2j_call&#34;,参数);
发布成8或更高的版本的flash支持该接口,优点是参数可以为json,object,数组,布尔,字符串等,所以和js交互就很方便了.
而且不会阻碍页面异步js进程.目前都使用该方法.
注意:
当flash和页面跨域时候,页面需要允许flash操控其函数,所以在插入flash时,需要加入 
&#60;param name=&#34;allowScriptAccess&#34; value=&#34;always&#34; /&#62;
二.javascript到flash
这个才是重点,简单的来说,就是在flash里绑定js事件
flash里:
ExternalInterface.addCallback(&#34;j2s_callback&#34;,this, j2s_callback);function j2s_callback(_p){&#160;&#160; &#160;trace(_p);}
js里,首先要获得对flash元素的引用,考虑到不同浏览器,需要对object和embed标签都赋予不同的id,然后判断浏览器类型,通过getElementById来获取ref.然后通过ref.j2s_callback来调用flash内方法.
注意:
1.当flash和页面跨域时候,flash里需要加入允许js添加callback的安全许可:
System.security.allowDomain(&#34;域&#34;);System.security.allowInsecureDomain(&#34;域&#34;);
2.由于各个浏览器的缓存机制和页面加载机制都不同,所以不要指望flash在addCallback执行的时候确实相应的js程序已经定义了,如果没有的话,addCallback是不会成功的.
所以,可以设个轮循来检测页面是否初始完成.随便用1.0的语法写一下:
this.onEnterFrame = function(){&#160;&#160; &#160;if (ExternalInterface.call(&#34;s2j_check&#34;) == &#34;ok&#34;) &#160;&#160; &#160;{&#160;&#160; &#160; &#160; &#160;ExternalInterface.addCallback(&#34;j2s_callback&#34;,this, j2s_callback);&#160;&#160; &#160; &#160; &#160;this.onEnterFrame = null;&#160;&#160; &#160;}};
页面:
function s2j_check(){&#160;&#160; &#160;return &#34;ok&#34;;};function j2s_callback(){&#160;&#160; &#160;//to do 调用flash;};
这样,就可以保证addCallback之前函数已经被初始化完毕,本步骤在as3里可能会报错,需要try一下.
]]></description>
			<content:encoded><![CDATA[<p>网上大多都是帮助文档,其实as和js的交互有很多注意事项,来总结一下:<br />
<strong>一.flash到javascript</strong></p>
<p>1. getURL方法</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Teal;">getURL</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">javascript:s2j_call('参数')</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">_self</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
<p>这个是很古老的了,不过发布成player7或之前的版本都可以支持到它,所以几年来一直用它.<br />
不过只能传递字符串参数,只能做些简单的调用.最致命的是,执行这条语句会导致页面正在加载的异步js进程被阻断,所以如果一个页面渲染了一般flash就发出这个事件,那就等着空白页面吧.<br />
所以现在不要再用这条方法了!</p>
<p>2.ExternalInterface接口</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Teal;">ExternalInterface</span><span style="color: Gray;">.</span><span style="color: Teal;">call</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">s2j_call</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,参数</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
<p>发布成8或更高的版本的flash支持该接口,优点是参数可以为json,object,数组,布尔,字符串等,所以和js交互就很方便了.<br />
而且不会阻碍页面异步js进程.目前都使用该方法.</p>
<p>注意:<br />
当flash和页面跨域时候,页面需要允许flash操控其函数,所以在插入flash时,需要加入 </p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Green;">param</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">allowScriptAccess</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">always</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></div></div>
<p><strong>二.javascript到flash</strong></p>
<p>这个才是重点,简单的来说,就是在flash里绑定js事件<br />
flash里:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Teal;">ExternalInterface</span><span style="color: Gray;">.</span><span style="color: Teal;">addCallback</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">j2s_callback</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: Green;">this</span><span style="color: Gray;">, </span><span style="color: Blue;">j2s_callback</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">j2s_callback</span><span style="color: Olive;">(</span><span style="color: Blue;">_p</span><span style="color: Olive;">)</span><span style="color: Gray;"><br /></span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Teal;">trace</span><span style="color: Olive;">(</span><span style="color: Blue;">_p</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Olive;">}</span></div></div>
<p>js里,首先要获得对flash元素的引用,考虑到不同浏览器,需要对object和embed标签都赋予不同的id,然后判断浏览器类型,通过getElementById来获取ref.然后通过ref.j2s_callback来调用flash内方法.</p>
<p>注意:<br />
1.当flash和页面跨域时候,flash里需要加入允许js添加callback的安全许可:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Teal;">System</span><span style="color: Gray;">.</span><span style="color: Teal;">security</span><span style="color: Gray;">.</span><span style="color: Teal;">allowDomain</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">域</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">System</span><span style="color: Gray;">.</span><span style="color: Teal;">security</span><span style="color: Gray;">.</span><span style="color: Teal;">allowInsecureDomain</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">域</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
<p>2.由于各个浏览器的缓存机制和页面加载机制都不同,所以不要指望flash在addCallback执行的时候确实相应的js程序已经定义了,如果没有的话,addCallback是不会成功的.<br />
所以,可以设个轮循来检测页面是否初始完成.随便用1.0的语法写一下:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Teal;">onEnterFrame</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">()</span><span style="color: Gray;"><br /></span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Teal;">ExternalInterface</span><span style="color: Gray;">.</span><span style="color: Teal;">call</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">s2j_check</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ok</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Teal;">ExternalInterface</span><span style="color: Gray;">.</span><span style="color: Teal;">addCallback</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">j2s_callback</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: Green;">this</span><span style="color: Gray;">, </span><span style="color: Blue;">j2s_callback</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Teal;">onEnterFrame</span><span style="color: Gray;"> = </span><span style="color: Green;">null</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br /></span><span style="color: Olive;">}</span><span style="color: Gray;">;</span></div></div>
<p>页面:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">s2j_check</span><span style="color: Olive;">()</span><span style="color: Gray;"><br /></span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ok</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;<br /></span><span style="color: Olive;">}</span><span style="color: Gray;">;<br /></span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">j2s_callback</span><span style="color: Olive;">()</span><span style="color: Gray;"><br /></span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: #ffa500;">//to do 调用flash;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">}</span><span style="color: Gray;">;</span></div></div>
<p>这样,就可以保证addCallback之前函数已经被初始化完毕,本步骤在as3里可能会报错,需要try一下.</p>
]]></content:encoded>
			<wfw:commentRss>http://hirokimo.com/?feed=rss2&amp;p=76</wfw:commentRss>
		</item>
		<item>
		<title>flash摄像头被禁止之mms.cfg与AVHardwareDisable</title>
		<link>http://hirokimo.com/?p=67</link>
		<comments>http://hirokimo.com/?p=67#comments</comments>
		<pubDate>Fri, 07 Aug 2009 10:26:24 +0000</pubDate>
		<dc:creator>hirokimo</dc:creator>
		
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://hirokimo.com/?p=67</guid>
		<description><![CDATA[突然接到很多用户投诉摄像头开启不了,也没有任何提示.
查了半天原来是360还不知道金山的升级补丁把flash的影音功能完全禁止了.
神经病的,还让不让开发者活了.
mms.cfg 位置:

Windows (Vista, XP and 2000)  %WINDIR%\System32\Macromed\Flash
Macintosh  /Library/Application Support/Macromedia
Linux, Flash Player 9  /etc/adobe/

里面有很多管理员可以设置的属性,比如:AVHardwareDisable
不过很傻的是:

If this value is set to 1, the privacy pop-up dialog never appears. However, the user can still access the Privacy tab and the Settings Manager, as well as tabs to let them designate which camera or microphone an application [...]]]></description>
			<content:encoded><![CDATA[<p>突然接到很多用户投诉摄像头开启不了,也没有任何提示.<br />
查了半天原来是360还不知道金山的升级补丁把flash的影音功能完全禁止了.<br />
神经病的,还让不让开发者活了.<br />
mms.cfg 位置:</p>
<blockquote><p>
Windows (Vista, XP and 2000)  %WINDIR%\System32\Macromed\Flash<br />
Macintosh  /Library/Application Support/Macromedia<br />
Linux, Flash Player 9  /etc/adobe/
</p></blockquote>
<p>里面有很多管理员可以设置的属性,比如:AVHardwareDisable<br />
不过很傻的是:</p>
<blockquote><p>
If this value is set to 1, the privacy pop-up dialog never appears. However, the user can still access the Privacy tab and the Settings Manager, as well as tabs to let them designate which camera or microphone an application can use. These settings will appear functional, but any choices the user makes are ignored.
</p></blockquote>
<p>设成1后,不会弹出setting选项让用户设置了,即使用户打开,设置的也都无效&#8230;<br />
不过还好有这个,至少让人知道有没有被禁止:</p>
<blockquote><p>
In ActionScript, an author can query the System. capabilities. avHardwareDisable property to determine the value of this setting.
</p></blockquote>
<p>用flash cs4测试果然可以了,谁知道用flash8打开测试一下,无论mms.cfg里如何设置,System.capabilities.avHardwareDisable 都返回true,我下的文档明明是8的guide文档.<br />
于是,只好无论如何都在舞台上放一个提示,并且exactly放到这个下面,</p>
<p><img src="http://hirokimo.com/static/adobe.gif" alt="adobe" /></p>
<p>当被AVHardwareDisable阻止弹出的时候,这个modal的框就不会出来,用户就可以看到提示了.<br />
&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://hirokimo.com/?feed=rss2&amp;p=67</wfw:commentRss>
		</item>
		<item>
		<title>iframe跨域函数调用</title>
		<link>http://hirokimo.com/?p=62</link>
		<comments>http://hirokimo.com/?p=62#comments</comments>
		<pubDate>Wed, 29 Jul 2009 07:57:05 +0000</pubDate>
		<dc:creator>hirokimo</dc:creator>
		
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://hirokimo.com/?p=62</guid>
		<description><![CDATA[子iframe页面如何跨域调用主页面的函数?
如果仅仅是二级域名不同,可以通过指定 document.domain = &#8220;xxx.com&#8221;; 来共享权限.
但如果是完全不同的两个域呢,一直以来都认为是实现不了的.
前段时间和淘宝项目合作的时候,发现他们可以做到,仔细研究了一下.原来是这样的.
当然前提条件是可以有两个域的控制权限.
情况如下,以下代码在页面A:
&#60;script&#62;function waiting4Callback(_p){&#160;&#160; &#160;alert(_p)}&#60;/script&#62;&#60;iframe id=&#34;IFrameMain&#34; marginWidth=0 marginHeight=0 src=&#34;跨域页面B&#34; frameBorder=0 scrolling=&#34;no&#34; width=&#34;1000&#34; height=&#34;500&#34;&#62;&#60;/iframe&#62;
如果你尝试在跨域页面B里调用:
window.parent.waiting4Callback(&#34;hello!&#34;);
结果,明显是不可以的.
这时,解决方法是先在页面A所在的域下放一个页面C,就叫 proxy.html 好了,代码如下:
&#60;script type=&#34;text/javascript&#34;&#62;window.parent.parent.waiting4Callback(window.location.hash.substring(1));&#60;/script&#62;
这时候window.parent.parent就是页面A了,且A,C之间不跨域.
然后,在页面B里面再iframe一次页面C.代码如下:
&#60;iframe id=&#34;ProxyWin&#34; name=&#34;ProxyWin&#34; marginWidth=0 marginHeight=0 src=&#34;&#34; frameBorder=0 width=&#34;0&#34; scrolling=0 height=&#34;0&#34;&#62;&#60;/iframe&#62;
这时候,页面B就可以通过iframe页面C来调用页面A的函数并传递参数了,这么写:
document.getElementById(&#34;ProxyWin&#34;).src = &#34;页面C地址&#34; + &#34;?r=&#34;+Math.random()+&#34;#&#34;+&#34;要传递的参数&#34;;
页面C好可怜,背叛了页面A不说,还要被页面B不停的重刷,刷到完全失去自我,就为了取个hash.
页面C说,我取的不是hash,是寂寞&#8230;&#8230;
]]></description>
			<content:encoded><![CDATA[<p>子iframe页面如何跨域调用主页面的函数?<br />
如果仅仅是二级域名不同,可以通过指定 document.domain = &#8220;xxx.com&#8221;; 来共享权限.<br />
但如果是完全不同的两个域呢,一直以来都认为是实现不了的.<br />
前段时间和淘宝项目合作的时候,发现他们可以做到,仔细研究了一下.原来是这样的.<br />
当然前提条件是可以有两个域的控制权限.</p>
<p>情况如下,以下代码在页面A:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br />function waiting4Callback(_p)<br />{<br />&nbsp;&nbsp; &nbsp;alert(_p)<br />}<br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">iframe</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">IFrameMain</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">marginWidth</span><span style="color: Gray;">=</span><span style="color: #00008b;">0</span><span style="color: Gray;"> </span><span style="color: #00008b;">marginHeight</span><span style="color: Gray;">=</span><span style="color: #00008b;">0</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">跨域页面B</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">frameBorder</span><span style="color: Gray;">=</span><span style="color: #00008b;">0</span><span style="color: Gray;"> </span><span style="color: #00008b;">scrolling</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">no</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1000</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">height</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">500</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">iframe</span><span style="color: Olive;">&gt;</span></div></div>
<p>如果你尝试在跨域页面B里调用:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Teal;">window</span><span style="color: Gray;">.</span><span style="color: Blue;">parent</span><span style="color: Gray;">.</span><span style="color: Blue;">waiting4Callback</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">hello!</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
<p>结果,明显是不可以的.</p>
<p>这时,解决方法是先在页面A所在的域下放一个页面C,就叫 proxy.html 好了,代码如下:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br />window.parent.parent.waiting4Callback(window.location.hash.substring(1));<br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></div></div>
<p>这时候window.parent.parent就是页面A了,且A,C之间不跨域.</p>
<p>然后,在页面B里面再iframe一次页面C.代码如下:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Green;">iframe</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ProxyWin</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ProxyWin</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">marginWidth</span><span style="color: Gray;">=</span><span style="color: #00008b;">0</span><span style="color: Gray;"> </span><span style="color: #00008b;">marginHeight</span><span style="color: Gray;">=</span><span style="color: #00008b;">0</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">frameBorder</span><span style="color: Gray;">=</span><span style="color: #00008b;">0</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">scrolling</span><span style="color: Gray;">=</span><span style="color: #00008b;">0</span><span style="color: Gray;"> </span><span style="color: #00008b;">height</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">0</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">iframe</span><span style="color: Olive;">&gt;</span></div></div>
<p>这时候,页面B就可以通过iframe页面C来调用页面A的函数并传递参数了,这么写:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">getElementById</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ProxyWin</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">src</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">页面C地址</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">?r=</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">random</span><span style="color: Olive;">()</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">#</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">要传递的参数</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></div></div>
<p>页面C好可怜,背叛了页面A不说,还要被页面B不停的重刷,刷到完全失去自我,就为了取个hash.<br />
页面C说,我取的不是hash,是寂寞&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://hirokimo.com/?feed=rss2&amp;p=62</wfw:commentRss>
		</item>
		<item>
		<title>flash+php截图后保存图片</title>
		<link>http://hirokimo.com/?p=49</link>
		<comments>http://hirokimo.com/?p=49#comments</comments>
		<pubDate>Mon, 19 Jan 2009 09:25:51 +0000</pubDate>
		<dc:creator>hirokimo</dc:creator>
		
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://hirokimo.com/?p=49</guid>
		<description><![CDATA[as2时代要实现该功能只有在本地draw完bitmap后,把所有widthxheight的图片都储存到数组里然后post给php,php通过gd库来生成,虽然可以不过效率就&#8230;一张120&#215;90的图就够flash运算半天了.
as3要实现这个功能虽然还要借助php,但是只是借助php把图片数据给echo出来而已.图片生成关键步骤都在客户端进行了.
另外还需要adobe官方的as3corelib包.
客户端:
import com.adobe.images.JPGEncoder;import flash.display.BitmapData;import flash.display.Sprite;import flash.net.URLLoader;import flash.net.URLRequest;import flash.net.URLRequestHeader;import flash.net.navigateToURL;import flash.utils.ByteArray;&#160;//画位图数据var jpgSource:BitmapData = new BitmapData (picture.width, picture.height);jpgSource.draw(picture);//生成编码容器var jpgEncoder:JPGEncoder = new JPGEncoder(95);//将位图数据编码到容器内成为ByteArray流var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);//压缩ByteArray流jpgStream.compress();//添加stream的header请求var header:URLRequestHeader = new URLRequestHeader(&#34;Content-type&#34;, &#34;application/octet-stream&#34;);var jpgURLRequest:URLRequest = new URLRequest(&#34;save.php&#34;);jpgURLRequest.requestHeaders.push(header);jpgURLRequest.method = &#34;POST&#34;;jpgURLRequest.data = jpgStream;//推送图片数据到服务器端navigateToURL(jpgURLRequest, &#34;_blank&#34;);//用urlLoader的情况,需要指明Data数据是一个包含原始二进制数据的 ByteArray 对象//loader.dataFormat = URLLoaderDataFormat.BINARY;
服务器端:
&#60;?php$jpg = gzuncompress($GLOBALS[&#34;HTTP_RAW_POST_DATA&#34;]);header(&#34;Content-Type: image/jpeg&#34;);echo $jpg;?&#62;
]]></description>
			<content:encoded><![CDATA[<p>as2时代要实现该功能只有在本地draw完bitmap后,把所有widthxheight的图片都储存到数组里然后post给php,php通过gd库来生成,虽然可以不过效率就&#8230;一张120&#215;90的图就够flash运算半天了.<br />
as3要实现这个功能虽然还要借助php,但是只是借助php把图片数据给echo出来而已.图片生成关键步骤都在客户端进行了.<br />
另外还需要adobe官方的as3corelib包.</p>
<p>客户端:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">adobe</span><span style="color: Gray;">.</span><span style="color: Blue;">images</span><span style="color: Gray;">.</span><span style="color: Blue;">JPGEncoder</span><span style="color: Gray;">;<br /></span><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Teal;">display</span><span style="color: Gray;">.</span><span style="color: Teal;">BitmapData</span><span style="color: Gray;">;<br /></span><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Teal;">display</span><span style="color: Gray;">.</span><span style="color: Blue;">Sprite</span><span style="color: Gray;">;<br /></span><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Teal;">net</span><span style="color: Gray;">.</span><span style="color: Blue;">URLLoader</span><span style="color: Gray;">;<br /></span><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Teal;">net</span><span style="color: Gray;">.</span><span style="color: Blue;">URLRequest</span><span style="color: Gray;">;<br /></span><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Teal;">net</span><span style="color: Gray;">.</span><span style="color: Blue;">URLRequestHeader</span><span style="color: Gray;">;<br /></span><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Teal;">net</span><span style="color: Gray;">.</span><span style="color: Blue;">navigateToURL</span><span style="color: Gray;">;<br /></span><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Blue;">utils</span><span style="color: Gray;">.</span><span style="color: Blue;">ByteArray</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #ffa500;">//画位图数据</span><span style="color: Gray;"><br /></span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">jpgSource</span><span style="color: Gray;">:</span><span style="color: Teal;">BitmapData</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">BitmapData</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">picture</span><span style="color: Gray;">.</span><span style="color: Teal;">width</span><span style="color: Gray;">, </span><span style="color: Blue;">picture</span><span style="color: Gray;">.</span><span style="color: Teal;">height</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Blue;">jpgSource</span><span style="color: Gray;">.</span><span style="color: Teal;">draw</span><span style="color: Olive;">(</span><span style="color: Blue;">picture</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//生成编码容器</span><span style="color: Gray;"><br /></span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">jpgEncoder</span><span style="color: Gray;">:</span><span style="color: Blue;">JPGEncoder</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">JPGEncoder</span><span style="color: Olive;">(</span><span style="color: Maroon;">95</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//将位图数据编码到容器内成为ByteArray流</span><span style="color: Gray;"><br /></span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">jpgStream</span><span style="color: Gray;">:</span><span style="color: Blue;">ByteArray</span><span style="color: Gray;"> = </span><span style="color: Blue;">jpgEncoder</span><span style="color: Gray;">.</span><span style="color: Blue;">encode</span><span style="color: Olive;">(</span><span style="color: Blue;">jpgSource</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//压缩ByteArray流</span><span style="color: Gray;"><br /></span><span style="color: Blue;">jpgStream</span><span style="color: Gray;">.</span><span style="color: Blue;">compress</span><span style="color: Olive;">()</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//添加stream的header请求</span><span style="color: Gray;"><br /></span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">header</span><span style="color: Gray;">:</span><span style="color: Blue;">URLRequestHeader</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">URLRequestHeader</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Content-type</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">application/octet-stream</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">jpgURLRequest</span><span style="color: Gray;">:</span><span style="color: Blue;">URLRequest</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">URLRequest</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">save.php</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Blue;">jpgURLRequest</span><span style="color: Gray;">.</span><span style="color: Blue;">requestHeaders</span><span style="color: Gray;">.</span><span style="color: Teal;">push</span><span style="color: Olive;">(</span><span style="color: Blue;">header</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Blue;">jpgURLRequest</span><span style="color: Gray;">.</span><span style="color: Blue;">method</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">POST</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;<br /></span><span style="color: Blue;">jpgURLRequest</span><span style="color: Gray;">.</span><span style="color: Teal;">data</span><span style="color: Gray;"> = </span><span style="color: Blue;">jpgStream</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//推送图片数据到服务器端</span><span style="color: Gray;"><br /></span><span style="color: Blue;">navigateToURL</span><span style="color: Olive;">(</span><span style="color: Blue;">jpgURLRequest</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">_blank</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">//用urlLoader的情况,需要指明Data数据是一个包含原始二进制数据的 ByteArray 对象</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//loader.dataFormat = URLLoaderDataFormat.BINARY;</span></div></div>
<p>服务器端:</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">&lt;?php</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$jpg</span><span style="color: Gray;"> = </span><span style="color: Blue;">gzuncompress</span><span style="color: Olive;">(</span><span style="color: #00008b;">$GLOBALS</span><span style="color: Olive;">[</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">HTTP_RAW_POST_DATA</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">])</span><span style="color: Gray;">;<br /></span><span style="color: Blue;">header</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Content-Type: image/jpeg</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Green;">echo</span><span style="color: Gray;"> </span><span style="color: #00008b;">$jpg</span><span style="color: Gray;">;<br /></span><span style="color: Blue;">?&gt;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://hirokimo.com/?feed=rss2&amp;p=49</wfw:commentRss>
		</item>
		<item>
		<title>搞了一个as3的开源项目到google code上</title>
		<link>http://hirokimo.com/?p=45</link>
		<comments>http://hirokimo.com/?p=45#comments</comments>
		<pubDate>Wed, 24 Dec 2008 03:27:18 +0000</pubDate>
		<dc:creator>hirokimo</dc:creator>
		
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://hirokimo.com/?p=45</guid>
		<description><![CDATA[只是为了自己备份下写过的功能而已,如果谁有兴趣也可以去checkout下来.注释和文档很完整的.
名叫astrois,会不断更新:
http://code.google.com/p/astrois/
IE支持在线文档地址:
http://astrois.googlecode.com/svn/trunk/docs/index.html
]]></description>
			<content:encoded><![CDATA[<p>只是为了自己备份下写过的功能而已,如果谁有兴趣也可以去checkout下来.注释和文档很完整的.<br />
名叫astrois,会不断更新:<br />
<a href="http://code.google.com/p/astrois/">http://code.google.com/p/astrois/</a><br />
IE支持在线文档地址:<br />
<a href="http://astrois.googlecode.com/svn/trunk/docs/index.html">http://astrois.googlecode.com/svn/trunk/docs/index.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://hirokimo.com/?feed=rss2&amp;p=45</wfw:commentRss>
		</item>
		<item>
		<title>flash里的背景平铺</title>
		<link>http://hirokimo.com/?p=41</link>
		<comments>http://hirokimo.com/?p=41#comments</comments>
		<pubDate>Mon, 01 Dec 2008 10:29:38 +0000</pubDate>
		<dc:creator>hirokimo</dc:creator>
		
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://hirokimo.com/?p=41</guid>
		<description><![CDATA[其实有很多方法实现，这里就按播放器的版本从低到高的实现方法来说好了：
1.载入位图后duplicateMovieClip
如果播放器必须发布成]]></description>
			<content:encoded><![CDATA[<p>其实有很多方法实现，这里就按播放器的版本从低到高的实现方法来说好了：</p>
<p>1.载入位图后duplicateMovieClip<br />
如果播放器必须发布成<=7，就只能使用以下方法，原理就是载入一个swf,它的库里有个包含linkID的位图movieclip，attachMovie后遍历duplicateMovieClip到舞台上。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Teal;">a</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;"> = </span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Teal;">floor</span><span style="color: Olive;">(</span><span style="color: Teal;">Stage</span><span style="color: Gray;">.</span><span style="color: Teal;">width</span><span style="color: Gray;"> </span><span style="color: #8b0000;">/</span><span style="color: Red;"> img_width);</span></li>
<li><span style="color: Red;">var b:Number = Math.floor(Stage.height </span><span style="color: #8b0000;">/</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">img_height</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">for</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">i</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;">&lt;=</span><span style="color: Teal;">b</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">j</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">; </span><span style="color: Blue;">j</span><span style="color: Gray;">&lt;=</span><span style="color: Teal;">a</span><span style="color: Gray;">; </span><span style="color: Blue;">j</span><span style="color: Gray;">++</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">bg_mc</span><span style="color: Gray;">.</span><span style="color: Teal;">duplicateMovieClip</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">bg_</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Blue;">i</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">_</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Blue;">j</span><span style="color: Gray;">, </span><span style="color: Blue;">bg_mc</span><span style="color: Gray;">.</span><span style="color: Teal;">getNextHighestDepth</span><span style="color: Olive;">()</span><span style="color: Gray;">, </span><span style="color: Olive;">{</span><span style="color: Teal;">_x</span><span style="color: Gray;">:</span><span style="color: Blue;">j</span><span style="color: Gray;">*</span><span style="color: Blue;">img_width</span><span style="color: Gray;">, </span><span style="color: Teal;">_y</span><span style="color: Gray;">:</span><span style="color: Blue;">i</span><span style="color: Gray;">*</span><span style="color: Blue;">img_height</span><span style="color: Olive;">})</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>2.载入位图draw后，生成bitmap平铺。<br />
如果播放器可以发布成8，就可以使用以下方法。其实原理和1差不多，不过8开始引入了Bitmap，因为平铺的是bitmap，所以肯定比1更节约资源。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">bmpData</span><span style="color: Gray;">:</span><span style="color: Teal;">BitmapData</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">BitmapData</span><span style="color: Olive;">(</span><span style="color: Blue;">img_width</span><span style="color: Gray;">, </span><span style="color: Blue;">img_height</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">bmpData</span><span style="color: Gray;">.</span><span style="color: Teal;">draw</span><span style="color: Olive;">(</span><span style="color: Blue;">img_target</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">i</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span><span style="color: Blue;">i</span><span style="color: Gray;">&lt;</span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Teal;">ceil</span><span style="color: Olive;">(</span><span style="color: Blue;">h</span><span style="color: #8b0000;">/</span><span style="color: Red;">img_height);i++)</span></li>
<li><span style="color: Red;"> {</span></li>
<li><span style="color: Red;">&nbsp; &nbsp;&nbsp; for(var j:Number = 0;j&lt;Math.ceil(w</span><span style="color: #8b0000;">/i</span><span style="color: Blue;">mg_width</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span><span style="color: Blue;">j</span><span style="color: Gray;">++</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bmp</span><span style="color: Gray;">:</span><span style="color: Blue;">Bitmap</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Bitmap</span><span style="color: Olive;">(</span><span style="color: Blue;">bmpData</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">bmp</span><span style="color: Gray;">.</span><span style="color: Teal;">y</span><span style="color: Gray;"> = </span><span style="color: Blue;">img_height</span><span style="color: Gray;">*</span><span style="color: Blue;">i</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">bmp</span><span style="color: Gray;">.</span><span style="color: Teal;">x</span><span style="color: Gray;"> = </span><span style="color: Blue;">img_width</span><span style="color: Gray;">*</span><span style="color: Blue;">j</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;"> }</span></li></ol></div>
<p>3.载入位图draw后，通过位图填充功能填充graphic子对象。<br />
如果播放器可以发布成9，就可以使用以下方法。9开始引入了位图填充，所以根本不用考虑什么平铺，直接就和Photoshop里的自定义图案填充一样方便。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">bmpData</span><span style="color: Gray;">:</span><span style="color: Teal;">BitmapData</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">BitmapData</span><span style="color: Olive;">(</span><span style="color: Blue;">img_width</span><span style="color: Gray;">, </span><span style="color: Blue;">img_height</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">bmpData</span><span style="color: Gray;">.</span><span style="color: Teal;">draw</span><span style="color: Olive;">(</span><span style="color: Blue;">img_target</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">graphic</span><span style="color: Gray;">:</span><span style="color: Blue;">Graphics</span><span style="color: Gray;"> = </span><span style="color: Blue;">shell</span><span style="color: Gray;">.</span><span style="color: Blue;">graphics</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">graphic</span><span style="color: Gray;">.</span><span style="color: Teal;">beginBitmapFill</span><span style="color: Olive;">(</span><span style="color: Blue;">bmpData</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">graphic</span><span style="color: Gray;">.</span><span style="color: Blue;">drawRect</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Blue;">w</span><span style="color: Gray;">,</span><span style="color: Blue;">h</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">graphic</span><span style="color: Gray;">.</span><span style="color: Teal;">endFill</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li></ol></div>
]]></content:encoded>
			<wfw:commentRss>http://hirokimo.com/?feed=rss2&amp;p=41</wfw:commentRss>
		</item>
		<item>
		<title>as2 对象查看函数</title>
		<link>http://hirokimo.com/?p=39</link>
		<comments>http://hirokimo.com/?p=39#comments</comments>
		<pubDate>Wed, 13 Aug 2008 15:19:47 +0000</pubDate>
		<dc:creator>hirokimo</dc:creator>
		
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://hirokimo.com/?p=39</guid>
		<description><![CDATA[function traceObject(obj:Object, indent:Number):Void {
&#160; &#160; indent = indent ? indent : 0;
&#160; &#160; var&#160;indentString:String = &#34;&#34;;
&#160; &#160; var&#160;i:Number;
&#160; &#160; var&#160;prop:String;
&#160; &#160; var&#160;val;
&#160; &#160; for&#160;(i=0; i&#60;indent; i++) {
&#160; &#160; &#160; &#160; indentString += &#34;&#160;&#34;;
&#160; &#160; }
&#160; &#160; for&#160;(prop in obj) {
&#160; &#160; &#160; &#160; val = obj[prop];
&#160; &#160; &#160; &#160; if&#160;(typeof (val) == &#34;object&#34;) {
&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">traceObject</span><span style="color: Olive;">(</span><span style="color: Blue;">obj</span><span style="color: Gray;">:</span><span style="color: Teal;">Object</span><span style="color: Gray;">, </span><span style="color: Teal;">indent</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Teal;">Void</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Teal;">indent</span><span style="color: Gray;"> = </span><span style="color: Teal;">indent</span><span style="color: Gray;"> ? </span><span style="color: Teal;">indent</span><span style="color: Gray;"> : </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">indentString</span><span style="color: Gray;">:</span><span style="color: Teal;">String</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">i</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">prop</span><span style="color: Gray;">:</span><span style="color: Teal;">String</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">val</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Gray;">=</span><span style="color: Maroon;">0</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;">&lt;</span><span style="color: Teal;">indent</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">indentString</span><span style="color: Gray;"> += </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">prop</span><span style="color: Gray;"> </span><span style="color: Green;">in</span><span style="color: Gray;"> </span><span style="color: Blue;">obj</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">val</span><span style="color: Gray;"> = </span><span style="color: Blue;">obj</span><span style="color: Olive;">[</span><span style="color: Blue;">prop</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Green;">typeof</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">val</span><span style="color: Olive;">)</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">object</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Teal;">trace</span><span style="color: Olive;">(</span><span style="color: Blue;">indentString</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Blue;">prop</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">: [Object]</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">traceObject</span><span style="color: Olive;">(</span><span style="color: Blue;">val</span><span style="color: Gray;">, </span><span style="color: Teal;">indent</span><span style="color: Gray;">+</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">else</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Teal;">trace</span><span style="color: Olive;">(</span><span style="color: Blue;">indentString</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Blue;">prop</span><span style="color: Gray;">+</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Blue;">val</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>方便以后用。</p>
]]></content:encoded>
			<wfw:commentRss>http://hirokimo.com/?feed=rss2&amp;p=39</wfw:commentRss>
		</item>
		<item>
		<title>发布成fp8++的swf中利用bitmapData平滑显示图片</title>
		<link>http://hirokimo.com/?p=32</link>
		<comments>http://hirokimo.com/?p=32#comments</comments>
		<pubDate>Tue, 05 Aug 2008 02:10:30 +0000</pubDate>
		<dc:creator>hirokimo</dc:creator>
		
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://hirokimo.com/?p=32</guid>
		<description><![CDATA[其实在flash7和更早的版本只要用_quality = &#8220;HIGH&#8221;或&#8221;BEST&#8221;就可以控制图片平滑显示了，不过这样有个缺点，所有场景和元素都会平滑，严重消耗资源。
在flash8里adobe不让通过调整_quality来平滑图片了，可以利用bitmapData来替换。
在图片的MovieClipLoader加载完毕的时候：
import flash.display.BitmapData;
function&#160;__onLoadInit(target:MovieClip):Void {
&#160; &#160; var&#160;bd:BitmapData = new flash.display.BitmapData(target._width, target._height);
&#160; &#160; bd.draw(target);
&#160; &#160; target.attachBitmap(bd, 1, &#34;auto&#34;, true);
}
然后，这个target就被平滑的bitmapData替换掉了。
不过adobe似乎忘记了他对bitmapData的安全限制，fp9以下的客户端根本无法跨域draw到bitmapData，即使是fp9 plus，也要去loadPolicyFile，所以当图片分布在很多台服务器上的时候，根本没有什么好的办法解决这个问题，总不至于每打开一个app就遍历去加载几十个crossdomain.xml吧。
你干脆就不要让MovieClipLoader加载他出来，这样就没什么安全性问题了，这个世界也清净了，既然能加载出来，又不让draw，自相矛盾的啊，倒不如用回7算了。
]]></description>
			<content:encoded><![CDATA[<p>其实在flash7和更早的版本只要用_quality = &#8220;HIGH&#8221;或&#8221;BEST&#8221;就可以控制图片平滑显示了，不过这样有个缺点，所有场景和元素都会平滑，严重消耗资源。<br />
在flash8里adobe不让通过调整_quality来平滑图片了，可以利用bitmapData来替换。<br />
在图片的MovieClipLoader加载完毕的时候：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Teal;">display</span><span style="color: Gray;">.</span><span style="color: Teal;">BitmapData</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">__onLoadInit</span><span style="color: Olive;">(</span><span style="color: Teal;">target</span><span style="color: Gray;">:</span><span style="color: Teal;">MovieClip</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Teal;">Void</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bd</span><span style="color: Gray;">:</span><span style="color: Teal;">BitmapData</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">flash</span><span style="color: Gray;">.</span><span style="color: Teal;">display</span><span style="color: Gray;">.</span><span style="color: Teal;">BitmapData</span><span style="color: Olive;">(</span><span style="color: Teal;">target</span><span style="color: Gray;">.</span><span style="color: Teal;">_width</span><span style="color: Gray;">, </span><span style="color: Teal;">target</span><span style="color: Gray;">.</span><span style="color: Teal;">_height</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">bd</span><span style="color: Gray;">.</span><span style="color: Teal;">draw</span><span style="color: Olive;">(</span><span style="color: Teal;">target</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Teal;">target</span><span style="color: Gray;">.</span><span style="color: Teal;">attachBitmap</span><span style="color: Olive;">(</span><span style="color: Blue;">bd</span><span style="color: Gray;">, </span><span style="color: Maroon;">1</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">auto</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>然后，这个target就被平滑的bitmapData替换掉了。<br />
不过adobe似乎忘记了他对bitmapData的安全限制，fp9以下的客户端根本无法跨域draw到bitmapData，即使是fp9 plus，也要去loadPolicyFile，所以当图片分布在很多台服务器上的时候，根本没有什么好的办法解决这个问题，总不至于每打开一个app就遍历去加载几十个crossdomain.xml吧。<br />
你干脆就不要让MovieClipLoader加载他出来，这样就没什么安全性问题了，这个世界也清净了，既然能加载出来，又不让draw，自相矛盾的啊，倒不如用回7算了。</p>
]]></content:encoded>
			<wfw:commentRss>http://hirokimo.com/?feed=rss2&amp;p=32</wfw:commentRss>
		</item>
		<item>
		<title>fdt升级后非常郁闷</title>
		<link>http://hirokimo.com/?p=29</link>
		<comments>http://hirokimo.com/?p=29#comments</comments>
		<pubDate>Tue, 23 Oct 2007 03:52:20 +0000</pubDate>
		<dc:creator>hirokimo</dc:creator>
		
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://hirokimo.com/?p=29</guid>
		<description><![CDATA[每次build项目的时候都会出现假死，有时候就变成真死了。搞得每次切换项目后都提心吊胆的。
记得之前的版本不是这样的啊，是后台自动build，而且不会影响到前面的操作。准备用一段时间后再换回旧的试试感觉。
更郁闷的是，操作快一点经常会导致eclipse假死并被down掉（当然，我没有开自动build）。
总之就是不如之前的版本顺利，倒是反而用flex builder写Focuswing的过程中，一次都没有出现过问题。
所以我感觉，如果写as2的话，没什么必要升级fdt。如果写as3的话，用fb好了。
]]></description>
			<content:encoded><![CDATA[<p>每次build项目的时候都会出现假死，有时候就变成真死了。搞得每次切换项目后都提心吊胆的。<br />
记得之前的版本不是这样的啊，是后台自动build，而且不会影响到前面的操作。准备用一段时间后再换回旧的试试感觉。<br />
更郁闷的是，操作快一点经常会导致eclipse假死并被down掉（当然，我没有开自动build）。<br />
总之就是不如之前的版本顺利，倒是反而用flex builder写Focuswing的过程中，一次都没有出现过问题。<br />
所以我感觉，如果写as2的话，没什么必要升级fdt。如果写as3的话，用fb好了。</p>
]]></content:encoded>
			<wfw:commentRss>http://hirokimo.com/?feed=rss2&amp;p=29</wfw:commentRss>
		</item>
	</channel>
</rss>
