﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-我的程序员之路</title><link>http://www.cnblogs.com/zhangsir/</link><description>学无止境</description><language>zh-cn</language><lastBuildDate>Wed, 23 Jul 2008 22:19:54 GMT</lastBuildDate><pubDate>Wed, 23 Jul 2008 22:19:54 GMT</pubDate><ttl>60</ttl><item><title>js 客户端动态调整图片宽度 解决方案</title><link>http://www.cnblogs.com/zhangsir/archive/2008/07/19/1246707.html</link><dc:creator>zhangsir</dc:creator><author>zhangsir</author><pubDate>Sat, 19 Jul 2008 09:59:00 GMT</pubDate><guid>http://www.cnblogs.com/zhangsir/archive/2008/07/19/1246707.html</guid><wfw:comment>http://www.cnblogs.com/zhangsir/comments/1246707.html</wfw:comment><comments>http://www.cnblogs.com/zhangsir/archive/2008/07/19/1246707.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhangsir/comments/commentRss/1246707.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhangsir/services/trackbacks/1246707.html</trackback:ping><description><![CDATA[<p>一个项目需要动态处理客户端页面中图片的宽度，防止页面被过宽的图片撑变形。</p>
<p>过程就不叙说了。最终代码如下：&nbsp;</p>
<div class="cnblogs_code">
<p><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;language</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">javascript</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;window.onload</span><span style="color: #000000">=</span><span style="color: #0000ff">function</span><span style="color: #000000">()<br />
&nbsp;&nbsp;&nbsp;&nbsp;{</span></p>
<p><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgWidthToLimit=580;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//对图片的限制宽度<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;imgCongObj&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ImgContainer.getElementsByTagName(</span><span style="color: #000000">"</span><span style="color: #000000">IMG</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//获取id为ImgContainer的页面容器（div、table等）中的所有img对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">imgCongObj.length;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;image&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Image();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.src</span><span style="color: #000000">=</span><span style="color: #000000">imgCongObj[i].src;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.i</span><span style="color: #000000">=</span><span style="color: #000000">i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.onreadystatechange</span><span style="color: #000000">=</span><span style="color: #0000ff">function</span><span style="color: #000000">(){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(image.readyState</span><span style="color: #000000">==</span><span style="color: #000000">"</span><span style="color: #000000">complete</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;w</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;parseInt(image.width);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(w</span><span style="color: #000000">&gt;</span><span style="color: #000000">imgWidthToLimit</span><span style="color: #000000">)&nbsp;imgCongObj[</span><span style="color: #0000ff">this</span><span style="color: #000000">.i].width</span><span style="color: #000000">=</span><span style="color: #000000">imgWidthToLimit</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">/</span><span style="color: #000000">script&gt;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>参考资料：</p>
<p>&lt;script&gt; <br />
var image = new Image(); <br />
image.src = '<a href="http://www.baidu.com/img/logo.gif" target="_blank">http://www.baidu.com/img/logo.gif</a>'; <br />
image.onreadystatechange=function(){ <br />
if (image.readyState=="complete") { <br />
alert(["图片大小是:",image.width,image.height]); <br />
} <br />
} <br />
&lt;/script&gt; </p>
<p>解决了客户端图片没有加载而读取图片宽度时为0的问题。此法不稳定。后来我加到window.onload事件中&nbsp; 一切问题就解决了。</p>
<img src ="http://www.cnblogs.com/zhangsir/aggbug/1246707.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41264/" target="_blank">[新闻]马云致信阿里巴巴全体员工号召准备过冬</a>]]></description></item><item><title>js ceil函数</title><link>http://www.cnblogs.com/zhangsir/archive/2008/07/14/1242635.html</link><dc:creator>zhangsir</dc:creator><author>zhangsir</author><pubDate>Mon, 14 Jul 2008 08:33:00 GMT</pubDate><guid>http://www.cnblogs.com/zhangsir/archive/2008/07/14/1242635.html</guid><wfw:comment>http://www.cnblogs.com/zhangsir/comments/1242635.html</wfw:comment><comments>http://www.cnblogs.com/zhangsir/archive/2008/07/14/1242635.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhangsir/comments/commentRss/1242635.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhangsir/services/trackbacks/1242635.html</trackback:ping><description><![CDATA[<div class="tit">ceil函数<br />
</div>
<table style="table-layout: fixed">
    <tbody>
        <tr>
            <td>
            <div class="cnt" id="blog_text">
            <p>ceil函数的作用是求不小于给定实数的最小整数。</p>
            <p>ceil(2)=ceil(1.2)=cei(1.5)=2.00</p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<br />
