<?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>Tue, 17 Jan 2012 06:53:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<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中新建一个文件，输入以下代码： [...]]]></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>0</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[package { import flash.display.*; import flash.geom.*; import fl.transitions.*; import fl.transitions.easing.*; import fl.motion.BezierSegment; public class MarsFly extends Transition { 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; [...]]]></description>
			<content:encoded><![CDATA[<pre lang="ActionScript" line="1" colla="+">
package
{
import flash.display.*;
import flash.geom.*;
import fl.transitions.*;
import fl.transitions.easing.*;
import fl.motion.BezierSegment;

public class MarsFly extends Transition
{
	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;

    /**
     * @private
     */
	override public function get type():Class
	{
		return MarsFly;
	}

    /**
     * @private
	 * @param transParams - 参数zoom,alpha,x 起始点x,y 起始点y,cx 控制点x,cy 控制点y
     */
	function MarsFly (content:MovieClip, transParams:Object, manager:TransitionManager)
	{
		super(content, transParams, manager);
		_origin_x = this.manager.contentAppearance.x;
		_origin_y = this.manager.contentAppearance.y;
		_origin_zoom = this.manager.contentAppearance.scaleX;
		_origin_alpha = this.manager.contentAppearance.alpha;
		_start_x = (transParams.x)?transParams.x:0;
		_start_y = (transParams.y)?transParams.y:0;
		_start_zoom = (transParams.zoom)?transParams.zoom:2.5;
		_start_alpha = (transParams.alpha)?transParams.alpha:0;
		_control_x = transParams.cx;
		_control_y = transParams.cy;

		_bezier = new BezierSegment(new Point(_start_x, _start_y),
									new Point(_start_x, _start_y),
									new Point(_control_x, _control_y),
									new Point(_origin_x, _origin_y)
									);
	}

    /**
     * @private
     */
	override protected function _render(p:Number):void
	{
		var point:Point = this._bezier.getValue(p);
		this._content.x = point.x;//this._start_x + (this._origin_x - this._start_x) * (Math.sin(p*Math.PI/2));
		this._content.y = point.y;//this._start_y + (this._origin_y - this._start_y) * (Math.cos((1-p)*Math.PI/2));
		this._content.alpha = this._start_alpha + (this._origin_alpha - this._start_alpha) *p;
		this._content.scaleX = this._content.scaleY = this._start_zoom + (this._origin_zoom - this._start_zoom) *p;
	}

}

}
</pre>
<p>调用时</p>
<pre lang="ActionScript" line="1" colla="+">
import fl.transitions.*;
import fl.transitions.easing.*;

btn1.addEventListener(MouseEvent.CLICK, function (event){
TransitionManager.start(img1_mc, {type:MarsFly, direction:Transition.OUT, duration:2, easing:Strong.easeOut, x:300,y:300, cx:300, cy: 0,zoom:5,alpha:0.1});
														});

btn2.addEventListener(MouseEvent.CLICK, function (event){
TransitionManager.start(img1_mc, {type:MarsFly, direction:Transition.IN, duration:2, easing:Strong.easeOut,x:300,y:300, cx:300, cy: 0,zoom:0.1,alpha:0}); 																										});
</pre>
]]></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[<br />
<b>Fatal error</b>:  Cannot redeclare class GeSHi in <b>/data/www/new.cruelyouth.com/wp-content/plugins/highlight-source-pro/geshi/geshi.php</b> on line <b>158</b><br />

