<?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</title>
	<atom:link href="http://www.iwanna.cn/tags/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iwanna.cn</link>
	<description></description>
	<lastBuildDate>Mon, 26 Dec 2011 05:46:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Flex程序员的四重境界</title>
		<link>http://www.iwanna.cn/archives/2010/06/13/3958/</link>
		<comments>http://www.iwanna.cn/archives/2010/06/13/3958/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 12:35:28 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=3958</guid>
		<description><![CDATA[以前见过一些文章描述程序员的层次、水准、特征等等内容，这类文章很好的从广义的角度来定位并区分出程序员的水平和能力。相对于Flex开发者来说，尽管 这个群体目前在国内还不是很大(仍然有很大发展空间哟)，但是这种高低差别依然存在，如果广大开发者能从这个四重境界中准确定位自己，那对于将来的技术发 展是很有帮助的。 第一重 初级程序员 Flex初级程序员是指经过一周到一个月的间歇性学习(自学)和模仿而形成的上手级开发者。这个定义主要从投入精力和学习路线来规定的，这个层次 的程序员往往是出于一时的爱好或者项目的需要而进入改领域的学习。其特点是能做一些简单的应用，能搞清楚flex应用的开发过程，使用 flexbuilder能拖拽出一个界面来，并能写简单的AS脚本，从而完成一个基本的Flex应用。这类程序员从此就再没有深入研究，而且没有完整的看 过官方的所有开发文档，也没有体会到Flex/RIA开发的思想，基本上就在该领域停滞不前了。 第二重 中级程序员 该阶段的程序员是指超过2个月的学习(在正规的培训中心参加过flex培训，比如国内的http://www.flexedu.com)并完成至少一个项目的进阶级开发 者。位于此阶段的Flex开发者通过扎实系统的文档学习并通过实战的演练，对 Flex整个框架有很全面的认识，能够熟练使用IDE进行MXML/AS开发RIA应用，对程序结构、程序运行流程、对于flex应用与传统web应用的 区别都有很好的理解，能独立的实现flex为前端技术的web应用。这类程序员注重基础、细节，尤其是flex应用与web应用与桌面应用的差别与联系， 而且善于钻研技术，非常具有软件开发的潜力，而且只需加以时日便可进一步上升成为高手。 第三重 高级程序员 Flex高级程序员是指连续从事一年以上企业级Flash/Flex应用开发并在项目中承担主要角色的高手级开发者。这个层次的修炼很不容易，首 先需要自己不断的努力，而且最难办到的是能在一个长期使用Flex技术的公司(team)中持续锻炼。处于这个层次的Flex程序员往往对企业级RIA架 构比如 cairngorm非常熟悉，而且能对各种RIA架构做出自己的评价。对新项目的功能和模块、组件的划分都有清晰的认识，对于Flex应用的方方面面例如 幕后的运行过程、显示结构的模式、事件流顺序、组件的制作手法、程序规模和性能的控制都有深刻的理解。对于这个层次的flex程序员来说，自定义一个通用 的组件是很容易的事情，因为他对于Flex的组件体系甚至组件的源码他都了如指掌。夸张的来说，他们写flex应用很少看语法参考，写代码甚至可以在记事 本里完成。这样的flex开发者在全球都很少，属于高手中的高手，是大公司争强的对象，也是广大flex开发者努力的目标。 第四重 资深程序员 资深Flex程序员是指有着多年的RIA开发经验(超过10年的软件行业从业时间)并有广泛的软件开发相关技术背景的大牛级人物。这样的人物，只 要是你接触Flex这一领域就能听到他的大名，他们的博客是众多Flex开发者的圣殿，他们的声音就是整个社区的福音和号角，他们的著作是我们的圣经，这 样的人物常常会在大型活动比如360Flex或者adobe MAX大会上经常出现，他们代表着这个领域的前沿和潮流。这样的程序员往往是Flex技术进步和发展的原动力，是我们Flex开发者努力一生的目标，甚至 是我们的偶像，比如Ted Patric以及他的博客上的Disruptive Evangelism(突破性的传道者)，总共才11个人(都是Adobe公司的)。 作为一个普通的Flex开发者，您是那一级呢，离最高境界还有多远呢? 作者: jian9min9 © 我想网 Akon 所有 , 2010. &#124; 永久链接 &#124; 没有评论 &#124; 提交到 Google Reader 鲜果 抓虾 Feed enhanced [...]]]></description>
			<content:encoded><![CDATA[<p>以前见过一些文章描述程序员的层次、水准、特征等等内容，这类文章很好的从广义的角度来定位并区分出程序员的水平和能力。相对于Flex开发者来说，尽管 这个群体目前在国内还不是很大(仍然有很大发展空间哟)，但是这种高低差别依然存在，如果广大开发者能从这个四重境界中准确定位自己，那对于将来的技术发 展是很有帮助的。</p>
<p>第一重 初级程序员<br />
Flex初级程序员是指经过一周到一个月的间歇性学习(自学)和模仿而形成的上手级开发者。这个定义主要从投入精力和学习路线来规定的，这个层次 的程序员往往是出于一时的爱好或者项目的需要而进入改领域的学习。其特点是能做一些简单的应用，能搞清楚flex应用的开发过程，使用 flexbuilder能拖拽出一个界面来，并能写简单的AS脚本，从而完成一个基本的Flex应用。这类程序员从此就再没有深入研究，而且没有完整的看 过官方的所有开发文档，也没有体会到Flex/RIA开发的思想，基本上就在该领域停滞不前了。<br />
<span id="more-3958"></span><br />
第二重 中级程序员<br />
该阶段的程序员是指超过2个月的学习(在正规的培训中心参加过flex培训，比如国内的<a href="http://www.flexedu.com/" target="_blank">http://www.flexedu.com</a>)并完成至少一个项目的进阶级开发 者。位于此阶段的Flex开发者通过扎实系统的文档学习并通过实战的演练，对  Flex整个框架有很全面的认识，能够熟练使用IDE进行MXML/AS开发RIA应用，对程序结构、程序运行流程、对于flex应用与传统web应用的 区别都有很好的理解，能独立的实现flex为前端技术的web应用。这类程序员注重基础、细节，尤其是flex应用与web应用与桌面应用的差别与联系， 而且善于钻研技术，非常具有软件开发的潜力，而且只需加以时日便可进一步上升成为高手。</p>
<p>第三重 高级程序员<br />
Flex高级程序员是指连续从事一年以上企业级Flash/Flex应用开发并在项目中承担主要角色的高手级开发者。这个层次的修炼很不容易，首 先需要自己不断的努力，而且最难办到的是能在一个长期使用Flex技术的公司(team)中持续锻炼。处于这个层次的Flex程序员往往对企业级RIA架 构比如  cairngorm非常熟悉，而且能对各种RIA架构做出自己的评价。对新项目的功能和模块、组件的划分都有清晰的认识，对于Flex应用的方方面面例如 幕后的运行过程、显示结构的模式、事件流顺序、组件的制作手法、程序规模和性能的控制都有深刻的理解。对于这个层次的flex程序员来说，自定义一个通用 的组件是很容易的事情，因为他对于Flex的组件体系甚至组件的源码他都了如指掌。夸张的来说，他们写flex应用很少看语法参考，写代码甚至可以在记事 本里完成。这样的flex开发者在全球都很少，属于高手中的高手，是大公司争强的对象，也是广大flex开发者努力的目标。</p>
<p>第四重 资深程序员<br />
资深Flex程序员是指有着多年的RIA开发经验(超过10年的软件行业从业时间)并有广泛的软件开发相关技术背景的大牛级人物。这样的人物，只 要是你接触Flex这一领域就能听到他的大名，他们的博客是众多Flex开发者的圣殿，他们的声音就是整个社区的福音和号角，他们的著作是我们的圣经，这 样的人物常常会在大型活动比如360Flex或者adobe  MAX大会上经常出现，他们代表着这个领域的前沿和潮流。这样的程序员往往是Flex技术进步和发展的原动力，是我们Flex开发者努力一生的目标，甚至 是我们的偶像，比如Ted Patric以及他的博客上的Disruptive  Evangelism(突破性的传道者)，总共才11个人(都是Adobe公司的)。</p>
<p>作为一个普通的Flex开发者，您是那一级呢，离最高境界还有多远呢?</p>
<p>作者: <a href="http://jian9min9.javaeye.com/" target="_blank">jian9min9</a></p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2010. |
<a href="http://www.iwanna.cn/archives/2010/06/13/3958/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2010/06/13/3958/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2010/06/13/3958/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2010/06/13/3958/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2010/06/13/3958/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2010/06/13/3958/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RIA特别专题和Flash开发平台工具下载资源发布</title>
		<link>http://www.iwanna.cn/archives/2009/07/29/2073/</link>
		<comments>http://www.iwanna.cn/archives/2009/07/29/2073/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 02:56:44 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=2073</guid>
		<description><![CDATA[为了能和读者分享更多有关RIA的精彩内容，InfoQ中文站最近组织并发布了一期RIA技术专题，包括RIA相关的新闻、文章和视频等。除此之外，本专题还提供了Flash平台开发工具的独家高速下载，以飨读者。 本专题中包含的部分精彩内容有： 虚拟座谈会：RIA和Ajax技术的现状与展望 争论又起，RIA的未来在哪里？ Silverlight、JavaFX、Flex/Flash技术比较 Java程序员学习Flex和BlazeDS的十三个理由 RIA框架大调查 InfoQ案例研究：纳斯达克市场回放 选择你的Ajax框架 纽约时报放弃WPF/Silverlight，转向Adobe AIR RichClient/RIA原则与实践（上）（下） 构建Flex应用的10大误区 本专题所提供的Flash开发平台部分工具下载资源包括： Flash Catalyst：一个无需编码即可快速创建用户界面的新型专业交互设计工具。（高速下载） Flash Builder：包含了三个主要主题：开发人员生产率，设计人员-开发人员工作流和以数据为中心的应用开发等。以及Flex 4框架等。（高速下载） Flex 4 SDK：支持开发人员创建Flex应用，还支持设计人员使用Adobe Flash Catalyst创建交互式设计。（高速下载） Adobe AIR：使您能够始终拥有您喜爱的 Web 应用程序（高速下载） © 我想网 Akon 所有 , 2009. &#124; 永久链接 &#124; 没有评论 &#124; 提交到 Google Reader 鲜果 抓虾 Feed enhanced by Better Feed from Ozh]]></description>
			<content:encoded><![CDATA[<p>为了能和读者分享更多有关RIA的精彩内容，InfoQ中文站最近组织并发布了一期<a href="http://www.infoq.com/cn/ria" mce_href="http://www.infoq.com/cn/ria" target="_blank">RIA技术专题</a>，包括RIA相关的新闻、文章和视频等。除此之外，本专题还提供了Flash平台开发工具的独家高速下载，以飨读者。<br />
<img class="mceWPmore mceItemNoResize" title="更多..." src="http://www.iwanna.cn/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" mce_src="http://www.iwanna.cn/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt=""><br />
<a href="http://www.infoq.com/cn/ria" mce_href="http://www.infoq.com/cn/ria" target="_blank">本专题</a>中包含的部分精彩内容有：</p>
<ul>
<li><a href="http://www.infoq.com/cn/articles/ria-panel" mce_href="http://www.infoq.com/cn/articles/ria-panel" target="_blank">虚拟座谈会：RIA和Ajax技术的现状与展望</a><br mce_bogus="1"></li>
<li><a href="http://www.infoq.com/cn/news/2007/07/dhh-debates-ria-future" mce_href="http://www.infoq.com/cn/news/2007/07/dhh-debates-ria-future" target="_blank">争论又起，RIA的未来在哪里？</a><br mce_bogus="1"></li>
<li><a href="http://www.infoq.com/cn/news/2007/05/silverlisht-javafx-flex" mce_href="http://www.infoq.com/cn/news/2007/05/silverlisht-javafx-flex" target="_blank">Silverlight、JavaFX、Flex/Flash技术比较</a><br mce_bogus="1"></li>
<li><a href="http://www.infoq.com/cn/articles/java-flex-blazeds" mce_href="http://www.infoq.com/cn/articles/java-flex-blazeds" target="_blank">Java程序员学习Flex和BlazeDS的十三个理由</a><br mce_bogus="1"></li>
<li><a href="http://www.infoq.com/cn/news/2008/11/ria-frameworks-survey" mce_href="http://www.infoq.com/cn/news/2008/11/ria-frameworks-survey" target="_blank">RIA框架大调查</a><br mce_bogus="1"></li>
<li><a href="http://www.infoq.com/cn/articles/nasdaq-case-study-air-and-s3" mce_href="http://www.infoq.com/cn/articles/nasdaq-case-study-air-and-s3" target="_blank">InfoQ案例研究：纳斯达克市场回放</a><br mce_bogus="1"></li>
<li><a href="http://www.infoq.com/cn/news/2009/06/ajax-frameworks" mce_href="http://www.infoq.com/cn/news/2009/06/ajax-frameworks" target="_blank">选择你的Ajax框架</a><br mce_bogus="1"></li>
<li><a href="http://www.infoq.com/cn/news/2009/05/Times-AIR-Reader" mce_href="http://www.infoq.com/cn/news/2009/05/Times-AIR-Reader" target="_blank">纽约时报放弃WPF/Silverlight，转向Adobe AIR</a><br mce_bogus="1"></li>
<li>RichClient/RIA原则与实践（<a href="http://www.infoq.com/cn/articles/thoughtworks-practice-partiii" mce_href="http://www.infoq.com/cn/articles/thoughtworks-practice-partiii" target="_blank">上</a>）（<a href="http://www.infoq.com/cn/articles/thoughtworks-practice-partiii-ii" mce_href="http://www.infoq.com/cn/articles/thoughtworks-practice-partiii-ii" target="_blank">下</a>）</li>
<li><a href="http://www.infoq.com/cn/news/2008/04/top-10-flex-mistakes" mce_href="http://www.infoq.com/cn/news/2008/04/top-10-flex-mistakes" target="_blank">构建Flex应用的10大误区</a><br mce_bogus="1"></li>
</ul>
<p><a href="http://www.infoq.com/cn/ria" mce_href="http://www.infoq.com/cn/ria" target="_blank">本专题</a>所提供的Flash开发平台部分工具下载资源包括：</p>
<ul>
<li><b><a href="http://www.iwanna.cn/tags/flash/" class="st_tag internal_tag" rel="tag" title="标签 Flash 下的日志">Flash</a> Catalyst：</b>一个无需编码即可快速创建用户界面的新型专业交互设计工具。（<a href="http://www.infoq.com/cn/vendorcontent/show.action?vcr=625" mce_href="http://www.infoq.com/cn/vendorcontent/show.action?vcr=625" target="_blank">高速下载</a>）</li>
<li><b>Flash Builder：</b>包含了三个主要主题：开发人员生产率，设计人员-开发人员工作流和以数据为中心的应用开发等。以及Flex 4框架等。（<a href="http://www.infoq.com/cn/vendorcontent/show.action?vcr=626" mce_href="http://www.infoq.com/cn/vendorcontent/show.action?vcr=626" target="_blank">高速下载</a>）</li>
<li><b><a href="http://www.iwanna.cn/tags/flex/" class="st_tag internal_tag" rel="tag" title="标签 Flex 下的日志">Flex</a> 4 SDK：</b>支持开发人员创建Flex应用，还支持设计人员使用Adobe Flash Catalyst创建交互式设计。（<a href="http://www.infoq.com/cn/vendorcontent/show.action?vcr=628" mce_href="http://www.infoq.com/cn/vendorcontent/show.action?vcr=628" target="_blank">高速下载</a>）</li>
<li><b><a href="http://www.iwanna.cn/tags/adobe/" class="st_tag internal_tag" rel="tag" title="标签 Adobe 下的日志">Adobe</a> AIR：</b>使您能够始终拥有您喜爱的 Web 应用程序（<a href="http://www.infoq.com/cn/vendorcontent/show.action?vcr=629" mce_href="http://www.infoq.com/cn/vendorcontent/show.action?vcr=629" target="_blank">高速下载</a>）</li>
</ul>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2009. |
<a href="http://www.iwanna.cn/archives/2009/07/29/2073/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2009/07/29/2073/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2009/07/29/2073/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2009/07/29/2073/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2009/07/29/2073/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2009/07/29/2073/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用Adobe Flex 3开发(MMO)大型多人在线游戏</title>
		<link>http://www.iwanna.cn/archives/2009/07/03/1913/</link>
		<comments>http://www.iwanna.cn/archives/2009/07/03/1913/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 01:15:52 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=1913</guid>
		<description><![CDATA[使用FLEX3开发大型多人在线游戏 大型多人在线游戏(MMO)技术已经涉足到各种软件形式中了.当我们还在思考MMO时,多人游戏已经使很多玩家能够实时连接进行合作与竞争。(见图表1). 魔兽世界在通过DVD-ROM 订阅的MMO游戏行业中处在黄金标准的位置，但是，通过Abobe-flash平台，我们可以利用魔兽的一小部分时间和预算来发展一个自由来玩的通过浏览器的类似于WAKFU和 Small world 的MMO游戏。 Figure 1. Some leading MMO games. 在这篇文章中,我旨在比你想象的少的时间内告诉你制作一个完整的(并且简单的)大型在线游戏的经验。同样，我会给你一些示例代码以使你能掌握这种高水平的思想。这些例子仅限于FLEX3的浏览器版，但是其中好多的信息都是与其他技术的应用程序开发者相关的。包括Adobe Flash CS4以及Flex 3 AIR桌面应用程序。 我希望这些能给大型在线游戏的入门者做一个介绍，同时，也让高手们获得一些知识。 什么是MMO? 在超过十年的时间里，大型多人在线技术已经成为了桌面PC游戏发展中的主流。 在最近几年中，我们发现它在浏览器端也很流行。一个MMO应用程序是一种这样的软件，它能实时连接很多人，同时，一个人的操作动作会马上影响到其他的人。就像在聊天窒里，当你打出一则消息时，接受者会马上看到这则消息一样。当你攻击一个敌人的时候，这个敌人会被打，或者挡住攻击并且反攻。在MMO最普通的形式中，一个MMO应用程序是基于团队，同时看重个人体验与人机交互的应用程序。MMO有好多种：角色扮演游戏 (MMORPGs), 实时战略游戏(MMORTS), 第一人称射击游戏 (MMOFPS), 基于浏览器的大型在线游戏 (BBMMOGs)以及其他更多。 MMORPG是非常流行的，或者仿真游戏。一个仿真实世界的游戏是通过互联网接口联接很多人制作出仿真世界的游戏。仿真游戏通常具有六个特点: 共享空间:这是个可以允许多人同时参加的世界。 图形用户界面:这个世界描绘出真实的空间距离, 从二维的图片转变成三维的环境。 实时:相互操作都是实时发生的。 相互影响:这个世界允许用户更改、发展、建造、或者提交自定义的内容。 一直运行:无论单个用户是否登录，都不会影响到整个程序的运行。 社会化的/团体化的:这个世界允许并且鼓励各种社团形式，如团队、行会、俱乐部、集团、同居、邻居等等。 随着计算机硬件性能与技术的快速发展，MMO游戏已从桌面程序发展到网络程序。这篇文章的重点在后者。 MMO游戏是商业性的 MMO游戏非常流行。随着越来越多的游戏玩家通过宽带来上网，越来越来的因特网用户开始尝试MMO游戏，使用人数正快速的增加。吸引人的WEB2。0以及RIA特性使这些游戏在游戏玩家中快速的流行起来。用户在空闲时间中都沉浸在这些游戏中，哪里有用户，哪里就有商机。但是传统的商业游戏沉浸于在购买时加入一系列的费用。MMO游戏则是要交付不断增加的用于发展与维护的费用，并且由于在线玩的原因会带来其他的商业机会。游戏开发者与发行者将通过多种方式从成功的MMO游戏中获利。发行者通常会选择以下几条: 订阅:用户每月资付一定钱以能够继续玩，这是桌面发展中的获利方式，并且曾经一度成为最流行的获利方式。 广告:在基于浏览器的游戏中，我们可以发现，游戏发行商会在游戏场景上方放置一个banner广 告，这些广告链接到普通网页，有些广告会被融入到游戏场景中。举个例子，你在游戏中的角色会被一个高速公路广告牌指引，而这个广告牌上显示的将会是真实的 广告信息。除了这种方式，也可能是下面的两种方式：用户游戏是不需要预选支付费用的。这使观众面得到最大化。由于因特网与Mmo游戏固有的连通性，新广告可以在游戏体验中轮换（出现），而且韵律可以决定每一个广告可以吸引多少眼球。 虚拟物品的销售:虽然玩游戏可能不要钱，但是用户可以通过付现金购买虚拟装备来增加角色的属性或者提高游戏的优势。 虚拟货币的销售: While game play may be free, users pay real-world cash [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: 16pt; font-family: '微软雅黑';">使用<span><a href="http://www.iwanna.cn/tags/flex/" class="st_tag internal_tag" rel="tag" title="标签 Flex 下的日志">FLEX</a>3</span>开发大型多人在线游戏</span></p>
<p><span style="font-family: '微软雅黑';">大型多人在线游戏<span>(MMO)</span>技术已经涉足到各种软件形式中了<span>.</span>当我们还在思考<span>MMO</span>时<span>,</span>多人游戏已经使很多玩家能够实时连接进行合作与竞争。<span>(</span>见图表<span>1). </span></span><span style="font-family: '微软雅黑'; color: #000000;">魔兽世界在通过<span>DVD-ROM </span>订阅的<span>MMO</span>游戏行业中处在黄金标准的位置，但是，通过<span>Abobe-<a href="http://www.iwanna.cn/tags/flash/" class="st_tag internal_tag" rel="tag" title="标签 Flash 下的日志">flash</a></span>平台，我们可以利用魔兽的一小部分时间和预算来发展一个自由来玩的通过浏览器的类似于<span>WAKFU</span>和<span> Small world </span>的<span>MMO</span>游戏。</span></p>
<p><span style="font-size: 10pt; color: #000000;"> </span></p>
<p><span id="more-1913"></span></p>
<div class="rightContent"><img src="http://www.adobe.com/newsletters/edge/april2009/articles/article2/images/fig1.png" alt="Some leading MMO games" width="239" height="392" /><strong>Figure 1.</strong> Some leading MMO games.</div>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">在这篇文章中<span>,</span>我旨在比你想象的少的时间内告诉你制作一个完整的<span>(</span>并且简单的<span>)</span>大型在线游戏的经验。同样，我会给你一些示例代码以使你能掌握这种高水平的思想。这些例子仅限于<span>FLEX3</span>的浏览器版，但是其中好多的信息都是与其他技术的应用程序开发者相关的。包括<span><a href="http://www.iwanna.cn/tags/adobe/" class="st_tag internal_tag" rel="tag" title="标签 Adobe 下的日志">Adobe</a> Flash CS4</span>以及<span>Flex 3 AIR</span>桌面应用程序。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">我希望这些能给大型在线游戏的入门者做一个介绍，同时，也让高手们获得一些知识。</span></p>
<p><strong><span style="font-size: 18pt; font-family: '微软雅黑';">什么是<span>MMO?</span></span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">在超过十年的时间里，大型多人在线技术已经成为了桌面<span>PC</span>游戏发展中的主流。 在最近几年中，我们发现它在浏览器端也很流行。一个<span>MMO</span>应用程序是一种这样的软件，它能实时连接很多人，同时，一个人的操作动作会马上影响到其他的人。就像在聊天窒里，当你打出一则消息时，接受者会马上看到这则消息一样。当你攻击一个敌人的时候，这个敌人会被打，或者挡住攻击并且反攻。在<span>MMO</span>最普通的形式中，一个<span>MMO</span>应用程序是基于团队，同时看重个人体验与人机交互的应用程序。<span>MMO</span>有好多种：角色扮演游戏<span> (MMORPGs), </span>实时战略游戏<span>(MMORTS), </span>第一人称射击游戏<span> (MMOFPS), </span>基于浏览器的大型在线游戏<span> (BBMMOGs)</span>以及其他更多。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">MMORPG</span><span style="font-size: 12pt; font-family: '微软雅黑';">是非常流行的，或者仿真游戏。一个仿真实世界的游戏是通过互联网接口联接很多人制作出仿真世界的游戏。仿真游戏通常具有六个特点<span>:</span></span></p>
<ul type="disc">
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">共享空间<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">这是个可以允许多人同时参加的世界。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">图形用户界面<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">这个世界描绘出真实的空间距离<span>, </span>从二维的图片转变成三维的环境。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">实时<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">相互操作都是实时发生的。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">相互影响<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">这个世界允许用户更改、发展、建造、或者提交自定义的内容。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">一直运行<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">无论单个用户是否登录，都不会影响到整个程序的运行。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">社会化的<span>/</span>团体化的<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">这个世界允许并且鼓励各种社团形式，如团队、行会、俱乐部、集团、同居、邻居等等。</span></li>
</ul>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">随着计算机硬件性能与技术的快速发展，<span>MMO</span>游戏已从桌面程序发展到网络程序。这篇文章的重点在后者。</span></p>
<p><strong><span style="font-size: 18pt; font-family: '微软雅黑';">MMO</span></strong><strong><span style="font-size: 18pt; font-family: '微软雅黑';">游戏是商业性的</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">MMO</span><span style="font-size: 12pt; font-family: '微软雅黑';">游戏非常流行。随着越来越多的游戏玩家通过宽带来上网，越来越来的因特网用户开始尝试<span>MMO</span>游戏，使用人数正快速的增加。吸引人的<span>WEB2</span>。<span>0</span>以及<span>RIA</span>特性使这些游戏在游戏玩家中快速的流行起来。用户在空闲时间中都沉浸在这些游戏中，哪里有用户，哪里就有商机。但是传统的商业游戏沉浸于在购买时加入一系列的费用。<span>MMO</span>游戏则是要交付不断增加的用于发展与维护的费用，并且由于在线玩的原因会带来其他的商业机会。游戏开发者与发行者将通过多种方式从成功的<span>MMO</span>游戏中获利。发行者通常会选择以下几条<span>:</span></span></p>
<ul type="disc">
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">订阅<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">用户每月资付一定钱以能够继续玩，这是桌面发展中的获利方式，并且曾经一度成为最流行的获利方式。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">广告<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">在基于浏览器的游戏中，我们可以发现，游戏发行商会在游戏场景上方放置一个<span>banner</span>广 告，这些广告链接到普通网页，有些广告会被融入到游戏场景中。举个例子，你在游戏中的角色会被一个高速公路广告牌指引，而这个广告牌上显示的将会是真实的 广告信息。除了这种方式，也可能是下面的两种方式：用户游戏是不需要预选支付费用的。这使观众面得到最大化。由于因特网与<span>Mmo</span>游戏固有的连通性，新广告可以在游戏体验中轮换（出现），而且韵律可以决定每一个广告可以吸引多少眼球。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">虚拟物品的销售<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">虽然玩游戏可能不要钱，但是用户可以通过付现金购买虚拟装备来增加角色的属性或者提高游戏的优势。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">虚拟货币的销售<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';"> While game play may be free, users pay real-world cash to credit their account with virtual currency. The currency is then used to perform game transactions for things like advancing their character growth or purchasing virtual items.</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">Sponsorships:</span></strong><span style="font-size: 12pt; font-family: '微软雅黑';"> Real-world companies who wish to have their brands integrated into the game pay the publishers. An example is a clothing company who wishes to include virtual clothes in the virtual world.</span></li>
</ul>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">Surely, as the audience for MMO gaming expands, advertisers will become increasingly creative with how they monetize the games in this industry.</span></p>
<p><strong><span style="font-size: 18pt; font-family: '微软雅黑';">策划制作一个<span>MMO</span>游戏</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">在规划的互动项目时，重要的是要有令人信服的创造性以及使用匹配的适当技术实现您的想法以及满足您的目标受众。在下面的章节中<span>,</span>我将提供整体的<span>MMO</span>制作的意见以及可用技术的讨论。</span></p>
<p><img src="http://www.adobe.com/newsletters/edge/april2009/articles/article2/images/fig2.png" alt="RIP game logo" width="260" height="130" /></p>
<p><strong><span style="font-size: 12pt; font-family: '微软雅黑';">图<span> 2.</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';"> RIP </span><span style="font-size: 12pt; font-family: '微软雅黑';">游戏<span>LOGO.</span></span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">举个例子<span>,</span>让我们假设我们的目标市场是<span>8-10</span>岁大的男孩与女孩，次目标市场是具有童心的成年人。我制作一个叫做<span>RIP</span>的简单的，完整的<span>FLEX</span>游戏以供我们来讨论一下。它根本不是一个完整的工程，但它的用处是为了让我们交流一下<span>MMO</span>游戏策划与开发的思想。</span></p>
<p><strong><span style="font-size: 13.5pt; font-family: '微软雅黑';">角色与故事</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">除了挑战与美丽的画面来吸引用户，增加角色的难度是保持<span>MMO</span>游戏长期有人玩的一个关键。人物和故事是留住你的用户群的两个关键因素。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">这里有一些提示关于设计<span>MMO</span>游戏时要考虑的<span>:</span></span></p>
<ul type="disc">
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">独一无二<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">你认为伤害你的市场可能会节省您的品牌差异。如果您选择以超人的主题，因为流行的市场调研告诉您，您的用户群喜欢这样的主题，你同时要做好有半打竞争对手也想到了同样的方式的准备。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">让你的角色成长<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">想想<span>RPG</span>游戏。里面的角色有许多特性（如强度，健康，速度和情报）      ，这些都随着经验的增加以及学习新的能力而增加。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">让你的游戏情节成长<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">请记住，如果您希望您的<span>MMO</span>游戏产生持久的寿命。就要把您的内容设计的更像是正在进行的电视节目而不是一个孤独的卖座电影情节。您的开始部分一定要设置很多的铺垫，一定要打下好的基础。</span></li>
</ul>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">对于<span>RIP</span>协议，我使用一个友好的鬼主题（见图<span>3 </span>） 。当我创建的，我无法找到一个友好的以鬼为主题的<span>MMO</span>游 戏。所以这是独一无二的。鬼魂可以有许多人的特性以及也可能产生一些超能力。这就使角色的特性可以增长。当我想到一个鬼的世界，我想几件事情：新的鬼会定 时出现，一个梦幻般的世界上任何事都是可能的，天堂与地狱的主题中角色可以死一遍又一遍。这些想法应该促进一个长期，丰富的故事情节。</span></p>
<p><img src="http://www.adobe.com/newsletters/edge/april2009/articles/article2/images/fig3.png" alt="Character art" width="103" height="193" /></p>
<p><strong><span style="font-size: 12pt; font-family: '微软雅黑';">Figure 3.</span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">角色样子<span>.</span></span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">随着人物和故事情节的确定，您可以让作家和艺术家开始调查所需要的技术。</span></p>
<p><strong><span style="font-size: 13.5pt; font-family: '微软雅黑';">客户端与服务器端技术</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">MMO</span><span style="font-size: 12pt; font-family: '微软雅黑';">游戏技术，主要有两个方面要考虑：客户端和服务器端。您已完成的项目结合了这两种技术。客户端技术（即<span>Adobe Flash Player</span>，<span>AIR</span>，等等）将做一切工作量大的事情<span>-</span>它负责前台表现以及鼠标和键盘的输入。服务器端的技术负责在每个客户端之间进行通信。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">从大处到细节，技术上有许多问题都要考虑。例如，什么类型的计算机不能使用您的产品？<span> Mac</span>或<span>PC</span>或两者都可以？它是桌面应用程序还是运行在<span>Web</span>浏览器？它将是一个三维的或二维的？它要运行在怎样的软件平台上<span>?</span></span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">If you are interested in creating casual online multi-player games without the headache of hosting your own servers, consider checking out the <a href="http://labs.adobe.com/technologies/afcs">Adobe Flash Collaboration Service</a>. </span><span style="font-size: 12pt; font-family: '微软雅黑';">对于这项工作，并与经济的考虑，我们使用的<span>Adobe Flash</span>平台开发并使用<span>2D</span>技术将此游戏部署在网络浏览器。我们使用了<span>Adobe FlexBuilder</span>作为我们的开发环境。我们结合客户端和服务器的技术，在客户端使用<span>Flash Player</span>和在服务器端使用<span><a href="http://www.electro-server.com/">ElectroServer 4</a></span>。与我们的客户端选择的<span>Flash Player </span>，我选择使用了一个现成的服务器技术，其中包括一个<span>ActionScript 3</span>特定的辅助性文件，因为这将有助于加快发展的速度。除了<span>ElectroServer 4 </span>，一些重要的服务器端的选择，支持<span>ActionScript 3</span>还包括<span><a href="http://www.adobe.com/products/flashmediaserver/" target="_blank">Adobe Flash Media Interactive Server 3.5</a></span>和<span><a href="http://www.smartfoxserver.com/" target="_blank">SmartFoxServer 1.6</a></span>。如果你有兴趣创造休闲多玩家游戏并不用为托管自己的服务器头痛时，可以考虑<span><a href="http://labs.adobe.com/technologies/afcs">Adobe Flash Collaboration Service</a></span>。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">我选择<span>ElectroServer 4 </span>，主要是因为它是稳定，易于开发，免费（最多<span>20</span>个用户） 。这意味着你可以开始一个新项目或测试而不用付费。此外，<span> ElectroServer 4</span>具有可扩展性，帮助文档丰富，并得到广泛支持。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">您可能还问我为什么选择二维而不是三维。虽然最新的<span>Flash Player 10</span>中有一些令人兴奋的<span>3D</span>能力，这是仅限于移动二维物体在三维空间或使用软件提供的解决方案（其中提供比硬件提供的解决方案还慢的动画） ，如<span>Papervision3D </span>。我很期待<span>Flash Player</span>中<span>3D</span>的未来 ，但是据我的经验，<span> Flash</span>平台目前不是强大的<span>3D</span>需求的最好的选择。</span></p>
<p><strong><span style="font-size: 18pt; font-family: '微软雅黑';">开发</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">现在，我已决定好了友好鬼主题故事和人物，<span>Flash Player</span>作为客户端，并且<span>ElectroServer 4</span>作为服务器端，我准备开始开<span>Flex Builder</span>中进行开发。对于用户界面，我们将界面分块，以满足特定用户的需求（见图<span>4 </span>） 。每个地区获取用户输入，并作出对应反应：</span></p>
<ul type="disc">
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">连接<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">允许用户登录和登出程序<span>.</span></span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">用户列表<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">显示目前在线的所有用户。</span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">聊天记录<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">显示游戏的聊天记录<span>.</span></span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">聊天输入口<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">允许用户向游戏中的当前用户发送一则消息<span>.</span></span></li>
<li><strong><span style="font-size: 12pt; font-family: '微软雅黑';">游戏界面<span>:</span></span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">显示了游戏世界，由背景艺术和用户角色组成。用户通过控件角色的位置来控制角色进行移动。</span></li>
</ul>
<p><img src="http://www.adobe.com/newsletters/edge/april2009/articles/article2/images/fig4.png" alt="Rough layout of components" width="581" height="419" /></p>
<p><strong><span style="font-size: 12pt; font-family: '微软雅黑';">Figure 4.</span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">粗略布局的组成部分。</span></p>
<p><strong><span style="font-size: 13.5pt; font-family: '微软雅黑';">创建组件</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">我们将按照图<span>4</span>来创造<span>Flex</span>组件。对于每一个组成部分，我们必须考虑到用户的需要，来决定<span>UI</span>元素，以满足这些需要，并充分利用<span>Flex</span>中的<span>MXML</span>来轻松地创建布局。在<span>Flex</span>开发过程中<span>,</span>这是最基本的，所以让我们来看看一个简单的例子。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">如同任何短信应用，聊天输入在应用程序的布局的底部（见图<span>5 </span>） ，用户可以输入文字信息，并将其提交到聊天记录中以供其他用户看到。在参与者之间这是主要的通信方式。</span></p>
<p><img src="http://www.adobe.com/newsletters/edge/april2009/articles/article2/images/fig5.png" alt="Chat Input component before final artwork" width="650" height="75" /></p>
<p><strong><span style="font-size: 12pt; font-family: '微软雅黑';">Figure 5.</span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">聊天输入部分</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">TextInput</span><span style="font-size: 12pt; font-family: '微软雅黑';">与<span>Button</span>组件放在一个<span>Panel</span>组件中<span>, ID</span>属性是用来给主程序中相关功能控件进行编号，当用户点击<span>chatSend_button</span>实例，在<span>chat_textinput</span>实例中的任何文字，将传递给其他玩家。在下一节中，我们将看到这个信息是如何传递给服务器。</span></p>
<p><img src="http://www.adobe.com/newsletters/edge/april2009/articles/article2/images/fig6.png" alt="Chat Input component’s MXML" width="650" height="75" /></p>
<p><strong><span style="font-size: 12pt; font-family: '微软雅黑';">Figure 6.</span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">聊天输入口的<span>MXML.</span></span></p>
<p><strong><span style="font-size: 13.5pt; font-family: '微软雅黑';">客户端<span>-</span>服务器端 代码 </span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">我们继续建立我们的组成部分放下一些客户端与服务器之间的通讯。开发多人游戏与开发单机游戏的根本差别在，当用户交互而产生的任何东西都不应该在屏幕上进行修改。所有的游戏客户端（游戏运行的某个特定的玩家） ，包括提供了输入口的玩家，应当等待回信当服务器说“玩家<span>1</span>已经发出了一个聊天信息” ，例如<span>,</span>当玩家<span>1</span>的客户端发送请求到服务器，服务器发送响应给每一位客户。只有到那时，屏幕才作出更新。当然，玩家<span>1</span>的客户端必须随时准备处理回应，并且当客户端发送请求时<span>,</span>其可以随时随刻的更新。玩家<span>1</span>使用<span>Client (A)</span>发出一个聊天信息请求和处理响应（见图<span>7 </span>） 。发出的信息包含足够的信息以供所有客户作出适当的反应。在这种情况作出的反应很简单地放入到聊天记录中以供所有用户可见。</span></p>
<p><img src="http://www.adobe.com/newsletters/edge/april2009/articles/article2/images/fig7.png" alt="Client-to-server-to-client(s) message flow" width="616" height="489" /></p>
<p><strong><span style="font-size: 12pt; font-family: '微软雅黑';">Figure 7.</span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">客户端<span>-</span>服务器端<span>-</span>客户端信息流</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">在这个游戏中，有<span>5</span>个类型的请求<span>/</span>响应配对（见图<span>8 </span>） 。所有与服务器端的交互是通过一个叫作称为<span>ElectroServer</span>的<span>ActionScript 3</span>对象来实现的。当程序加载连接服务器与加入到房间中时，该组合被显示。所有文字聊天和所有玩家的操作动作（如位置的变化，进攻，防守，等等）用这种方式进行发送。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">当<span>PublicMessageRequest</span>仅发送文字，它通常是作为一个聊天信息。但不仅仅是文字是可能的。一个消息也可以发送一个<span>EsObject</span>对象。这是一个通用的<span>ActionScript 3</span>对象。开发包装<span>EsObject</span>的有用特性<span>-</span>例如，玩家在游戏中移动的新的<span>X</span>和<span>Y</span>的位置。更复杂的游戏功能较重使用<span>EsObjects</span>并且封装更多的数据。创造复杂的游戏而不通过<span>EsObjects</span>传送太多的数据是一种艺术。发送较小的信息将有助于游戏反应速度。最后配对显示如何断开客户端从服务器室当用户结束他或她的游戏。</span></p>
<p><img src="http://www.adobe.com/newsletters/edge/april2009/articles/article2/images/fig8.png" alt="Request/Response pairs for RIP" width="340" height="361" /></p>
<p><strong><span style="font-size: 12pt; font-family: '微软雅黑';">Figure 8.</span></strong><span style="font-size: 12pt; font-family: '微软雅黑';"> RIP</span><span style="font-size: 12pt; font-family: '微软雅黑';">的请求<span>/</span>响应对<span>.</span></span></p>
<p><strong><span style="font-size: 13.5pt; font-family: '微软雅黑';">技能<span>, </span>皮肤以及样式</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">因为<span>Adobe</span>的<span>Creative Suite 4</span>产品之间的合作，整合写好的控件到<span>Flex</span>项目是很简单。这是使用<span>FLEX</span>一个主要好处。如果仔细规划高效率的工作流程，开发人员和设计人员，可以对项目以最少的冲突。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">对于<span>RIP</span>，我开始铺设应用程序的<span>MXML</span>而平面设计师编写<span>CSS</span>来定义颜色和字体。我继续编写角色的移动和交互而艺术设计师用<span>Flash</span>制作背景和角色。我们三人几乎没有中断工作，因为<span>RIP</span>参考可见的元素进行开发。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">在<span>Flex Builder</span>中主要有两种类型的视觉效果：造型和外观。在程序中，造型决定基本色泽和文本显示属性。出色的（但还远远没有完成）的<span>CSS</span>兼容性的<span>Flex</span>允许一个<span>CSS</span>文本文件来定义样式属性。艺术团队编辑和保存每个样式的变化。一个例子是<span>panels</span>的背景颜色梯度和各种字体的处理（见图<span>9 </span>） 。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">应用程序中包括皮肤制定与动画的设计。在<span>RIP</span>中，应用程序中嵌入一个包含资源的<span>SWF</span>文件。界面小组利用<span>Adobe Flash CS4</span>专业版重新发布此<span>SWF</span>以更新每个皮肤。每一次的<span>Flex</span>项目是重新编译，发布的游戏以程序上与创造性上作出修改。一个皮肤制作的例子就是<span>RIP LOGO</span>或鬼魂的动画角色设计（见图<span>9 </span>） 。</span></p>
<p><img src="http://www.adobe.com/newsletters/edge/april2009/articles/article2/images/fig9.png" alt="Finished game with complete styles and skins" width="650" height="485" /></p>
<p><strong><span style="font-size: 12pt; font-family: '微软雅黑';">Figure 9.</span></strong><span style="font-size: 12pt; font-family: '微软雅黑';">完成游戏的风格和完整的皮肤。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">现在我们有了一个坚实的，抛光建立的游戏， 我们都愿意尝试一下。虽然尚未针对许多用户优化，游戏应处理几十个屏幕。加入有趣的是容易的。单击连接并且一个独特的彩色鬼魂显示在屏幕上。输入文字信息 进行交流，然后点击游戏中的任何地方，来控件你的游戏角色。更大的游戏可以扩大到包括化身属性，如经验和速度，以完成任务，库存物品收集，和更多的世界来 探索。</span></p>
<p><strong><span style="font-size: 18pt; font-family: '微软雅黑';">下一步</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">除了发展自己的游戏，有两个重要的辅助因素：在线整合您的应用程序并规划项目的维护工作。</span></p>
<p><strong><span style="font-size: 13.5pt; font-family: '微软雅黑';">整合</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">你的开发周期即将走到尽头时，您需要在线整合您的应用程序。在开发过程中，你可以在您的桌面上运行的一个<span>ElectroServer</span>实例，并直接与出版的<span>SWF</span>文件交互。只需打开两个或两个以上的游戏<span>SWF</span>文件在您的桌面上，以测试多个用户。这个工作流程可以快速发展。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">一旦你已经准备好您的应用程序的在线测试，请执行下列步骤：</span></p>
<ol type="1">
<li><span style="font-size: 12pt; font-family: '微软雅黑';">在<span>Web</span>服务器上安装和运行的一个<span>ElectroServer</span>实例。</span></li>
<li><span style="font-size: 12pt; font-family: '微软雅黑';">您的游戏配置要求在线实例，而非您的桌面实例。</span></li>
<li><span style="font-size: 12pt; font-family: '微软雅黑';">浏览网页，其中包含您的<span>SWF</span>文件，并开始播放。打开两个或两个以上的窗口，以该网页来自同一台式电脑或台式机，以测试不同的多个用户。</span></li>
</ol>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">请记住，对大多数商业应用，你还需要某种玩家匹配系统<span>-</span>通常称为<span>lobby</span>， 这样，用户就可以找到朋友，并开始游戏。您可以建立一个<span>lobby</span>到您的游戏或使用外部的。您可以使用一个精心设计的外部<span>lobby</span>作为入口成多个<span>MMO</span>游戏，所以当你部署多人游戏你不需要重新发明车轮。</span></p>
<p><strong><span style="font-size: 13.5pt; font-family: '微软雅黑';">维护</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">除了典型的应用系统维修，包括错误修正和功能要求，<span> MMO</span>游戏需要更多的行动，不断推出服务后。重要的是要考虑推出网络游戏项目作为一个完整的游戏所需要的。许多商业模式的网络游戏应用受益于前面提到的长期用户。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">用户全神贯注维持数月或数年，需要坚实的社会管理和定期的内容更新。大部分用户将享受来自与其他玩家互动。新玩家加入后引起的社会动态与戏剧性发展将捕获用户的注意力。这是网络游戏类型的游戏开发商一个最大的优势。然而，有很大的竞争来自其他的<span>MMO</span>游戏，以及用户与用户共享，可享受其他许多游戏。为了使您的游戏令人兴奋并保持新鲜，并确保您的用户继续参与，建立一个维持战略去产生更多的角色，游戏关卡，和情节随着时间的推移。由于开发商往往不充分认识维护要求，因此没有和预算范围内保持均衡，保养不善是导致<span>MMO</span>游戏死亡的最大原因。</span></p>
<p><strong><span style="font-size: 18pt; font-family: '微软雅黑';">结尾</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">MMO</span><span style="font-size: 12pt; font-family: '微软雅黑';">游戏结合最好的<span>Web 2.0</span>和<span>RIA</span>方法为用户提供经验。它们可以成为令人兴奋的项目开发和有利可图的事业的游戏出版商。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">建立成功的<span>MMO</span>游戏需要认真规划，包括开发角色和故事应该是独一无二的，并允许发展，建设一个有吸引力的视觉设计，并选择适当的客户端和服务器的技术力量去实现构想。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">开发包括用户界面设计，客户端服务器通信，游戏逻辑，艺术和皮肤。我们相信的<span>Flex Builder</span>是一个理想的客户端的技术的选择，因为它灵活的开发环境。再加上<span>Adobe</span>公司的<span>Creative Suite 4 </span>，<span>Flex Builder</span>将使你从一开始就顺利地构建您的团队协作。</span></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">如果您计划真正特别的东西，制定严密，并保持您的项目启动后运行很久，你就会使用<span>Flex 3</span>创造一个成功的<span>MMO</span>游戏。</span></p>
<p><strong><span style="font-size: 18pt; font-family: '微软雅黑';">致谢</span></strong></p>
<p><span style="font-size: 12pt; font-family: '微软雅黑';">我特别感谢作出贡献的艺术家。<span><a href="http://warrenkenlee.blogspot.com/" target="_blank">Warren Lee</a></span>创造了风格和游戏艺术和<span>Bill Coons</span>的<span><a href="http://www.billcoons.com/" target="_blank">BillCoons.com</a></span>制作了皮肤与界面图形设计。</span></p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2009. |
<a href="http://www.iwanna.cn/archives/2009/07/03/1913/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2009/07/03/1913/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2009/07/03/1913/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2009/07/03/1913/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2009/07/03/1913/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2009/07/03/1913/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>12条有用的Flex代码</title>
		<link>http://www.iwanna.cn/archives/2009/04/08/231/</link>
		<comments>http://www.iwanna.cn/archives/2009/04/08/231/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 01:42:34 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=231</guid>
		<description><![CDATA[1.复制内容到系统剪贴板 System.setClipboard(strContent); 2.复制一个ArrayCollection //dummy solution( well, it works ) var bar:ArrayCollection = new ArrayCollection(); for each ( var i:Object in ac ){ bar.addItem( i ); } // fantastic ! // var bar:ListCollectionView = new ListCollectionView( ListCollectionView( ac ).list ); 3.打开一个新浏览器窗口 navigateToURL(new URLRequest(&#8216;http://ntt.cc&#8217;), &#8216;_blank&#8217;); 4.刷新浏览器 navigateToURL(new URLRequest(&#8220;javascript:location.reload();&#8221;),&#8221;_self&#8221;) 5.关闭浏览器 navigateToURL(new URLRequest(&#8220;javascript:window.close()&#8221;),&#8221;_self&#8221;); 6.设置Alert 窗口的背景为透明 Alert { modalTransparency:0.0; modalTransparencyBlur:0; [...]]]></description>
			<content:encoded><![CDATA[<p>1.复制内容到系统剪贴板</p>
<p>System.setClipboard(strContent);</p>
<p>2.复制一个ArrayCollection</p>
<p>//dummy solution( well, it works )</p>
<p>var bar:ArrayCollection = new ArrayCollection();</p>
<p>for each ( var i:Object in ac ){</p>
<p>bar.addItem( i );</p>
<p>}</p>
<p>// fantastic ! //</p>
<p>var bar:ListCollectionView = new ListCollectionView( ListCollectionView( ac ).list );<br />
<span id="more-231"></span><br />
3.打开一个新浏览器窗口</p>
<p>navigateToURL(new URLRequest(&#8216;http://ntt.cc&#8217;), &#8216;_blank&#8217;);</p>
<p>4.刷新浏览器</p>
<p>navigateToURL(new URLRequest(&#8220;javascript:location.reload();&#8221;),&#8221;_self&#8221;)</p>
<p>5.关闭浏览器</p>
<p>navigateToURL(new URLRequest(&#8220;javascript:window.close()&#8221;),&#8221;_self&#8221;);</p>
<p>6.设置Alert 窗口的背景为透明</p>
<p>Alert</p>
<p>{</p>
<p>modalTransparency:0.0;</p>
<p>modalTransparencyBlur:0;</p>
<p>}</p>
<p>7.取随机颜色</p>
<p>lbl.setStyle(&#8216;color&#8217;, 0xffffff*Math.random());</p>
<p>8.清除子串左侧空格</p>
<p>public function LTrim(s : String):String</p>
<p>{</p>
<p>var i : Number = 0;</p>
<p>while(s.charCodeAt(i) == 32 || s.charCodeAt(i) == 13 || s.charCodeAt(i) == 10 || s.charCodeAt(i) == 9)</p>
<p>{</p>
<p>i++;</p>
<p>}</p>
<p>return s.substring(i,s.length);</p>
<p>}</p>
<p>9.清除字串右侧空格</p>
<p>public function RTrim(s : String):String</p>
<p>{</p>
<p>var i : Number = s.length &#8211; 1;</p>
<p>while(s.charCodeAt(i) == 32 || s.charCodeAt(i) == 13 || s.charCodeAt(i) == 10 ||s.charCodeAt(i) == 9)</p>
<p>{</p>
<p>i&#8211;;</p>
<p>}</p>
<p>return s.substring(0,i+1);</p>
<p>}</p>
<p>10.清除字串左右的空格</p>
<p>public function Trim(s : String):String</p>
<p>{</p>
<p>return LTrim(RTrim(s));</p>
<p>}</p>
<p>11.获取数据类型</p>
<p>getQualifiedClassName(data)</p>
<p>12.生成随机字符串.</p>
<p>private function GenerateCheckCode():String</p>
<p>{</p>
<p>//init</p>
<p>var ran:Number;</p>
<p>var number:Number;</p>
<p>var code:String;</p>
<p>var checkCode:String =&#8221;";</p>
<p>//get 4 radom</p>
<p>for(var i:int=0; i&lt;4; i++)</p>
<p>{</p>
<p>ran=Math.random();</p>
<p>number =Math.round(ran*10000);            //get result like 0.1234</p>
<p>if(number % 2 == 0)</p>
<p>code = String.fromCharCode(48+(number % 10));        //0&#8242;s ASCII code is 48</p>
<p>else</p>
<p>code = String.fromCharCode(65+(number % 26)) ;        // A&#8217;s ASCII code is 65</p>
<p>checkCode += code;</p>
<p>}</p>
<p>return checkCode;</p>
<p>}</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2009. |
<a href="http://www.iwanna.cn/archives/2009/04/08/231/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2009/04/08/231/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2009/04/08/231/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2009/04/08/231/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2009/04/08/231/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2009/04/08/231/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>从程序员的角度切入Flex</title>
		<link>http://www.iwanna.cn/archives/2009/04/01/120/</link>
		<comments>http://www.iwanna.cn/archives/2009/04/01/120/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 04:42:51 +0000</pubDate>
		<dc:creator>seasun</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.iwanna.cn/?p=120</guid>
		<description><![CDATA[随着富客户端的风行日渐，Flash的开发的逐渐从internet应用的补充慢慢推向全客户端应用，更有甚之，整个ERP的客户端全部采用Flash.于是本来为设计为Designer用的Flash也就逐渐进入了程序员的视线。 程序员关注Flash，不在动画设计方面，而在于应用交互。技术上来说Flex的发明功不可没，什么是Flex呢？ 说这个问题之前必须谈谈Flash的，大家通常听说的Flash文件扩展名都是.swf，道理和java的.class是一样的。这个.swf的源文件则是.as(ActionScript)。 而通常设计者所说的Flash制作却是制作.fla文件，这是为什么呢？因为这完全依赖于Macromedia Flash软件，该软件通过可视化地制作动画的帧存储成.fla,然后底层本质上还是转换成ActionScript最后再联编成.swf. 如果愿意，所有Macromeida Flash制作的.fla都可以用actionscript来手写。因此高级flash动画设计师都以会写ActionScript为荣。所以我们说 fla制作工具是actionscript的开发框架，是面向设计者的。 回说Flex，Flex其实是ActionScript的另一个框架，只不过它是面向开发者的，它的出现让Flash与后台数据交互更加简单、开发网络应用更加容易。 Flex之于ActionScript犹如Jsp之于Java 就像学习Java一样，大多数程序员都接受从命令行入门的学习方法，此法让程序员对一门语言知表知里，心如明镜。学习Flex/Flash同样可以采用此思路 I. 安装Flex/Flash编译运行环境：Flex3 SDK 去http://www.adobe.com/products/flex/flexdownloads/下载所有平台下的Flex3 SDK。是一个zip包，下载后简单解压缩到你的硬盘目录，如d:flex，目录结构如下： %flex_homebin有基本的编译工具amxmlc.bat(类似jdk中的javac) %flex_homeruntimesplayer 有flash文件的运行工具,本人用的win32平台，理所当然使用上图所述子目录win下的FlashPlayer.exe(类似jdk中的java) 小提示：建议大家把 %flex_homebin和%flex_homeruntimesplayerwin加入到系统path中去！ II. ActionScript文件编译运行 1.编写一个最简单的ActionScript程序，存盘为d:HelloWorld.as，内容如下： Actionscript代码 package { import flash.display.*; import flash.text.*; public class HelloWorld extends Sprite{ public function HelloWorld(){ var t:TextField = new TextField(); t.text = &#8220;Hello World&#8221;; t.x = 50; t.y = 20; addChild(t); } } } package { import flash.display.*; import flash.text.*; public class HelloWorld extends Sprite{ public function HelloWorld(){ var t:TextField = [...]]]></description>
			<content:encoded><![CDATA[<p>随着富客户端的风行日渐，Flash的开发的逐渐从internet应用的补充慢慢推向全客户端应用，更有甚之，整个ERP的客户端全部采用Flash.于是本来为设计为Designer用的Flash也就逐渐进入了程序员的视线。</p>
<p>程序员关注Flash，不在动画设计方面，而在于应用交互。技术上来说Flex的发明功不可没，什么是Flex呢？</p>
<p>说这个问题之前必须谈谈Flash的，大家通常听说的Flash文件扩展名都是.swf，道理和java的.class是一样的。这个.swf的源文件则是.as(ActionScript)。<br />
<span id="more-120"></span>而通常设计者所说的Flash制作却是制作.fla文件，这是为什么呢？因为这完全依赖于Macromedia Flash软件，该软件通过可视化地制作动画的帧存储成.fla,然后底层本质上还是转换成ActionScript最后再联编成.swf. 如果愿意，所有Macromeida Flash制作的.fla都可以用actionscript来手写。因此高级flash动画设计师都以会写ActionScript为荣。所以我们说 fla制作工具是actionscript的开发框架，是面向设计者的。</p>
<p>回说Flex，Flex其实是ActionScript的另一个框架，只不过它是面向开发者的，它的出现让Flash与后台数据交互更加简单、开发网络应用更加容易。</p>
<p><span style="color: red;">Flex之于ActionScript犹如Jsp之于Java</span></p>
<p>就像学习Java一样，大多数程序员都接受从命令行入门的学习方法，此法让程序员对一门语言知表知里，心如明镜。学习Flex/Flash同样可以采用此思路</p>
<p><strong>I. 安装Flex/Flash编译运行环境：<a href="http://www.iwanna.cn/tags/flex/" class="st_tag internal_tag" rel="tag" title="标签 Flex 下的日志">Flex</a>3 SDK</strong><br />
去http://www.<a href="http://www.iwanna.cn/tags/adobe/" class="st_tag internal_tag" rel="tag" title="标签 Adobe 下的日志">adobe</a>.com/products/flex/flexdownloads/下载所有平台下的Flex3 SDK。是一个zip包，下载后简单解压缩到你的硬盘目录，如d:flex，目录结构如下：<br />
<img src="http://koda.javaeye.com/upload/picture/pic/18590/118f8e96-b36e-3c82-b75b-690f9dd9706e.png" alt="" /></p>
<p>%flex_homebin有基本的编译工具amxmlc.bat(类似jdk中的javac)<br />
%flex_homeruntimesplayer 有flash文件的运行工具,本人用的win32平台，理所当然使用上图所述子目录win下的FlashPlayer.exe(类似jdk中的java)<br />
小提示：建议大家把 %flex_homebin和%flex_homeruntimesplayerwin加入到系统path中去！</p>
<p><strong>II. ActionScript文件编译运行</strong></p>
<p>1.编写一个最简单的ActionScript程序，存盘为d:HelloWorld.as，内容如下：</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Actionscript代码 <object width="14" height="15" data="http://koda.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" type="application/x-shockwave-flash"><param name="flashvars" value="clipboard=package%20%7B%0A%20%20import%20flash.display.*%3B%0A%20%20import%20flash.text.*%3B%0A%0A%20%20public%20class%20HelloWorld%20extends%20Sprite%7B%0A%20%20%20%20public%20function%20HelloWorld()%7B%0A%20%20%20%20%20%20var%20t%3ATextField%20%3D%20new%20TextField()%3B%0A%20%20%20%20%20%20t.text%20%3D%20%22Hello%20World%22%3B%0A%20%20%20%20%20%20t.x%20%3D%2050%3B%0A%20%20%20%20%20%20t.y%20%3D%2020%3B%0A%20%20%20%20%20%20addChild(t)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D" /><param name="src" value="http://koda.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" /><param name="quality" value="high" /></object></div>
</div>
<ol class="dp-default">
<li><span><span>package { </span></span></li>
<li><span> import <a href="http://www.iwanna.cn/tags/flash/" class="st_tag internal_tag" rel="tag" title="标签 Flash 下的日志">flash</a>.display.*; </span></li>
<li><span> import flash.text.*; </span></li>
<li><span> </span></li>
<li><span> public class HelloWorld extends Sprite{ </span></li>
<li><span> public function HelloWorld(){ </span></li>
<li><span> var t:TextField = new TextField(); </span></li>
<li><span> t.text = <span class="string">&#8220;Hello World&#8221;</span><span>; </span></span></li>
<li><span> t.x = <span class="number">50</span><span>; </span></span></li>
<li><span> t.y = <span class="number">20</span><span>; </span></span></li>
<li><span> addChild(t); </span></li>
<li><span> } </span></li>
<li><span> } </span></li>
<li><span>} </span></li>
</ol>
</div>
<pre class="actionscript" style="display: none;">package {
  import flash.display.*;
  import flash.text.*;

  public class HelloWorld extends Sprite{
    public function HelloWorld(){
      var t:TextField = new TextField();
      t.text = "Hello World";
      t.x = 50;
      t.y = 20;
      addChild(t);
    }
  }
}</pre>
<p>2. 编译<br />
cmd进入命令行D盘，运行<br />
amxmlc d:HelloWorld.as<br />
在当前目录下生成目标文件HelloWorld.swf</p>
<p>3. 运行<br />
cmd进入命令行D盘，运行<br />
FlashPlayer HelloWorld.swf</p>
<p>运行结果如下：<br />
<img src="http://koda.javaeye.com/upload/picture/pic/18600/7bd2a20a-c39e-3ae9-96dc-7d700514ea2b.png" alt="" /></p>
<p><strong>III. ActionScript文件编译运行</strong><br />
1. 写一个最简单的flex程序，flex程序扩展名.mxml，内容如下</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Xml代码 <object width="14" height="15" data="http://koda.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" type="application/x-shockwave-flash"><param name="flashvars" value="clipboard=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Cmx%3AApplication%20xmlns%3Amx%3D%22http%3A%2F%2Fwww.adobe.com%2F2006%2Fmxml%22%20layout%3D%22absolute%22%3E%0A%09%3Cmx%3AButton%20x%3D%2230%22%20y%3D%22100%22%20label%3D%22%E6%88%91%E4%BB%AC%E8%A6%81%E7%9B%B8%E4%BF%A1%E5%85%9A%E8%AF%B4%E7%9A%84%3A%E7%93%AE%E5%AE%89%E4%BA%8B%E4%BB%B6%E6%98%AF%E9%BB%91%E5%8A%BF%E5%8A%9B%E8%83%81%E8%BF%AB%E7%BE%A4%E4%BC%97%E4%B8%8A%E8%AE%BF%22%20fontSize%3D%2212%22%20height%3D%2262%22%20width%3D%22345%22%2F%3E%0A%3C%2Fmx%3AApplication%3E%0A" /><param name="src" value="http://koda.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" /><param name="quality" value="high" /></object></div>
</div>
<ol class="dp-xml">
<li><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">&#8220;1.0&#8243;</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&#8220;utf-8&#8243;</span><span class="tag">?&gt;</span><span> </span></span></li>
<li><span><span class="tag">&lt;</span><span class="tag-name">mx:Application</span><span> </span><span class="attribute">xmlns:mx</span><span>=</span><span class="attribute-value">&#8220;http://www.adobe.com/2006/mxml&#8221;</span><span> </span><span class="attribute">layout</span><span>=</span><span class="attribute-value">&#8220;absolute&#8221;</span><span class="tag">&gt;</span><span> </span></span></li>
<li><span> <span class="tag">&lt;</span><span class="tag-name">mx:Button</span><span> </span><span class="attribute">x</span><span>=</span><span class="attribute-value">&#8220;30&#8243;</span><span> </span><span class="attribute">y</span><span>=</span><span class="attribute-value">&#8220;100&#8243;</span><span> </span><span class="attribute">label</span><span>=</span><span class="attribute-value">&#8220;我们要相信党说的:瓮安事件是黑势力胁迫群众上访&#8221;</span><span> </span><span class="attribute">fontSize</span><span>=</span><span class="attribute-value">&#8220;12&#8243;</span><span> </span><span class="attribute">height</span><span>=</span><span class="attribute-value">&#8220;62&#8243;</span><span> </span><span class="attribute">width</span><span>=</span><span class="attribute-value">&#8220;345&#8243;</span><span class="tag">/&gt;</span><span> </span></span></li>
<li><span><span class="tag">&lt;/</span><span class="tag-name">mx:Application</span><span class="tag">&gt;</span><span> </span></span></li>
</ol>
</div>
<pre class="xml" style="display: none;">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"&gt;
	&lt;mx:Button x="30" y="100" label="我们要相信党说的:瓮安事件是黑势力胁迫群众上访" fontSize="12" height="62" width="345"/&gt;
&lt;/mx:Application&gt;</pre>
<p>存盘为d:hello.mxml<br />
2. 编译<br />
cmd进入命令行D盘，运行<br />
amxmlc d:hello.mxml<br />
在当前目录下生成目标文件hello.swf</p>
<p>3. 运行<br />
cmd进入命令行D盘，运行<br />
FlashPlayer hello.swf</p>
<p>结果如下：</p>
<p><img src="http://koda.javaeye.com/upload/picture/pic/18592/1a0f598a-4ac1-3ff1-a253-5194ef23df13.png" alt="" /></p>
<p>简单乎？另外我告诉大家，HelloWorld.as和hello.mxml我完全是在EditPlus中开发和完成编译运行的。最后如果大家都入了门，开始大的Flash工程项目合作开发，请使用Flex Builder吧</p>
<hr />
<p>© <a href="http://www.iwanna.cn">我想网</a> Akon 所有 , 2009. |
<a href="http://www.iwanna.cn/archives/2009/04/01/120/">永久链接</a> |
<a href="http://www.iwanna.cn/archives/2009/04/01/120/#comments">没有评论</a> |
提交到
<a rel="nofollow" target="_blank" href="http://www.google.com/reader/view/feed/http://www.iwanna.cn/archives/2009/04/01/120/">Google Reader</a>
<a rel="nofollow" target="_blank" href="http://www.xianguo.com/subscribe.php?url=http://www.iwanna.cn/archives/2009/04/01/120/">鲜果</a>
<a rel="nofollow" target="_blank" href="http://www.zhuaxia.com/add_channel.php?url=http://www.iwanna.cn/archives/2009/04/01/120/">抓虾</a>
<hr />
<script type="text/javascript"><!--
google_ad_client = "pub-2057344547305288";
/* 336x280,iwanna feed,created 10/3/10 */
google_ad_slot = "9738886183";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<hr />
</p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iwanna.cn/archives/2009/04/01/120/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