<p><font face="Verdana">使用该函数需要包含头文件&lt;math.h&gt;,该函数返回值为浮点型</font></p>
<font face="Verdana">
<p><br />
Run-Time Library Referenceceil, ceilfCalculates the ceiling of a value.</p>
<p><br />
double ceil( <br />
&nbsp;&nbsp; double x <br />
);<br />
float ceil(<br />
&nbsp;&nbsp; float x<br />
);&nbsp; // C++ only<br />
long double ceil(<br />
&nbsp;&nbsp; long double x<br />
);&nbsp; // C++ only<br />
float ceilf(<br />
&nbsp;&nbsp; float x<br />
);</p>
<p>Parameter<br />
x <br />
Floating-point value. <br />
Return Value<br />
The ceil function returns a double value representing the smallest integer that is greater than or equal to x. There is no error return.</p>
<p>Input SEH Exception Matherr Exception <br />
&#177; QNAN,IND none _DOMAIN </p>
<p>ceil has an implementation that uses Streaming SIMD Extensions 2 (SSE2). See _set_SSE2_enable for information and restrictions on using the SSE2 implementation.</p>
<p>Remarks<br />
C++ allows overloading, so you can call overloads of ceil. In a C program, ceil always takes and returns a double.</p>
<p>Requirements<br />
Routine Required header Compatibility <br />
ceil, ceilf &lt;math.h&gt; ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP </p>
<p>For additional compatibility information, see Compatibility in the Introduction.</p>
<p>Libraries</p>
<p>All versions of the C run-time libraries.</p>
<p>Example<br />
See the example for floor.<br />
</font></p>
<img src ="http://www.cnblogs.com/zhangsir/aggbug/1242635.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41263/" target="_blank">[新闻]comScore 公布 6 月美国 TOP10 社会化网络排名</a>]]></description></item><item><title>flsh [cs 3.0]从html中得到flashvars中得变量的值 </title><link>http://www.cnblogs.com/zhangsir/archive/2008/07/09/1239046.html</link><dc:creator>zhangsir</dc:creator><author>zhangsir</author><pubDate>Wed, 09 Jul 2008 08:33:00 GMT</pubDate><guid>http://www.cnblogs.com/zhangsir/archive/2008/07/09/1239046.html</guid><wfw:comment>http://www.cnblogs.com/zhangsir/comments/1239046.html</wfw:comment><comments>http://www.cnblogs.com/zhangsir/archive/2008/07/09/1239046.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhangsir/comments/commentRss/1239046.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhangsir/services/trackbacks/1239046.html</trackback:ping><description><![CDATA[<div class="c" id="p_tpc"></div>
<div class="tpc_content" id="read_tpc">在as2.0中我们要得到flashvars中的值，比如说temp,我们用_root.temp就可以了。<br />
<br />
在as3.0中我们用这样的方法：<br />
<h6 class="quote">
<div class="cnblogs_code"><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;temp</span><span style="color: #000000">=</span><span style="color: #0000ff">this</span><span style="color: #000000">.loaderInfo.parameters[</span><span style="color: #000000">"</span><span style="color: #000000">temp</span><span style="color: #000000">"</span><span style="color: #000000">];</span></div>
</h6>
</div>
 <img src ="http://www.cnblogs.com/zhangsir/aggbug/1239046.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41262/" target="_blank">[新闻]万众期待 iPhone 3G 16GB上市两天破万</a>]]></description></item><item><title>flash cs3 的 *标签申明 </title><link>http://www.cnblogs.com/zhangsir/archive/2008/07/09/1238802.html</link><dc:creator>zhangsir</dc:creator><author>zhangsir</author><pubDate>Wed, 09 Jul 2008 04:32:00 GMT</pubDate><guid>http://www.cnblogs.com/zhangsir/archive/2008/07/09/1238802.html</guid><wfw:comment>http://www.cnblogs.com/zhangsir/comments/1238802.html</wfw:comment><comments>http://www.cnblogs.com/zhangsir/archive/2008/07/09/1238802.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhangsir/comments/commentRss/1238802.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhangsir/services/trackbacks/1238802.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">在AS3中引入了标签，新的标签可以和循环体一起使用。例如，现在有两个嵌套的循环体，如果想要在内循环体中break掉外循环，一般使用下面的方法：</p>
<p style="text-indent: 2em">var&nbsp;i:Number; </p>
<p style="text-indent: 2em">var&nbsp;j:Number; </p>
<p style="text-indent: 2em">var&nbsp;exit:Boolean&nbsp;=&nbsp;false; </p>
<p style="text-indent: 2em">for&nbsp;(i=0;&nbsp;i&lt;10;&nbsp;i++)&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j=0;&nbsp;j&lt;10;&nbsp;j++)&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i&nbsp;&gt;&nbsp;3&nbsp;&amp;&amp;&nbsp;j&nbsp;&gt;&nbsp;3)&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit&nbsp;=&nbsp;true; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(exit)&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">}</p>
<p style="text-indent: 2em">在引入了新的标签以后，可以使用下面的方法从内循环体中直接break掉外循环体：</p>
<p style="text-indent: 2em">var&nbsp;i:Number; </p>
<p style="text-indent: 2em">var&nbsp;j:Number; </p>
<p style="text-indent: 2em">mainLoop:&nbsp;for&nbsp;(i=0;&nbsp;i&lt;10;&nbsp;i++)&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j=0;&nbsp;j&lt;10;&nbsp;j++)&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i&nbsp;&gt;&nbsp;3&nbsp;&amp;&amp;&nbsp;j&nbsp;&gt;&nbsp;3)&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break&nbsp;mainLoop; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">}</p>
<p style="text-indent: 2em">在第一个循环体上设置了mainLoop的标签，因此在循环体内任何地方使用break mainLoop直接中止外循环。</p>
<p style="text-indent: 2em">*检测鼠标离开Movie的动作</p>
<p style="text-indent: 2em">在以前的AS版本中，你无法做到检测鼠标是否还在Flash Movie上。因此影片不能检测到用户是否在关注着当前的Movie。另外一个问题是，如果使用了自定义的鼠标样式，在鼠标移出Movie后，自定义的鼠标还是继续停留在影片上，而不能正确的显示鼠标当前的位置。</p>
<p style="text-indent: 2em">现在，AS3允许你通过监听stage的mouseLeave行为来捕获鼠标移出Movie的动作。mouseLeave行为在鼠标移出Movie的时候执行。但是现在并没有mouseEnter事件，不过你可以通过使用mouseMove来设置。下面的例子中使用了一个方框来作为自定义的鼠标：</p>
<p style="text-indent: 2em">package&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;import&nbsp;flash.display.Sprite; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;import&nbsp;flash.events.Event; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;import&nbsp;flash.events.MouseEvent; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;import&nbsp;flash.ui.Mouse; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;class&nbsp;Test&nbsp;extends&nbsp;Sprite&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;var&nbsp;cursor:Sprite&nbsp;=&nbsp;new&nbsp;Sprite(); </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;Test()&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cursor.graphics.beginFill(0xFF); </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cursor.graphics.drawRect(0,&nbsp;0,&nbsp;25,&nbsp;25); </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addChild(cursor); </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stage.addEventListener(Event.MOUSE_LEAVE,&nbsp;cursorHide); </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stage.addEventListener(MouseEvent.MOUSE_MOVE,&nbsp;cursorFollow); </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mouse.hide(); </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;cursorHide(evt:Event):void&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cursor.visible&nbsp;=&nbsp;false; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;cursorFollow(evt:MouseEvent):void&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!cursor.visible)&nbsp;cursor.visible&nbsp;=&nbsp;true; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cursor.x&nbsp;=&nbsp;stage.mouseX; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cursor.y&nbsp;=&nbsp;stage.mouseY; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;evt.updateAfterEvent(); </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">}</p>
<p style="text-indent: 2em">当鼠标离开Movie的时候，鼠标指针将被隐藏。当鼠标再次移动到Movie上的时候，mouseMove会被执行，然后显示鼠标。 </p>
<img src ="http://www.cnblogs.com/zhangsir/aggbug/1238802.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41262/" target="_blank">[新闻]万众期待 iPhone 3G 16GB上市两天破万</a>]]></description></item><item><title>有关Flash ActionScript 3编程的总结</title><link>http://www.cnblogs.com/zhangsir/archive/2008/07/09/1238759.html</link><dc:creator>zhangsir</dc:creator><author>zhangsir</author><pubDate>Wed, 09 Jul 2008 03:28:00 GMT</pubDate><guid>http://www.cnblogs.com/zhangsir/archive/2008/07/09/1238759.html</guid><wfw:comment>http://www.cnblogs.com/zhangsir/comments/1238759.html</wfw:comment><comments>http://www.cnblogs.com/zhangsir/archive/2008/07/09/1238759.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhangsir/comments/commentRss/1238759.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhangsir/services/trackbacks/1238759.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">最近用AS3写一些项目，在编程过程中，遇到不少问题，同时也有一些收获和心得。现在贴出来希望对大家在AS3编程有一些帮助。如果你发现有说得不对的地方，你可以指出来，大家一起来讨论。</p>
<p style="text-indent: 2em">1、AS3的强制类型转换</p>
<p style="text-indent: 2em">我之前一直以为是没有这个功能的，而最近在看一些文档，发现这个功能是有的。目前总结下来有两种写法： </p>
<ol>
    <li>var loader:URLLoader = URLLoader(event.target);
    <p>&nbsp;</p>
    <p style="text-indent: 2em">不知道这种写法是借鉴那种编程语言，反正我没有见过。</p>
    <p style="text-indent: 2em">补充这个语法说明：<a href="http://livedocs.adobe.com/flash/8_cn/main/00001211.html">http://livedocs.adobe.com/flash/8_cn/main/00001211.html</a> </p>
    <li>var loader:URLLoader = event.target as URLLoader;
    <p>&nbsp;</p>
    <p style="text-indent: 2em">这种写法是借鉴VB.Net编程语言，唉！AS3语法真得一个大杂烩。</p>
    </li>
