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

<channel>
	<title>残酷の青春 &#187; FLEX &amp; ACTION SCRIPT</title>
	<atom:link href="http://www.cruelyouth.com/subjects/tech/flexas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cruelyouth.com</link>
	<description>journey continues</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:33:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>red5教程</title>
		<link>http://www.cruelyouth.com/2010/07/05/red5%e6%95%99%e7%a8%8b/</link>
		<comments>http://www.cruelyouth.com/2010/07/05/red5%e6%95%99%e7%a8%8b/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 09:58:02 +0000</pubDate>
		<dc:creator>Mars</dc:creator>
				<category><![CDATA[FLEX & ACTION SCRIPT]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://www.cruelyouth.com/?p=250</guid>
		<description><![CDATA[版权声明：转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://vsheyan.blogbus.com/logs/46456225.html
公司今天需要装一台RED5的服务器用来开发程序。发现RED5的0.6已经正式放出，以前我写过一篇关于用SVN进行抽取，然后建立RED5项目的文 章。而对于一般的开发者来说，不需要去修改RED5本身的程序，只需要建立自己的应用程序就可以了。现在把建立过程记录下来，希望对各位有所帮助。本文适 合第一次接触RED5（WIN平台下），而不知道如何开始建立自己的应用程序的用户。
流程：
1.下载最新版本的RED5 http://osflash.org/red5
2.安装RED5，注意在安装RED5前要先安装好JRE，安装RED5的时候会要求指定JRE的目录的。
3.到RED5的安装目录，找到doc/templates目录，该目录中存放了一个标准的RED5应用程序模版myapp，将其复制到RED5安装目录 中的webapps目录下，并改名为你喜欢的文件夹名，比如你要开发一个聊天的程序，那么可以把myapp改为myChat，这个名字就是以后你要连接的 服务名了。
4.在WEB-INF中新建一个文件夹src用来存放程序的源代码，新建一个classes文件夹用来存放编译后的文件。
5.打开Eclipse，将工作区指定为RED5安装目录下webapps，然后新建一个项目，项目名为myChat.这个时候你应该发现刚才 myChat中的文件都被加载进来了,我们首先把src目录指定为源代码目录，右键选择src,在弹出的菜单中选择Build Path->Use as Source Folder，即将其指定为代码文件夹。接下来要指定项目的目标目录，在项目名上右键选择Properties，选择Java Bulid Path,在选择Source标签，在下面的Browse中选择Classes目录，将其指定为目标目录。然后选择Libraries，点击Add External JARs，将RED5安装目录下的red5.jar包含进来。
6.这个时候，在Eclipse的左边应该多了WEB-INF/src这样一个东东，我们将要在这里开始写入我们的第一个项目代码。右键选择它，在弹出的 菜单中选择New->Package，新建一个包，举例，包名可以为org.d5.first，然后再在生成的org.d5.first这个包上继 续右键选择New->File,输入文件名Application.java。并在建好的文件中输入以下代码：
package org.d5.first;
import org.red5.server.adapter.ApplicationAdapter;
public class Application extends ApplicationAdapter {
public String login(){
return &#8220;Welcome to Chat Servers&#8221;;
}
}
7.进行配置。编辑WEB-INF下的red5-web.xml,找到bean id=”web.handler”一句，将class=”XXX”中的XXX位置修改为org.d5.first.Application，这样本程序将 以刚才写的Application来运行。删除后面的bean id=”server.handler…整句，因为我们暂时用不到这个东东。编辑web.xml，找到webAppRootKey，将其下面的 param-value标签中的值修改为/myChat。编辑red5-web.properties，将第一句修改为 webapp.contextPath=/myChat
8.编译项目
9.重新启动RED5服务器
10.在FLASH中新建一个文件，输入以下代码：
import flash.net.NetConnection;
import flash.net.Responder;
var responder:Responder = new Responder(chat);
var nc:NetConnection = new NetConnection();
nc.connect(&#8220;rtmp://localhost/mytest&#8221;);
nc.addEventListener(NetStatusEvent.NET_STATUS,statusHandler);
function chat(obj:Object):void{
    trace(obj);
}
function statusHandler(event:NetStatusEvent):void
{
    trace(event.info.code);
 [...]]]></description>
			<content:encoded><![CDATA[<p>版权声明：转载时请以超链接形式标明文章原始出处和作者信息及本声明</p>
<p>http://vsheyan.blogbus.com/logs/46456225.html</p>
<p>公司今天需要装一台RED5的服务器用来开发程序。发现RED5的0.6已经正式放出，以前我写过一篇关于用SVN进行抽取，然后建立RED5项目的文 章。而对于一般的开发者来说，不需要去修改RED5本身的程序，只需要建立自己的应用程序就可以了。现在把建立过程记录下来，希望对各位有所帮助。本文适 合第一次接触RED5（WIN平台下），而不知道如何开始建立自己的应用程序的用户。</p>
<p>流程：</p>
<p>1.下载最新版本的RED5 http://osflash.org/red5</p>
<p>2.安装RED5，注意在安装RED5前要先安装好JRE，安装RED5的时候会要求指定JRE的目录的。</p>
<p>3.到RED5的安装目录，找到doc/templates目录，该目录中存放了一个标准的RED5应用程序模版myapp，将其复制到RED5安装目录 中的webapps目录下，并改名为你喜欢的文件夹名，比如你要开发一个聊天的程序，那么可以把myapp改为myChat，这个名字就是以后你要连接的 服务名了。</p>
<p>4.在WEB-INF中新建一个文件夹src用来存放程序的源代码，新建一个classes文件夹用来存放编译后的文件。</p>
<p>5.打开Eclipse，将工作区指定为RED5安装目录下webapps，然后新建一个项目，项目名为myChat.这个时候你应该发现刚才 myChat中的文件都被加载进来了,我们首先把src目录指定为源代码目录，右键选择src,在弹出的菜单中选择Build Path->Use as Source Folder，即将其指定为代码文件夹。接下来要指定项目的目标目录，在项目名上右键选择Properties，选择Java Bulid Path,在选择Source标签，在下面的Browse中选择Classes目录，将其指定为目标目录。然后选择Libraries，点击Add External JARs，将RED5安装目录下的red5.jar包含进来。</p>
<p>6.这个时候，在Eclipse的左边应该多了WEB-INF/src这样一个东东，我们将要在这里开始写入我们的第一个项目代码。右键选择它，在弹出的 菜单中选择New->Package，新建一个包，举例，包名可以为org.d5.first，然后再在生成的org.d5.first这个包上继 续右键选择New->File,输入文件名Application.java。并在建好的文件中输入以下代码：</p>
<p>package org.d5.first;</p>
<p>import org.red5.server.adapter.ApplicationAdapter;</p>
<p>public class Application extends ApplicationAdapter {</p>
<p>public String login(){<br />
return &#8220;Welcome to Chat Servers&#8221;;<br />
}</p>
<p>}</p>
<p>7.进行配置。编辑WEB-INF下的red5-web.xml,找到bean id=”web.handler”一句，将class=”XXX”中的XXX位置修改为org.d5.first.Application，这样本程序将 以刚才写的Application来运行。删除后面的bean id=”server.handler…整句，因为我们暂时用不到这个东东。编辑web.xml，找到webAppRootKey，将其下面的 param-value标签中的值修改为/myChat。编辑red5-web.properties，将第一句修改为 webapp.contextPath=/myChat</p>
<p>8.编译项目</p>
<p>9.重新启动RED5服务器</p>
<p>10.在FLASH中新建一个文件，输入以下代码：<br />
import flash.net.NetConnection;<br />
import flash.net.Responder;</p>
<p>var responder:Responder = new Responder(chat);<br />
var nc:NetConnection = new NetConnection();<br />
nc.connect(&#8220;rtmp://localhost/mytest&#8221;);<br />
nc.addEventListener(NetStatusEvent.NET_STATUS,statusHandler);<br />
function chat(obj:Object):void{<br />
    trace(obj);<br />
}<br />
function statusHandler(event:NetStatusEvent):void<br />
{<br />
    trace(event.info.code);<br />
    switch (event.info.code)<br />
    {<br />
        case &#8220;NetConnection.Connect.Success&#8221;:<br />
            trace(&#8220;The connection was made successfully&#8221;);<br />
            break;<br />
        case &#8220;NetConnection.Connect.Rejected&#8221;:<br />
            trace (&#8220;sorry, the connection was rejected&#8221;);<br />
            break;<br />
        case &#8220;NetConnection.Connect.Failed&#8221;:<br />
            trace(&#8220;Failed to connect to server.&#8221;);<br />
            break;<br />
    }<br />
}<br />
nc.call(&#8220;login&#8221;,responder);</p>
<p>运行程序，显示结果为Welcome to Chat Servers。第一个RED5应用程序诞生了，呵呵：）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cruelyouth.com/2010/07/05/red5%e6%95%99%e7%a8%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>遨游等IE内核浏览器执行AS ExternalInterface遇到的问题</title>
		<link>http://www.cruelyouth.com/2010/04/27/%e9%81%a8%e6%b8%b8%e7%ad%89ie%e5%86%85%e6%a0%b8%e6%b5%8f%e8%a7%88%e5%99%a8%e6%89%a7%e8%a1%8cas-externalinterface%e9%81%87%e5%88%b0%e7%9a%84%e9%97%ae%e9%a2%98/</link>
		<comments>http://www.cruelyouth.com/2010/04/27/%e9%81%a8%e6%b8%b8%e7%ad%89ie%e5%86%85%e6%a0%b8%e6%b5%8f%e8%a7%88%e5%99%a8%e6%89%a7%e8%a1%8cas-externalinterface%e9%81%87%e5%88%b0%e7%9a%84%e9%97%ae%e9%a2%98/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 05:59:52 +0000</pubDate>
		<dc:creator>Mars</dc:creator>
				<category><![CDATA[FLEX & ACTION SCRIPT]]></category>
		<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://www.cruelyouth.com/?p=229</guid>
		<description><![CDATA[写了一个swf嵌入html页面中作跨域ajax提交使用，可是发现在IE内核的遨游，360浏览器中第一次载入可以运行，第二次则报对象没有该方法的错误。
google了一下，基本是这些浏览器处理缓存的问题，在swf已存在本地缓存时初始化第一帧的时候会出问题，解决方法1：在嵌入swf处加上?+Math.random()不管用，按照方法2，将
ExternalInterface.addCallback(&#8220;ajax&#8221;, ajax);
延迟50毫秒执行
setTimeout(function():void{
	ExternalInterface.addCallback(&#8220;ajax&#8221;, ajax);
}, 50);
这样就解决了。。
以前也遇到过，如果在flex里写一as project，swf没有规定固定大小，而是在第一帧运行代码中动态获取stage的宽高的时候，在遨游等浏览器中第二次浏览的时候布局会乱，因为获得的stage宽高都是0，应该也是这个道理，我恨这些二手浏览器啊。
]]></description>
			<content:encoded><![CDATA[<p>写了一个swf嵌入html页面中作跨域ajax提交使用，可是发现在IE内核的遨游，360浏览器中第一次载入可以运行，第二次则报对象没有该方法的错误。<br />
google了一下，基本是这些浏览器处理缓存的问题，在swf已存在本地缓存时初始化第一帧的时候会出问题，解决方法1：在嵌入swf处加上?+Math.random()不管用，按照方法2，将</p>
<p>ExternalInterface.addCallback(&#8220;ajax&#8221;, ajax);</p>
<p>延迟50毫秒执行</p>
<p>setTimeout(function():void{<br />
	ExternalInterface.addCallback(&#8220;ajax&#8221;, ajax);<br />
}, 50);</p>
<p>这样就解决了。。</p>
<p>以前也遇到过，如果在flex里写一as project，swf没有规定固定大小，而是在第一帧运行代码中动态获取stage的宽高的时候，在遨游等浏览器中第二次浏览的时候布局会乱，因为获得的stage宽高都是0，应该也是这个道理，我恨这些二手浏览器啊。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cruelyouth.com/2010/04/27/%e9%81%a8%e6%b8%b8%e7%ad%89ie%e5%86%85%e6%a0%b8%e6%b5%8f%e8%a7%88%e5%99%a8%e6%89%a7%e8%a1%8cas-externalinterface%e9%81%87%e5%88%b0%e7%9a%84%e9%97%ae%e9%a2%98/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>如何在flex builder中使用flash 9的组件</title>
		<link>http://www.cruelyouth.com/2008/06/06/%e5%a6%82%e4%bd%95%e5%9c%a8flex-builder%e4%b8%ad%e4%bd%bf%e7%94%a8flash-9%e7%9a%84%e7%bb%84%e4%bb%b6/</link>
		<comments>http://www.cruelyouth.com/2008/06/06/%e5%a6%82%e4%bd%95%e5%9c%a8flex-builder%e4%b8%ad%e4%bd%bf%e7%94%a8flash-9%e7%9a%84%e7%bb%84%e4%bb%b6/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 07:43:51 +0000</pubDate>
		<dc:creator>Mars</dc:creator>
				<category><![CDATA[FLEX & ACTION SCRIPT]]></category>

		<guid isPermaLink="false">http://www.cruelyouth.com/?p=129</guid>
		<description><![CDATA[网上搜了一下，老外有篇blog是写这个的，试了一下可以用，原文地址
简单说一下怎么做：
首先，建一个fla，把需要导出的组件拽进舞台（库）中
然后选导出影片
导出对话框选生成swc
然后在在flex中的project 属性里把lib path加上这个swc就可以了
不知道为何直接用flash安装目录里components下的那些swc为什么不行，不过经过以上步骤就可以直接用flash中的组件了～～
其实flash中其他的mc/字体/图片等也可以在link了class后输出swc这么使用。
]]></description>
			<content:encoded><![CDATA[<p>网上搜了一下，老外有篇blog是写这个的，试了一下可以用，<a href="http://www.moock.org/blog/archives/000253.html">原文地址</a></p>
<p>简单说一下怎么做：</p>
<p>首先，建一个fla，把需要导出的组件拽进舞台（库）中<br />
然后选导出影片<br />
导出对话框选生成swc</p>
<p>然后在在flex中的project 属性里把lib path加上这个swc就可以了</p>
<p>不知道为何直接用flash安装目录里components下的那些swc为什么不行，不过经过以上步骤就可以直接用flash中的组件了～～</p>
<p>其实flash中其他的mc/字体/图片等也可以在link了class后输出swc这么使用。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cruelyouth.com/2008/06/06/%e5%a6%82%e4%bd%95%e5%9c%a8flex-builder%e4%b8%ad%e4%bd%bf%e7%94%a8flash-9%e7%9a%84%e7%bb%84%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>写了一个Flash的Transition</title>
		<link>http://www.cruelyouth.com/2008/05/30/%e5%86%99%e4%ba%86%e4%b8%80%e4%b8%aaflash%e7%9a%84transition/</link>
		<comments>http://www.cruelyouth.com/2008/05/30/%e5%86%99%e4%ba%86%e4%b8%80%e4%b8%aaflash%e7%9a%84transition/#comments</comments>
		<pubDate>Fri, 30 May 2008 02:03:19 +0000</pubDate>
		<dc:creator>Mars</dc:creator>
				<category><![CDATA[FLEX & ACTION SCRIPT]]></category>
		<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://www.cruelyouth.com/?p=128</guid>
		<description><![CDATA[
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package 
&#123; 
import flash.display.*;
import flash.geom.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import fl.motion.BezierSegment;
&#160;
&#160;
public class MarsFly extends Transition 
&#123;
	private var _origin_x:Number;
	private var _origin_y:Number;
	private var _origin_zoom:Number;
	private var _origin_alpha:Number;
	private var _start_x:Number = 0;
	private var _start_y:Number = 0;
	private var _control_x:Number = 0;
	private var _control_y:Number = 0;
	private var _start_zoom:Number = 2.5;
	private var _start_alpha:Number = 0;
	private var _bezier:BezierSegment;
&#160;
    /**
     [...]]]></description>
			<content:encoded><![CDATA[
<div class="wp_codebox"><table width="100%" ><tr id="1283"><td width="1%" class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
</pre></td><td class="code" id="128code3"><pre class="actionscript">package 
<span style="color: #66cc66;">&#123;</span> 
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">*</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">geom</span>.<span style="color: #006600;">*</span>;
<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">transitions</span>.<span style="color: #006600;">*</span>;
<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">transitions</span>.<span style="color: #006600;">easing</span>.<span style="color: #006600;">*</span>;
<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">motion</span>.<span style="color: #006600;">BezierSegment</span>;
&nbsp;
&nbsp;
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MarsFly <span style="color: #0066CC;">extends</span> Transition 
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _origin_x:<span style="color: #0066CC;">Number</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _origin_y:<span style="color: #0066CC;">Number</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _origin_zoom:<span style="color: #0066CC;">Number</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _origin_alpha:<span style="color: #0066CC;">Number</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _start_x:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _start_y:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _control_x:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _control_y:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _start_zoom:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">2.5</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _start_alpha:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _bezier:BezierSegment;
&nbsp;
    <span style="color: #808080; font-style: italic;">/**
     * @private
     */</span> 
	override <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> <span style="color: #0066CC;">type</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #000000; font-weight: bold;">Class</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">return</span> MarsFly;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
    <span style="color: #808080; font-style: italic;">/**
     * @private
	 * @param transParams - 参数zoom,alpha,x 起始点x,y 起始点y,cx 控制点x,cy 控制点y
     */</span> 
	<span style="color: #000000; font-weight: bold;">function</span> MarsFly <span style="color: #66cc66;">&#40;</span>content:<span style="color: #0066CC;">MovieClip</span>, transParams:<span style="color: #0066CC;">Object</span>, manager:TransitionManager<span style="color: #66cc66;">&#41;</span> 
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span>content, transParams, manager<span style="color: #66cc66;">&#41;</span>;
		_origin_x = <span style="color: #0066CC;">this</span>.<span style="color: #006600;">manager</span>.<span style="color: #006600;">contentAppearance</span>.<span style="color: #006600;">x</span>;
		_origin_y = <span style="color: #0066CC;">this</span>.<span style="color: #006600;">manager</span>.<span style="color: #006600;">contentAppearance</span>.<span style="color: #006600;">y</span>;
		_origin_zoom = <span style="color: #0066CC;">this</span>.<span style="color: #006600;">manager</span>.<span style="color: #006600;">contentAppearance</span>.<span style="color: #006600;">scaleX</span>;
		_origin_alpha = <span style="color: #0066CC;">this</span>.<span style="color: #006600;">manager</span>.<span style="color: #006600;">contentAppearance</span>.<span style="color: #006600;">alpha</span>;
		_start_x = <span style="color: #66cc66;">&#40;</span>transParams.<span style="color: #006600;">x</span><span style="color: #66cc66;">&#41;</span>?transParams.<span style="color: #006600;">x</span>:<span style="color: #cc66cc;">0</span>;
		_start_y = <span style="color: #66cc66;">&#40;</span>transParams.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span>?transParams.<span style="color: #006600;">y</span>:<span style="color: #cc66cc;">0</span>;
		_start_zoom = <span style="color: #66cc66;">&#40;</span>transParams.<span style="color: #006600;">zoom</span><span style="color: #66cc66;">&#41;</span>?transParams.<span style="color: #006600;">zoom</span>:<span style="color: #cc66cc;">2.5</span>;
		_start_alpha = <span style="color: #66cc66;">&#40;</span>transParams.<span style="color: #006600;">alpha</span><span style="color: #66cc66;">&#41;</span>?transParams.<span style="color: #006600;">alpha</span>:<span style="color: #cc66cc;">0</span>;
		_control_x = transParams.<span style="color: #006600;">cx</span>;
		_control_y = transParams.<span style="color: #006600;">cy</span>;
&nbsp;
		_bezier = <span style="color: #000000; font-weight: bold;">new</span> BezierSegment<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span>_start_x, _start_y<span style="color: #66cc66;">&#41;</span>,
									<span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span>_start_x, _start_y<span style="color: #66cc66;">&#41;</span>,
									<span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span>_control_x, _control_y<span style="color: #66cc66;">&#41;</span>,
									<span style="color: #000000; font-weight: bold;">new</span> Point<span style="color: #66cc66;">&#40;</span>_origin_x, _origin_y<span style="color: #66cc66;">&#41;</span>
									<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">/**
     * @private
     */</span>     
	override protected <span style="color: #000000; font-weight: bold;">function</span> _render<span style="color: #66cc66;">&#40;</span>p:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> 
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">var</span> point:Point = <span style="color: #0066CC;">this</span>._bezier.<span style="color: #006600;">getValue</span><span style="color: #66cc66;">&#40;</span>p<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">this</span>._content.<span style="color: #006600;">x</span> = point.<span style="color: #006600;">x</span>;<span style="color: #808080; font-style: italic;">//this._start_x + (this._origin_x - this._start_x) * (Math.sin(p*Math.PI/2));</span>
		<span style="color: #0066CC;">this</span>._content.<span style="color: #006600;">y</span> = point.<span style="color: #006600;">y</span>;<span style="color: #808080; font-style: italic;">//this._start_y + (this._origin_y - this._start_y) * (Math.cos((1-p)*Math.PI/2));</span>
		<span style="color: #0066CC;">this</span>._content.<span style="color: #006600;">alpha</span> = <span style="color: #0066CC;">this</span>._start_alpha + <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>._origin_alpha - <span style="color: #0066CC;">this</span>._start_alpha<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span>p;
		<span style="color: #0066CC;">this</span>._content.<span style="color: #006600;">scaleX</span> = <span style="color: #0066CC;">this</span>._content.<span style="color: #006600;">scaleY</span> = <span style="color: #0066CC;">this</span>._start_zoom + <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>._origin_zoom - <span style="color: #0066CC;">this</span>._start_zoom<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span>p;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>调用时</p>

<div class="wp_codebox"><table width="100%" ><tr id="1284"><td width="1%" class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="128code4"><pre class="actionscript"><span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">transitions</span>.<span style="color: #006600;">*</span>;
<span style="color: #0066CC;">import</span> fl.<span style="color: #006600;">transitions</span>.<span style="color: #006600;">easing</span>.<span style="color: #006600;">*</span>;
&nbsp;
btn1.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">CLICK</span>, <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
TransitionManager.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span>img1_mc, <span style="color: #66cc66;">&#123;</span><span style="color: #0066CC;">type</span>:MarsFly, direction:Transition.<span style="color: #006600;">OUT</span>, <span style="color: #0066CC;">duration</span>:<span style="color: #cc66cc;">2</span>, easing:Strong.<span style="color: #006600;">easeOut</span>, x:<span style="color: #cc66cc;">300</span>,y:<span style="color: #cc66cc;">300</span>, cx:<span style="color: #cc66cc;">300</span>, cy: <span style="color: #cc66cc;">0</span>,zoom:<span style="color: #cc66cc;">5</span>,alpha:<span style="color: #cc66cc;">0.1</span><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>; 														
														<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
btn2.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">CLICK</span>, <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
TransitionManager.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span>img1_mc, <span style="color: #66cc66;">&#123;</span><span style="color: #0066CC;">type</span>:MarsFly, direction:Transition.<span style="color: #b1b100;">IN</span>, <span style="color: #0066CC;">duration</span>:<span style="color: #cc66cc;">2</span>, easing:Strong.<span style="color: #006600;">easeOut</span>,x:<span style="color: #cc66cc;">300</span>,y:<span style="color: #cc66cc;">300</span>, cx:<span style="color: #cc66cc;">300</span>, cy: <span style="color: #cc66cc;">0</span>,zoom:<span style="color: #cc66cc;">0.1</span>,alpha:<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>; 																										<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.cruelyouth.com/2008/05/30/%e5%86%99%e4%ba%86%e4%b8%80%e4%b8%aaflash%e7%9a%84transition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>运行时共享库（runtime share lib）</title>
		<link>http://www.cruelyouth.com/2008/05/16/%e8%bf%90%e8%a1%8c%e6%97%b6%e5%85%b1%e4%ba%ab%e5%ba%93%ef%bc%88runtime-share-lib%ef%bc%89/</link>
		<comments>http://www.cruelyouth.com/2008/05/16/%e8%bf%90%e8%a1%8c%e6%97%b6%e5%85%b1%e4%ba%ab%e5%ba%93%ef%bc%88runtime-share-lib%ef%bc%89/#comments</comments>
		<pubDate>Fri, 16 May 2008 02:37:57 +0000</pubDate>
		<dc:creator>Mars</dc:creator>
				<category><![CDATA[FLEX & ACTION SCRIPT]]></category>
		<category><![CDATA[as3]]></category>

		<guid isPermaLink="false">http://new.cruelyouth.com/?p=17</guid>
		<description><![CDATA[运行时共享库的作用是在swf中动态加载外部库，使用库中的资源等等，以下是例子：
1. 新建一fla，命名为Lib.fla
2. 在fla中新建一个元件，库面板中右键选择“链接”，类名设置为MyCircle
3. 新建一as文件，命名为MyCircle.as(空类)，代码如下

1
2
3
4
5
package&#123;
	import flash.display.*;
	public class MyCircle extends Sprite&#123;
	&#125;
&#125;

4. Lib.fla的文档类处写LibTest，然后新建一LibTest.as，代码如下

1
2
3
4
5
6
7
8
9
package&#123;
	import flash.display.*;
	public class LibTest extends Sprite&#123;
		public var CircleClass:Class = MyCircle;
		public function echo&#40;string:String&#41;&#123;
			trace&#40;&#34;echo from lib:&#34; + string&#41;;
		&#125;
	&#125;
&#125;

5. shift + f12 导出Lib.swf
6. 新建一app.fla，文档类设置为AppTest
7. 新建AppTest.as，代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package&#123;
	import flash.display.*;
	import flash.net.*;
	import flash.events.*;
&#160;
	public class AppTest extends Sprite&#123;
		public function AppTest &#40;&#41;&#123;
			init&#40;&#41;;
		&#125;
&#160;
		public function init&#40;&#41;:void&#123;
			var loader:Loader = new Loader&#40;&#41;;
			var req:URLRequest = new URLRequest&#40;&#41;;
			req.url = &#34;Lib.swf&#34;;
			loader.contentLoaderInfo.addEventListener&#40;Event.COMPLETE, completeHandler&#41;;
			loader.load&#40;req&#41;;
		&#125;
&#160;
		public function [...]]]></description>
			<content:encoded><![CDATA[<p>运行时共享库的作用是在swf中动态加载外部库，使用库中的资源等等，以下是例子：</p>
<p>1. 新建一fla，命名为Lib.fla<br />
2. 在fla中新建一个元件，库面板中右键选择“链接”，类名设置为MyCircle<br />
3. 新建一as文件，命名为MyCircle.as(空类)，代码如下</p>

<div class="wp_codebox"><table width="100%" ><tr id="178"><td width="1%" class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="17code8"><pre class="actionscript">package<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MyCircle <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>4. Lib.fla的文档类处写LibTest，然后新建一LibTest.as，代码如下</p>

<div class="wp_codebox"><table width="100%" ><tr id="179"><td width="1%" class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="17code9"><pre class="actionscript">package<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> LibTest <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> CircleClass:<span style="color: #000000; font-weight: bold;">Class</span> = MyCircle;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> echo<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">string</span>:<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;echo from lib:&quot;</span> + <span style="color: #0066CC;">string</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>5. shift + f12 导出Lib.swf<br />
6. 新建一app.fla，文档类设置为AppTest<br />
7. 新建AppTest.as，代码如下</p>

<div class="wp_codebox"><table width="100%" ><tr id="1710"><td width="1%" class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code" id="17code10"><pre class="actionscript">package<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">net</span>.<span style="color: #006600;">*</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">*</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> AppTest <span style="color: #0066CC;">extends</span> Sprite<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> AppTest <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> loader:Loader = <span style="color: #000000; font-weight: bold;">new</span> Loader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> req:URLRequest = <span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			req.<span style="color: #0066CC;">url</span> = <span style="color: #ff0000;">&quot;Lib.swf&quot;</span>;
			loader.<span style="color: #006600;">contentLoaderInfo</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, completeHandler<span style="color: #66cc66;">&#41;</span>;
			loader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span>req<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> completeHandler<span style="color: #66cc66;">&#40;</span>event:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> loader:Loader = <span style="color: #66cc66;">&#40;</span>event.<span style="color: #0066CC;">target</span> as LoaderInfo<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">loader</span>;
			<span style="color: #000000; font-weight: bold;">var</span> lib:LibTest = LibTest<span style="color: #66cc66;">&#40;</span>loader.<span style="color: #006600;">content</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>lib<span style="color: #66cc66;">&#41;</span>;
			lib.<span style="color: #006600;">echo</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;xxx&quot;</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> lib.<span style="color: #006600;">CircleClass</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>8. 导出运行一下，可以看到Lib.swf被加载以后，AppTest调用lib中的MyCircle类新建了一个圆形加载了舞台上。</p>
<p>这种方法可以用来动态加载字体，或其他比较大但不是必须的资源。<br />
注意这种方法和flash 本身所的runtime sharelib应该是不一样的，flash的这个概念是可以将原件按share lib导出，然后再fla中可以导入swf得到swf中的库元件，这个运行时是指flash开发工具的运行时而不是swf的运行时。</p>
<p>下载本文源代码：<a href='http://new.cruelyouth.com/wp-content/uploads/2008/05/sharelib.rar'>sharelib</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cruelyouth.com/2008/05/16/%e8%bf%90%e8%a1%8c%e6%97%b6%e5%85%b1%e4%ba%ab%e5%ba%93%ef%bc%88runtime-share-lib%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