</ol>
<p>&nbsp;</p>
<p style="text-indent: 2em">2、URLStream和URLLoader</p>
<p style="text-indent: 2em">URLStream在文本文件数据方面可以支持多种字符编码。</p>
<p style="text-indent: 2em">URLLoader在进过测试后，发现除UTF-8字符编码外，其他字符编码读过来的数据都是乱码。</p>
<p style="text-indent: 2em">可通过ByteArray对象字符编码转换(感谢abc12hjc提供补充代码)：</p>
<p style="text-indent: 2em">public&nbsp;class&nbsp;MoxieAS&nbsp;extends&nbsp;Sprite </p>
<p style="text-indent: 2em">{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;MoxieAS&nbsp;() </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;stream:URLStream&nbsp;=&nbsp;new&nbsp;URLStream; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stream.addEventListener(Event.COMPLETE,&nbsp;complete); </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stream.load(new&nbsp;URLRequest("ttt.xml"));&nbsp;&nbsp;//&nbsp;&nbsp;&lt;root&gt;&lt;a&nbsp;/&gt;&lt;b&nbsp;/&gt;&lt;c&nbsp;/&gt;&lt;/root&gt; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;complete&nbsp;(event:Event):void </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;{ </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;stream:URLStream&nbsp;=&nbsp;event.target&nbsp;as&nbsp;URLStream; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;xml:XML&nbsp;=&nbsp;XML(stream.readUTFBytes(stream.bytesAvailable)); </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace(xml.*.length());&nbsp;&nbsp;//&nbsp;&nbsp;output&nbsp;3 </p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;} </p>
<p style="text-indent: 2em">}</p>
<p style="text-indent: 2em">具体用那个方式就看实际功能需求了。</p>
<p style="text-indent: 2em">3、URLRequest</p>
<p style="text-indent: 2em">URLStream、URLLoader、Loader等读取外部数据的类，里的load方法参数值是URLRequest对象。我在编程过程总是喜欢直接写地址字符串，原来习惯改过来看样子要花点时间了。</p>
<p style="text-indent: 2em">4、Loader</p>
<p style="text-indent: 2em">在使用Loader来加载数据时，添加侦听事件时，注意一定要给Loader的 contentLoaderInfo属性增加事件，而不是给Loader对象增加事件。我就是因为加错对象（关键是编译时还没有报错），郁闷得差点要把电脑给扔了。</p>
<p style="text-indent: 2em">错误写法：</p>
<p style="text-indent: 2em">　var loader:Loader = new Loader();&nbsp;</p>
<p style="text-indent: 2em">　loader.addEventListener(Event.COMPLETE, completeHandler);</p>
<p style="text-indent: 2em">　loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);&nbsp;</p>
<p style="text-indent: 2em">　loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);</p>
<p style="text-indent: 2em">正确写法：</p>
<p style="text-indent: 2em">　var loader:Loader = new Loader(); </p>
<p style="text-indent: 2em">　loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);</p>
<p style="text-indent: 2em">　loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); </p>
<p style="text-indent: 2em">　loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);</p>
<p style="text-indent: 2em">5、Loader加载过来的数据类型</p>
<p style="text-indent: 2em">大家知道Loader是用来代替原来 MovieClip的loadMovie功能，用于加载外部的图片文件，SWF文件。 </p>
<ul>
    <li>如果加载图片文件（jpg，gif，png等）时，Loader.content得到数据类型是Bitmap对象；
    <li>如果加载SWF文件（flash 9 版本）时，Loader.content得到数据类型是MovieClip对象；
    <li>如果加载SWF文件（flash 9 以前版本） 时， Loader.content得到数据类型是AVM1Movie对象；</li>
</ul>
<p>&nbsp;</p>
<p style="text-indent: 2em">6、stage</p>
<p style="text-indent: 2em">在调试flash过程发现，如果把swf文件放到html页面后，stage.stageWidth和stage.stageHeight在第一次加载调用时，他们的值为空值；</p>
<p style="text-indent: 2em">7、 AVM1Movie</p>
<p style="text-indent: 2em">如果是AVM1Movie 对象时，就不能直接调用stop，play，gotoAndStop等原来MovieClip对象的功能了，而且不能将AVM1Movie 对象转换成MovieClip对象。目前解决办法：一种是用flash cs3 重新生成 flash 9的swf文件；另一种是国外网站有说能AVM1和AVM2两个虚拟机相互调用的方式（贴一个地址）；</p>
<p style="text-indent: 2em">8、mask</p>
<p style="text-indent: 2em">在使用遮罩功能，发现一个问题，如果不把用于遮罩的显示元件通过addChild方法添加到同一级的显示容器里的话，遮罩效果就显示不正常，不知道这个是不是一个bug。我差点因为这个问题而放弃AS3改用AS2了。<br />
<br />
<br />
转自（<font face="Verdana">http://blog.163.com/lihua61622137@126/blog/static/553499122007112832153684/</font>）</p>
<img src ="http://www.cnblogs.com/zhangsir/aggbug/1238759.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41262/" target="_blank">[新闻]万众期待 iPhone 3G 16GB上市两天破万</a>]]></description></item><item><title>flash cs3 FileReference .onUploadCompleteData 事件侦听器</title><link>http://www.cnblogs.com/zhangsir/archive/2008/07/08/1237941.html</link><dc:creator>zhangsir</dc:creator><author>zhangsir</author><pubDate>Tue, 08 Jul 2008 01:44:00 GMT</pubDate><guid>http://www.cnblogs.com/zhangsir/archive/2008/07/08/1237941.html</guid><wfw:comment>http://www.cnblogs.com/zhangsir/comments/1237941.html</wfw:comment><comments>http://www.cnblogs.com/zhangsir/archive/2008/07/08/1237941.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhangsir/comments/commentRss/1237941.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhangsir/services/trackbacks/1237941.html</trackback:ping><description><![CDATA[参考：<font face="Verdana">http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/net/FileReference.html#event:uploadCompleteData</font>
<img src ="http://www.cnblogs.com/zhangsir/aggbug/1237941.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41261/" target="_blank">[新闻]张宝全正式声明中国版HD-DVD涉嫌盗用EVD技术</a>]]></description></item><item><title>js中escape,encodeURI,encodeURIComponent三个函数的区别</title><link>http://www.cnblogs.com/zhangsir/articles/1235819.html</link><dc:creator>zhangsir</dc:creator><author>zhangsir</author><pubDate>Fri, 04 Jul 2008 09:01:00 GMT</pubDate><guid>http://www.cnblogs.com/zhangsir/articles/1235819.html</guid><wfw:comment>http://www.cnblogs.com/zhangsir/comments/1235819.html</wfw:comment><comments>http://www.cnblogs.com/zhangsir/articles/1235819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhangsir/comments/commentRss/1235819.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhangsir/services/trackbacks/1235819.html</trackback:ping><description><![CDATA[<div class="postTitle">js对文字进行编码涉及3个函数：escape,encodeURI,encodeURIComponent，相应3个解码函数：unescape,decodeURI,decodeURIComponent</div>
<p>1、&nbsp;&nbsp; 传递参数时需要使用encodeURIComponent，这样组合的url才不会被#等特殊字符截断。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>例如：&lt;script language="javascript"&gt;document.write('&lt;a href="http://passport.baidu.com/?logout&amp;aid=7&amp;u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'"&gt;退出&lt;/a&gt;');&lt;/script&gt;</p>
<p>2、&nbsp;&nbsp; 进行url跳转时可以整体使用encodeURI</p>
<p>例如：Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&amp;ct=21");</p>
<p>3、&nbsp;&nbsp; js使用数据时可以使用escape</p>
<span class="h_in">[Huoho.Com编辑]</span>
<p>例如：搜藏中history纪录。</p>
<p>4、&nbsp;&nbsp; escape对0-255以外的unicode值进行编码时输出%u****格式，其它情况下escape，encodeURI，encodeURIComponent编码结果相同。</p>
<p><br />
最多使用的应为encodeURIComponent，它是将中文、韩文等特殊字符转换成utf-8格式的url编码，所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持（form中的编码方式和当前页面编码方式相同）</p>
<p>escape不编码字符有69个：*，+，-，.，/，@，_，0-9，a-z，A-Z</p>
<p>encodeURI不编码字符有82个：!，#，$，&amp;，'，(，)，*，+，,，-，.，/，:，;，=，?，@，_，~，0-9，a-z，A-Z</p>
<p>encodeURIComponent不编码字符有71个：!， '，(，)，*，-，.，_，~，0-9，a-z，A-Z<br />
<br />
</p>
<img src ="http://www.cnblogs.com/zhangsir/aggbug/1235819.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41259/" target="_blank">[新闻]百度TV：高效率的“奥运事件眼球捕手”</a>]]></description></item><item><title>flash as滤镜效果总结</title><link>http://www.cnblogs.com/zhangsir/archive/2008/07/03/1234738.html</link><dc:creator>zhangsir</dc:creator><author>zhangsir</author><pubDate>Thu, 03 Jul 2008 06:02:00 GMT</pubDate><guid>http://www.cnblogs.com/zhangsir/archive/2008/07/03/1234738.html</guid><wfw:comment>http://www.cnblogs.com/zhangsir/comments/1234738.html</wfw:comment><comments>http://www.cnblogs.com/zhangsir/archive/2008/07/03/1234738.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhangsir/comments/commentRss/1234738.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhangsir/services/trackbacks/1234738.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;　用as做滤镜效果，每种滤镜效果对应一个类，这些类都在Macromedia\Flash 8 Beta 2\zh_cn\First Run\Classes\FP8\flash\filters这个文件夹里 </p>
<p>　　一、渐变斜角——GradientBevelFilter类</p>
<p>　　二、投影——DropShadowFilter类</p>
<p>　　三、模糊——BlurFilter类（这个最容易了，参数少）</p>
<p>　　四、发光——GlowFilter类</p>
<p>　　五、渐变发光——GradientGlowFilter类</p>
<p>　　六、斜角——BevelFilter类 </p>
<p>　　我暂时就只知道这6个 </p>
<p>　　做法是用new关键字新建一个相应类的对象，暂时就叫myfilters吧，然后把这个对象添加进一个数组filters_array，最后把这个数组赋值给mc的fliters属性，大功告成。</p>
<p>　　我想其中关键应该就是创建对象时如何设置里面的参数吧，我想滤镜的面板大家都很熟悉的了，那么，我就把as添加滤镜的一些参数和它们的面板相对照，这样可能更容易理解。 </p>
<p>　　下面逐个举例（都是帮助里的例子啦，里面的参数名字都是可以改的，不过我觉得就用那些名字就蛮好），例子里都有函数setUpFlatRectangle（也有叫createRectangle的），是用来做一个方形mc的。 </p>
<p class="code">function setUpFlatRectangle(w:Number, h:Number, bgColor:Number, name:String):MovieClip {<br />
var mc:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth());<br />
mc.beginFill(bgColor);<br />
mc.lineTo(w, 0);<br />
mc.lineTo(w, h);<br />
mc.lineTo(0, h);<br />
mc.lineTo(0, 0);<br />
return mc;<br />
}</p>
<p>　　直接把脚本复制到主场景的第一帧就ok了，不要忘记上面的函数哦，要注意改函数名的 </p>
<p>　　<strong>一、渐变斜角——GradientBevelFilter类</strong></p>
<p>　　面板：截图暂无，就是截的滤镜面板啦，各位大哥请麻烦自己打开flash对照吧</p>
<p>　　脚本：</p>
<p class="code">import flash.filters.GradientBevelFilter;<br />
import flash.filters.BitmapFilter;<br />
var art:MovieClip = setUpFlatRectangle(150, 150, 0xCCCCCC, "gradientBevelFilterExample");<br />
//创建新的mc，实例名：art<br />
var distance:Number = 5;<br />
var angleInDegrees:Number = 225; // opposite 45 degrees<br />
var colors:Array = [0xFFFFFF, 0xCCCCCC, 0x000000];<br />
var alphas:Array = [1, 0, 1];<br />
var ratios:Array = [0, 128, 255];<br />
var blurX:Number = 8;<br />
var blurY:Number = 8;<br />
var strength:Number = 2;<br />
var quality:Number = 3;<br />
var type:String = "inner";<br />
var knockout:Boolean = true;//设置各个参数<br />
var filter:GradientBevelFilter = new GradientBevelFilter(distance, angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout);//创建斜角滤镜对象filter<br />
var filterArray:Array = new Array();<br />
filterArray.push(filter); //把filter添加进数组filterArray，如果art上有多个滤镜效果，就直接添加进这个数组好了<br />
art.filters = filterArray;//将art的filters属性设置为filterArray </p>
<p>　　下面是脚本中的参数和面板中的参数对比：</p>
<p>　　colors、alphas、ratios用来控制渐变颜色的，colors是色彩，alphas是百分比（这里面是0～1的小数），ratios是偏移量0～255（可以参考Color类）blurX、blurY是就对应面板里的模糊x、模糊y。strength是面板里的强度，是0～255的数；quality是品质，只有1、2、3分别对应低、中、高<br />
distance是距离，默认4.0；type是类型，用字符串表示，例子中的&#8221;inner&#8221;是内侧，还有outer、fuller；knockout是个布尔值，表示是否挖空。</p>
<p>　　<strong>二、投影——DropShadowFilter类</strong> </p>
<p>　　面板：截图暂无，就是截的滤镜面板啦，各位大哥请麻烦自己打开flash对照吧 </p>
<p>脚本：</p>
<p class="code">import flash.filters.DropShadowFilter;<br />
var art:MovieClip = createRectangle(100, 100, 0x003366, "gradientGlowFilterExample");<br />
var distance:Number = 20;<br />
var angleInDegrees:Number = 45;<br />
var color:Number = 0x000000;<br />
var alpha:Number = 0.8;<br />
var blurX:Number = 16;<br />
var blurY:Number = 16;<br />
var strength:Number = 1;<br />
var quality:Number = 3;<br />
var inner:Boolean = false;<br />
var knockout:Boolean = false;<br />
var hideObject:Boolean = false;<br />
var filter:DropShadowFilter = new DropShadowFilter(distance, angleInDegrees, color, alpha, blurX, blurY, strength, quality, inner, knockout, hideObject);<br />
var filterArray:Array = new Array();<br />
filterArray.push(filter);<br />
art.filters = filterArray; </p>
<p>　　下面是脚本中的参数和面板中的参数对比：</p>
<p>Distance是距离；<br />
angleInDegrees是角度0～360<br />
blurX、blurY是模糊x、模糊y<br />
strength是强度，脚本里是0～5的数<br />
quality是品质，只能是1、2、3，分别对应低、中、高<br />
inner是内侧阴影<br />
knockout是挖空<br />
hideObject是隐藏对象 </p>
<p>　　<strong>三、模糊——BlurFilter类（这个最容易了，参数少嘛）</strong> </p>
<p>　　面板：截图暂无，就是截的滤镜面板啦，各位大哥请麻烦自己打开flash对照吧 </p>
<p>脚本：</p>
<p class="code">import flash.filters.BlurFilter;<br />
var rect:MovieClip = createRectangle(100, 100, 0x003366, "BlurFilterExample");<br />
var blurX:Number = 30;<br />
var blurY:Number = 30;<br />
var quality:Number = 3;<br />
var filter:BlurFilter = new BlurFilter(blurX, blurY, quality);<br />
var filterArray:Array = new Array();<br />
filterArray.push(filter);<br />
rect.filters = filterArray; </p>
<p>　　这个就不解释了，就三个参数，前面都介绍过了，下面遇到介绍过的参数就都不介绍了 </p>
<p>　　<strong>四、发光——GlowFilter类</strong> </p>
<p>　　面板：截图暂无，就是截的滤镜面板啦，各位大哥请麻烦自己打开flash对照吧 </p>
<p>脚本：</p>
<p class="code">import flash.filters.GlowFilter;<br />
var rect:MovieClip = createRectangle(100, 100, 0x003366, "gradientGlowFilterExample");<br />
var color:Number = 0x33CCFF;<br />
var alpha:Number = .8;<br />
var blurX:Number = 35;<br />
var blurY:Number = 35;<br />
var strength:Number = 2;<br />
var quality:Number = 3;<br />
var inner:Boolean = false;<br />
var knockout:Boolean = false;<br />
var filter:GlowFilter = new GlowFilter(color, alpha, blurX, blurY, strength, quality, inner, knockout);<br />
var filterArray:Array = new Array();<br />
filterArray.push(filter);<br />
rect.filters = filterArray; </p>
<p>　　<strong>五、渐变发光——GradientGlowFilter类</strong> </p>
<p>　　面板：截图暂无，就是截的滤镜面板啦，各位大哥请麻烦自己打开flash对照吧 </p>
<p>脚本：</p>
<p class="code">import flash.filters.GradientGlowFilter;<br />
var art:MovieClip = createRectangle(100, 100, 0x003366, "gradientGlowFilterExample");<br />
var distance:Number = 0;<br />
var angleInDegrees:Number = 45;<br />
var colors:Array = [0xFFFFFF, 0xFF0000, 0xFFFF00, 0x00CCFF];<br />
var alphas:Array = [0, 1, 1, 1, 1];<br />
var ratios:Array = [0, 63, 126, 255];<br />
var blurX:Number = 50;<br />
var blurY:Number = 50;<br />
var strength:Number = 2.5;<br />
var quality:Number = 3;<br />
var type:String = "outer";<br />
var knockout:Boolean = false;<br />
var filter:GradientGlowFilter = new GradientGlowFilter(distance, angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout);<br />
var filterArray:Array = new Array();<br />
filterArray.push(filter);<br />
art.filters = filterArray; </p>
<p>　　这里的参数跟发光那个很像，需要说明的就是用来设置颜色的那几个数组里的4项依次是表示从外到内的颜色的 </p>
<p>　　<strong>六、斜角——BevelFilter类</strong> </p>
<p>　　面板：截图暂无，就是截的滤镜面板啦，各位大哥请麻烦自己打开flash对照吧 </p>
<p>脚本：</p>
<p class="code">import flash.filters.BevelFilter;<br />
var distance:Number = 5;<br />
var angleInDegrees:Number = 45;<br />
var highlightColor:Number = 0xFFFF00;<br />
var highlightAlpha:Number = 1;<br />
var shadowColor:Number = 0x0000FF;<br />
var shadowAlpha:Number = 1;<br />
var blurX:Number = 10;<br />
var blurY:Number = 10;<br />
var strength:Number = 2;<br />
var quality:Number = 3;<br />
var type:String = "inner";<br />
var knockout:Boolean = false;<br />
var filter:BevelFilter = new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout);<br />
var rect:MovieClip = createRectangle(100, 100, 0x00CC00, "bevelFilterExample");<br />
rect.filters = new Array(filter); </p>
<p>参数：</p>
<p>highlightColor、highlightAlpha设置加亮颜色<br />
shadowColor、shadowAlpha设置阴影颜色</p>
<img src ="http://www.cnblogs.com/zhangsir/aggbug/1234738.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41260/" target="_blank">[新闻]谷歌启动强大引擎 ８月起全球营销成都</a>]]></description></item><item><title>Flash Player Version Detection (abobe 的 flash “自动激活”代码)</title><link>http://www.cnblogs.com/zhangsir/archive/2008/06/26/1230412.html</link><dc:creator>zhangsir</dc:creator><author>zhangsir</author><pubDate>Thu, 26 Jun 2008 06:37:00 GMT</pubDate><guid>http://www.cnblogs.com/zhangsir/archive/2008/06/26/1230412.html</guid><wfw:comment>http://www.cnblogs.com/zhangsir/comments/1230412.html</wfw:comment><comments>http://www.cnblogs.com/zhangsir/archive/2008/06/26/1230412.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhangsir/comments/commentRss/1230412.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhangsir/services/trackbacks/1230412.html</trackback:ping><description><![CDATA[<p><font face="Verdana">//v1.7<br />
// Flash Player Version Detection<br />
// Detect Client Browser type<br />
// Copyright 2005-2007 Adobe Systems Incorporated.&nbsp; All rights reserved.<br />
var isIE&nbsp; = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;<br />
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;<br />
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;</font></p>
<p><font face="Verdana">function ControlVersion()<br />
{<br />
&nbsp;var version;<br />
&nbsp;var axo;<br />
&nbsp;var e;</font></p>
<p><font face="Verdana">&nbsp;// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry</font></p>
<p><font face="Verdana">&nbsp;try {<br />
&nbsp;&nbsp;// version will be set for 7.X or greater players<br />
&nbsp;&nbsp;axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");<br />
&nbsp;&nbsp;version = axo.GetVariable("$version");<br />
&nbsp;} catch (e) {<br />
&nbsp;}</font></p>
<p><font face="Verdana">&nbsp;if (!version)<br />
&nbsp;{<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;// version will be set for 6.X players only<br />
&nbsp;&nbsp;&nbsp;axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;// installed player is some revision of 6.0<br />
&nbsp;&nbsp;&nbsp;// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,<br />
&nbsp;&nbsp;&nbsp;// so we have to be careful. <br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;// default to the first public version<br />
&nbsp;&nbsp;&nbsp;version = "WIN 6,0,21,0";</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;// throws if AllowScripAccess does not exist (introduced in 6.0r47)&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;axo.AllowScriptAccess = "always";</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;// safe to call for 6.0r47 or greater<br />
&nbsp;&nbsp;&nbsp;version = axo.GetVariable("$version");</font></p>
<p><font face="Verdana">&nbsp;&nbsp;} catch (e) {<br />
&nbsp;&nbsp;}<br />
&nbsp;}</font></p>
<p><font face="Verdana">&nbsp;if (!version)<br />
&nbsp;{<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;// version will be set for 4.X or 5.X player<br />
&nbsp;&nbsp;&nbsp;axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");<br />
&nbsp;&nbsp;&nbsp;version = axo.GetVariable("$version");<br />
&nbsp;&nbsp;} catch (e) {<br />
&nbsp;&nbsp;}<br />
&nbsp;}</font></p>
<p><font face="Verdana">&nbsp;if (!version)<br />
&nbsp;{<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;// version will be set for 3.X player<br />
&nbsp;&nbsp;&nbsp;axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");<br />
&nbsp;&nbsp;&nbsp;version = "WIN 3,0,18,0";<br />
&nbsp;&nbsp;} catch (e) {<br />
&nbsp;&nbsp;}<br />
&nbsp;}</font></p>
<p><font face="Verdana">&nbsp;if (!version)<br />
&nbsp;{<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;// version will be set for 2.X player<br />
&nbsp;&nbsp;&nbsp;axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");<br />
&nbsp;&nbsp;&nbsp;version = "WIN 2,0,0,11";<br />
&nbsp;&nbsp;} catch (e) {<br />
&nbsp;&nbsp;&nbsp;version = -1;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;return version;<br />
}</font></p>
<p><font face="Verdana">// JavaScript helper required to detect Flash Player PlugIn version information<br />
function GetSwfVer(){<br />
&nbsp;// NS/Opera version &gt;= 3 check for Flash plugin in plugin array<br />
&nbsp;var flashVer = -1;<br />
&nbsp;<br />
&nbsp;if (navigator.plugins != null &amp;&amp; navigator.plugins.length &gt; 0) {<br />
&nbsp;&nbsp;if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {<br />
&nbsp;&nbsp;&nbsp;var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";<br />
&nbsp;&nbsp;&nbsp;var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;<br />
&nbsp;&nbsp;&nbsp;var descArray = flashDescription.split(" ");<br />
&nbsp;&nbsp;&nbsp;var tempArrayMajor = descArray[2].split(".");&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;var versionMajor = tempArrayMajor[0];<br />
&nbsp;&nbsp;&nbsp;var versionMinor = tempArrayMajor[1];<br />
&nbsp;&nbsp;&nbsp;var versionRevision = descArray[3];<br />
&nbsp;&nbsp;&nbsp;if (versionRevision == "") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;versionRevision = descArray[4];<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;if (versionRevision[0] == "d") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;versionRevision = versionRevision.substring(1);<br />
&nbsp;&nbsp;&nbsp;} else if (versionRevision[0] == "r") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;versionRevision = versionRevision.substring(1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (versionRevision.indexOf("d") &gt; 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;// MSN/WebTV 2.6 supports Flash 4<br />
&nbsp;else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;<br />
&nbsp;// WebTV 2.5 supports Flash 3<br />
&nbsp;else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;<br />
&nbsp;// older WebTV supports Flash 2<br />
&nbsp;else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;<br />
&nbsp;else if ( isIE &amp;&amp; isWin &amp;&amp; !isOpera ) {<br />
&nbsp;&nbsp;flashVer = ControlVersion();<br />
&nbsp;}&nbsp;<br />
&nbsp;return flashVer;<br />
}</font></p>
<p><font face="Verdana">// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available<br />
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)<br />
{<br />
&nbsp;versionStr = GetSwfVer();<br />
&nbsp;if (versionStr == -1 ) {<br />
&nbsp;&nbsp;return false;<br />
&nbsp;} else if (versionStr != 0) {<br />
&nbsp;&nbsp;if(isIE &amp;&amp; isWin &amp;&amp; !isOpera) {<br />
&nbsp;&nbsp;&nbsp;// Given "WIN 2,0,0,11"<br />
&nbsp;&nbsp;&nbsp;tempArray&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = versionStr.split(" "); &nbsp;// ["WIN", "2,0,0,11"]<br />
&nbsp;&nbsp;&nbsp;tempString&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = tempArray[1];&nbsp;&nbsp;&nbsp;// "2,0,0,11"<br />
&nbsp;&nbsp;&nbsp;versionArray&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = tempString.split(",");&nbsp;// ['2', '0', '0', '11']<br />
&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;versionArray&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = versionStr.split(".");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;var versionMajor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = versionArray[0];<br />
&nbsp;&nbsp;var versionMinor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = versionArray[1];<br />
&nbsp;&nbsp;var versionRevision&nbsp;&nbsp; = versionArray[2];</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;// is the major.revision &gt;= requested major.revision AND the minor version &gt;= requested minor<br />
&nbsp;&nbsp;if (versionMajor &gt; parseFloat(reqMajorVer)) {<br />
&nbsp;&nbsp;&nbsp;return true;<br />
&nbsp;&nbsp;} else if (versionMajor == parseFloat(reqMajorVer)) {<br />
&nbsp;&nbsp;&nbsp;if (versionMinor &gt; parseFloat(reqMinorVer))<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true;<br />
&nbsp;&nbsp;&nbsp;else if (versionMinor == parseFloat(reqMinorVer)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (versionRevision &gt;= parseFloat(reqRevision))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
}</font></p>
<p><font face="Verdana">function AC_AddExtension(src, ext)<br />
{<br />
&nbsp; if (src.indexOf('?') != -1)<br />
&nbsp;&nbsp;&nbsp; return src.replace(/\?/, ext+'?'); <br />
&nbsp; else<br />
&nbsp;&nbsp;&nbsp; return src + ext;<br />
}</font></p>
<p><font face="Verdana">function AC_Generateobj(objAttrs, params, embedAttrs) <br />
{ <br />
&nbsp; var str = '';<br />
&nbsp; if (isIE &amp;&amp; isWin &amp;&amp; !isOpera)<br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp; str += '&lt;object ';<br />
&nbsp;&nbsp;&nbsp; for (var i in objAttrs)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str += i + '="' + objAttrs[i] + '" ';<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; str += '&gt;';<br />
&nbsp;&nbsp;&nbsp; for (var i in params)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str += '&lt;param name="' + i + '" value="' + params[i] + '" /&gt; ';<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; str += '&lt;/object&gt;';<br />
&nbsp; }<br />
&nbsp; else<br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp; str += '&lt;embed ';<br />
&nbsp;&nbsp;&nbsp; for (var i in embedAttrs)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str += i + '="' + embedAttrs[i] + '" ';<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; str += '&gt; &lt;/embed&gt;';<br />
&nbsp; }</font></p>
<p><font face="Verdana">&nbsp; document.write(str);<br />
}</font></p>
<p><font face="Verdana">function AC_FL_RunContent(){<br />
&nbsp; var ret = <br />
&nbsp;&nbsp;&nbsp; AC_GetArgs<br />
&nbsp;&nbsp;&nbsp; (&nbsp; arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"<br />
&nbsp;&nbsp;&nbsp;&nbsp; , "application/x-shockwave-flash"<br />
&nbsp;&nbsp;&nbsp; );<br />
&nbsp; AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);<br />
}</font></p>
<p><font face="Verdana">function AC_SW_RunContent(){<br />
&nbsp; var ret = <br />
&nbsp;&nbsp;&nbsp; AC_GetArgs<br />
&nbsp;&nbsp;&nbsp; (&nbsp; arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"<br />
&nbsp;&nbsp;&nbsp;&nbsp; , null<br />
&nbsp;&nbsp;&nbsp; );<br />
&nbsp; AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);<br />
}</font></p>
<p><font face="Verdana">function AC_GetArgs(args, ext, srcParamName, classid, mimeType){<br />
&nbsp; var ret = new Object();<br />
&nbsp; ret.embedAttrs = new Object();<br />
&nbsp; ret.params = new Object();<br />
&nbsp; ret.objAttrs = new Object();<br />
&nbsp; for (var i=0; i &lt; args.length; i=i+2){<br />
&nbsp;&nbsp;&nbsp; var currArg = args[i].toLowerCase();&nbsp;&nbsp;&nbsp; </font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp; switch (currArg){&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "classid":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "pluginspage":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret.embedAttrs[args[i]] = args[i+1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "src":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "movie":&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args[i+1] = AC_AddExtension(args[i+1], ext);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret.embedAttrs["src"] = args[i+1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret.params[srcParamName] = args[i+1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onafterupdate":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onbeforeupdate":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onblur":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "oncellchange":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onclick":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "ondblClick":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "ondrag":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "ondragend":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "ondragenter":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "ondragleave":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "ondragover":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "ondrop":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onfinish":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onfocus":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onhelp":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onmousedown":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onmouseup":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onmouseover":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onmousemove":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onmouseout":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onkeypress":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onkeydown":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onkeyup":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onload":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onlosecapture":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onpropertychange":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onreadystatechange":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onrowsdelete":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onrowenter":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onrowexit":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onrowsinserted":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onstart":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onscroll":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onbeforeeditfocus":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onactivate":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "onbeforedeactivate":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "ondeactivate":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "type":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "codebase":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "id":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret.objAttrs[args[i]] = args[i+1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "width":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "height":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "align":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "vspace": <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "hspace":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "class":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "title":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "accesskey":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "name":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case "tabindex":<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp; }<br />
&nbsp; ret.objAttrs["classid"] = classid;<br />
&nbsp; if (mimeType) ret.embedAttrs["type"] = mimeType;<br />
&nbsp; return ret;<br />
}</font></p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana">/*</font></p>
<p><font face="Verdana"></font>&nbsp;安装了flash cs3之后发现&nbsp;&nbsp; 程序发布静态页面的时候&nbsp; 已经自动生成了一个这个js文件&nbsp; 在同一级文件夹中了</p>
<p><font face="Verdana">HTML页面： </font></p>
<p><font face="Verdana">&lt;script type="text/javascript"&gt; <br />
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','1004','height','154','src','aaaa','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','aa' ); //end AC code <br />
&lt;/script&gt; </font></p>
<p><font face="Verdana">&lt;noscript&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="1004" height="154"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="movie" value="aa.swf" /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="quality" value="high" /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;embed src="aaaa.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="1004" height="154"&gt;&lt;/embed&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;/object&gt;&lt;/noscript&gt; </font></p>
<p><font face="Verdana">*/</font></p>
<img src ="http://www.cnblogs.com/zhangsir/aggbug/1230412.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41258/" target="_blank">[新闻]微软开放游戏平台 Xbox 360用户可开发新视频游戏</a>]]></description></item><item><title>.net 页加载顺序初探</title><link>http://www.cnblogs.com/zhangsir/articles/1215588.html</link><dc:creator>zhangsir</dc:creator><author>zhangsir</author><pubDate>Sat, 07 Jun 2008 06:05:00 GMT</pubDate><guid>http://www.cnblogs.com/zhangsir/articles/1215588.html</guid><wfw:comment>http://www.cnblogs.com/zhangsir/comments/1215588.html</wfw:comment><comments>http://www.cnblogs.com/zhangsir/articles/1215588.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhangsir/comments/commentRss/1215588.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhangsir/services/trackbacks/1215588.html</trackback:ping><description><![CDATA[<p><span><span>Page 执行中将按照如下顺序激活事件：<br />
<br />
Page.PreInit<br />
Page.Init<br />
Page.InitComplite<br />
Page.PreLoad<br />
Page.Load<br />
Page.LoadComplete<br />
Page.PreRender<br />
Page.PreRenderComplete</span></span></p>
<p><span><span>如果页面从另一个页面继承，如BasePage:System.Web.UI.Page，在BasePage中做了一些扩展，如权限检查，而其他页面从BasePage继承，则BasePage和最终Page的事件激活顺序是：<br />
<br />
UI.PreInit<br />
Page.PreInit<br />
UI.Init<br />
Page.Init<br />
UI.InitComplite<br />
Page.InitComplite<br />
UI.PreLoad<br />
Page.PreLoad<br />
UI.Load<br />
Page.Load<br />
UI.LoadComplete<br />
Page.LoadComplete<br />
UI.PreRender<br />
Page.PreRender<br />
UI.PreRenderComplete<br />
Page.PreRenderComplete<br />
<br />
如果使用了MasterPage，则MasterPage中的事件和ContentPage中的事件按照下面顺序激活：<br />
<br />
ContentPage.PreInit<br />
Master.Init<br />
ContentPage.Init<br />
ContentPage.InitComplite<br />
ContentPage.PreLoad<br />
ContentPage.Load<br />
Master.Load<br />
ContentPage.LoadComplete<br />
ContentPage.PreRender<br />
Master.PreRender<br />
ContentPage.PreRenderComplete<br />
<br />
更进一步，如果ContentPage继承BasePage，那么，各事件的执行顺序将变成：<br />
<br />
UI.PreInit<br />
ContentPage.PreInit<br />
Master.Init<br />
UI.Init<br />
ContentPage.Init<br />
UI.InitComplite<br />
ContentPage.InitComplite<br />
UI.PreLoad<br />
ContentPage.PreLoad<br />
UI.Load<br />
ContentPage.Load<br />
Master.Load<br />
UI.LoadComplete<br />
ContentPage.LoadComplete<br />
UI.PreRender<br />
ContentPage.PreRender<br />
Master.PreRender<br />
UI.PreRenderComplete<br />
ContentPage.PreRenderComplete<br />
</span></span></p>
<p><span><span>即：先加载继承页的，在加载自己的，如果继承页有继承则先加载继承页的继承。</span></span></p>
<img src ="http://www.cnblogs.com/zhangsir/aggbug/1215588.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41257/" target="_blank">[新闻]访Firefox CEO:Firefox并不完美 但会越来越好</a>]]></description></item></channel></rss>