<?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:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<channel>
<title>傻仔terry研究所</title>
<link>http://www.skyterry.com/blog</link>
<description>傻仔terry研究所</description>
<language>zh-cn</language>
<webMaster>evanlove@gmail.com</webMaster>
<pubDate>Wed, 07 Jan 2009 11:31:49  +0800</pubDate>
<copyright>Copyright 2005 by evan. All rights reserved.</copyright>
<generator>L-Blog AIO 1.0</generator>
<image>
	<title>傻仔terry研究所</title>
	<url>http://www.skyterry.com/blog/images/logo.gif</url>
	<link>http://www.skyterry.com/blog</link>
</image>
<item><link>http://www.skyterry.com/blog/blogview.asp?logID=91</link><title><![CDATA[AS编程，程序智能化理论]]></title><author>天雨净世</author><category>常用问题</category><pubDate>Wed, 17 Sep 2008 11:28:18  +0800</pubDate><description><![CDATA[]]></description><content:encoded><![CDATA[什么是程序智能化？<br><br>这里的智能并不是游戏中NPC的智能行为，而是程序运算处理的多种自动行为，是用户不可见的。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;例如：在AS3中向显示列表中增加显示对象，如果未指定在列表中的位置，将自动追加到最后，而且会事先从有此显示对象的显示列表中删除。这就是一种智能行为，在AS3之前是没有的，但在AS2中可以自己写出此功能。在AS2中实现显示列表功能就是一种程序智能化。<br><br>&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;要想程序智能需要三个基本的功能：类管理、储存列表、消息列队。类管理主要负责对各种命令进行处理，它从储存列表中获取数据放入消息列队。储存列表负责存放各种数据信息，方便管理查找。消息列队执行各种命令对应的处理方法。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;类管理在上次写的《FLASH程序开发基础》中介绍过，储存列表比较简单也就不多说了，这里介绍下消息列队的一种用途，在我们做外部载入的项目中经常会同时加载N个文件，文件大小不一样加载的时间也会不一样，怎样才知道所有文件都加载完了呢？最直接的方法是用int变量记录加载完的文件数量，这样就能判断出是否已经全部加载，但是要实现加载完一个后才加载下一个文件就比较麻烦了。我们来看消息列队是如何实现的，将所有的文件加载放入消息列队，程序自动依次执行，在当前消息没结束前不会执行下一条消息。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;消息列队的实现是用计时器Timer重复执行数组中的第一个元素，元素可以是任何类型的，只要能知道元素的结束，在结束后删除继续执行下一个。<br><br>&nbsp;<br><br>使用以上三个基本功能实现AS3中的显示列表原理：<br><br>&nbsp;&nbsp;&nbsp;&nbsp;步骤1：向类管理发出添加显示对象到显示列表的命令。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;步骤2：类管理查找储存列表中对应显示对象和所在的显示列表。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;步骤3：如果找到，添加（从显示列表中删除显示对象的命令）到消息列队。如果没找到则执行步骤4。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;步骤4：添加（增加显示对象到显示列表中的命令）到消息列队。<br><br>在AS2中可以使用此方法实现AS3中的可视化对象的深度管理。<br><br>&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;以上均为个人理论。<br>]]></content:encoded><guid>http://www.skyterry.com/blog/blogview.asp?logID=91</guid><trackback:ping>http://www.skyterry.com/blog/trackback.asp?tbID=91</trackback:ping><comments>http://www.skyterry.com/blog/blogview.asp?logID=91#comment</comments><wfw:commentRss>http://www.skyterry.com/blog/blogfeed.asp?logID=91</wfw:commentRss></item><item><link>http://www.skyterry.com/blog/blogview.asp?logID=90</link><title><![CDATA[FLASH程序开发基础]]></title><author>天雨净世</author><category>常用问题</category><pubDate>Wed, 17 Sep 2008 11:18:54  +0800</pubDate><description><![CDATA[]]></description><content:encoded><![CDATA[这里说的程序开发基础不是程序语言基础，语言基础的教程有很多，网上到处都能搜到，我也就不必说了。程序开发基础要说的究竟是什么？我们来了解下什么是程序开发，用程序语言编写软体的过程就是程序开发，可能有更好、更专业的描述，但大家能搞懂意思就是行了。用FLASH程序开发基础为标题，因为我是FLASH程序员，是用AS语言写程序，其他语言有什么高招就是他们的事了。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;废话就不多说了，下面就开始主题。一个程序项目在开发之前应该搞清楚有多少功能块，这些功能块有哪些是可以独立，哪些是需要与其他功能块互交的。独立功能块很简单，写好就能用，需要互交的功能块就复杂点了，在AS2.0里面可以把每个功能块装在一个MC（影片剪辑）里面，如果要访问另一个MC里面的属性，可以用路径直接找到，就象WINDOWS里面找文件一下方便，_root指向主场景，只要知道路径就万事OK，但是这样写程序很混乱，路径写错或忘记是常有的事，而且不方便修改，如果有个MC路径需要改变，指向这个MC的路径都要去改一下，MC太多就只有累死。在AS3.0里面取消了_root指向主场景，很多人就傻眼了，有经验的人就会用功能块类的属性来指向主场景，这样做和AS2.0的区别也不大，至于如何把主场景赋值给属性也是个新手问题，很多人都不知道，这里先不讨论。<br><br>&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;如何解决功能块互交的问题，创建功能块管理类，将功能块存放在此类中统一管理，存放方式可以用类属性和数组，使用数组存放应该规定每功能块所在数组单元格，例如：数组[功能块1.ID]=功能块1，这样可以不用考虑路径，对于合作开发也是很有好处的，而且可以演变出多种管理类，统称为管理类。<br><br>&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;现在开始程序开发一步，分出引擎和数据，引擎主要有逻辑和算法构成，也就是说引擎就是我们写出来的程序，数据就是项目的描述，例如：图片位置x=100、y=100,引擎根据描述做出相应的处理。很多人会说赋值了x和y的图片自己就会到坐标上，跟引擎有什么关系，AS代码其实是数据，是种描述，flash&nbsp;player是他的引擎，所以我们要写出自己引擎和数据，这里原理比较复杂，解释一下：自定义数据-&gt;AS代码-&gt;flash&nbsp;player-&gt;AS代码-&gt;flash&nbsp;player，原理性的东西就不祥解了，这样做的好处：大家都遇到过发布的时候等上很长的时间吧，客户频繁的让修改是不是很痛苦，把数据文件放到外部载入，修改一个数据而已，没什么大不了的。<br><br>&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;如何实现引擎和数据，例如：引擎实现表单提交，数据是lable=3,button=1,运行程序后出现3个文本框和1个按钮，引擎代码结构：<br><br>&nbsp;&nbsp;var&nbsp;arr:Array;<br>&nbsp;&nbsp;while&nbsp;(arr1.length&nbsp;&gt;&nbsp;0)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;arr=arr1[0].split(&quot;=&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i:int=0;&nbsp;i&nbsp;&lt;&nbsp;int(arr[1]);&nbsp;i++)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(arr[0]=&quot;lable&quot;)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;createlable();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;if&nbsp;(arr[0]=&quot;button&quot;)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;createbutton();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;function&nbsp;createlable()&nbsp;{<br>&nbsp;&nbsp;&nbsp;//创建一个文本<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;function&nbsp;createbutton()&nbsp;{<br>&nbsp;&nbsp;&nbsp;//创建一个按钮<br>&nbsp;&nbsp;}<br><br>数据是应该有一个对应的解析类，这里因为数据简单就直接写的，数据是可以更复杂的，格式也是自己定义的，其他人基本是看不懂，只要解析类够强，让数据象语言一样都可以，FLASH不就是这样的吗，呵呵。<br><br>&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;以上均为个人理论，天外有天，人外有人，可能会有其他更好的模式。来点小建议，在开发程序的时候尽可能封装功能类，以后开发此功能直接使用，如果此类在二次使用的时候需要修改的代码比较多，那这个类就可以扔垃圾箱了。<br> <img src="images/smilies/icon_lovely.gif" border="0" align="absmiddle" />]]></content:encoded><guid>http://www.skyterry.com/blog/blogview.asp?logID=90</guid><trackback:ping>http://www.skyterry.com/blog/trackback.asp?tbID=90</trackback:ping><comments>http://www.skyterry.com/blog/blogview.asp?logID=90#comment</comments><wfw:commentRss>http://www.skyterry.com/blog/blogfeed.asp?logID=90</wfw:commentRss></item><item><link>http://www.skyterry.com/blog/blogview.asp?logID=89</link><title><![CDATA[扇形排列]]></title><author>天雨净世</author><category>AS3</category><pubDate>Wed, 17 Sep 2008 11:14:02  +0800</pubDate><description><![CDATA[]]></description><content:encoded><![CDATA[最近做卡牌游戏，看见魔兽世界卡牌游戏可以把牌列成一个扇形，感觉挺不错，也想在自己的卡牌游戏中用上这种排列，于是到网上搜算法，发现很多C#、C++的算法，代码还挺长，我最怕看见长篇的代码，那是很恐怖的东东，直接搜FLASH的吧，又搜出很多美工绘制的。哎~~，终于在快绝望的时候找到一个哥们写的画扇程序，这个算法挺好用的，借用了他计算点的算法完成了我的扇形排列。<br><br>&nbsp;<br><br>import&nbsp;fl.controls.ComboBox;<br>import&nbsp;flash.events.MouseEvent;<br>btn.addEventListener(MouseEvent.CLICK,btnOnClick);<br>function&nbsp;btnOnClick(event:MouseEvent)&nbsp;{<br>while&nbsp;(aSpr.length&gt;0)&nbsp;{<br>&nbsp;&nbsp;removeChild(aSpr[0]);<br>&nbsp;&nbsp;aSpr.shift();<br>}<br>aSpr=new&nbsp;Array(int(cbox.selectedItem.label));<br>init();<br>}<br>for&nbsp;(var&nbsp;i:int=1;&nbsp;i&lt;=36;&nbsp;i++)&nbsp;{<br>cbox.addItem({label:i});<br>}<br>var&nbsp;aSpr:Array=new&nbsp;Array(14);<br>init();<br>function&nbsp;init()&nbsp;{<br>for&nbsp;(i=0;&nbsp;i&lt;aSpr.length;&nbsp;i++)&nbsp;{<br>&nbsp;&nbsp;aSpr=new&nbsp;sprite();<br>&nbsp;&nbsp;addChild(aSpr);<br>&nbsp;&nbsp;arrange(250,200,aSpr,trimsector(i,aSpr.length));<br>}<br>}<br>function&nbsp;trimsector(cnum:int,tnum:int)&nbsp;{<br>//根据数量计算弧度位置--扇形排列<br>var&nbsp;incept:int=-(Math.floor(tnum/2)*10);<br>incept=incept+Math.abs((tnum%2)-1)*5;<br>return&nbsp;incept&nbsp;+&nbsp;cnum&nbsp;*&nbsp;10;<br>}<br>function&nbsp;arrange(dp:*,x0:int,y0:int,r:int)&nbsp;{<br>//排列显示对象--扇形排列<br>var&nbsp;obj:Object=getPoint(x0,&nbsp;y0,&nbsp;100,&nbsp;-90,&nbsp;r);<br>dp.rotation=r;<br>dp.x=obj.x;<br>dp.y=obj.y;<br>}<br>function&nbsp;getPoint(x0:int,&nbsp;y0:int,&nbsp;r:int,&nbsp;a0:int,&nbsp;a:Number)&nbsp;{<br>//参数：x0=圆点坐标X，y=圆点坐标Y，r=半径，a0=原弧度，a=目标弧度<br>//计算位置坐标--扇形排列<br>a&nbsp;+=&nbsp;a0;<br>a&nbsp;=&nbsp;a*Math.PI/180;<br>return&nbsp;{x:Math.cos(a)&nbsp;*&nbsp;r&nbsp;+&nbsp;x0,y:Math.sin(a)&nbsp;*&nbsp;r&nbsp;+&nbsp;y0};<br>}<br>演示地址<br><br><a target="_blank" href="http://space.flash8.net/bbs/attachment.php?aid=349545" rel="nofollow">http://space.flash8.net/bbs/attachment.php?aid=349545</a><br><br>]]></content:encoded><guid>http://www.skyterry.com/blog/blogview.asp?logID=89</guid><trackback:ping>http://www.skyterry.com/blog/trackback.asp?tbID=89</trackback:ping><comments>http://www.skyterry.com/blog/blogview.asp?logID=89#comment</comments><wfw:commentRss>http://www.skyterry.com/blog/blogfeed.asp?logID=89</wfw:commentRss></item><item><link>http://www.skyterry.com/blog/blogview.asp?logID=88</link><title><![CDATA[AS3.0滚动条]]></title><author>天雨净世</author><category>AS3</category><pubDate>Wed, 17 Sep 2008 11:10:20  +0800</pubDate><description><![CDATA[]]></description><content:encoded><![CDATA[AS3中取消了onReleaseOutside事件，这对滑块的拖拉造成了点麻烦，不过我们可以用多个事件模拟出onReleaseOutside事件，以下是模仿了简单的ScrollBar类。<br><br>package&nbsp;display{<br>&nbsp;import&nbsp;flash.display.Sprite;<br>&nbsp;import&nbsp;flash.display.SimpleButton;<br>&nbsp;import&nbsp;flash.events.MouseEvent;<br>&nbsp;import&nbsp;flash.geom.Rectangle;<br>&nbsp;public&nbsp;class&nbsp;Scroll&nbsp;extends&nbsp;Sprite&nbsp;{<br>&nbsp;&nbsp;public&nbsp;var&nbsp;container:*;//显示的容器&nbsp;&nbsp;必须是MovieClip类或MovieClip子类<br>&nbsp;&nbsp;public&nbsp;var&nbsp;viscera:*;//容器中的内容&nbsp;&nbsp;必须是MovieClip类或MovieClip子类<br>&nbsp;&nbsp;public&nbsp;var&nbsp;top:int=0;//滑块移动最小的Y坐标<br>&nbsp;&nbsp;public&nbsp;var&nbsp;bottom:int=0;//滑块移动最大的Y坐标<br>&nbsp;&nbsp;public&nbsp;function&nbsp;Scroll()&nbsp;{<br>&nbsp;&nbsp;&nbsp;btn_scrollbar.addEventListener(MouseEvent.MOUSE_DOWN,btn_scrollbarOnDown);<br>&nbsp;&nbsp;&nbsp;btn_up.addEventListener(MouseEvent.MOUSE_DOWN,btn_upOnDown);<br>&nbsp;&nbsp;&nbsp;btn_down.addEventListener(MouseEvent.MOUSE_DOWN,btn_downOnDown);<br>&nbsp;&nbsp;&nbsp;top=btn_up.y+btn_up.height;//根据btn_up（向上移动的按钮）计算top值<br>&nbsp;&nbsp;&nbsp;bottom=btn_down.y-top-btn_scrollbar.height;//根据btn_down（向下移动的按钮）计算top值<br>&nbsp;&nbsp;&nbsp;btn_scrollbar.y=top;<br>&nbsp;&nbsp;&nbsp;btn_scrollbar.buttonMode=true<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;private&nbsp;function&nbsp;btn_scrollbarOnDown(event:MouseEvent):void&nbsp;{<br>&nbsp;&nbsp;&nbsp;btn_scrollbar.startDrag(false,new&nbsp;Rectangle(btn_scrollbar.x,top,btn_scrollbar.x,bottom));<br>&nbsp;&nbsp;&nbsp;stage.addEventListener(MouseEvent.MOUSE_UP,stageOnUp);<br>&nbsp;&nbsp;&nbsp;stage.addEventListener(MouseEvent.MOUSE_MOVE,stageOnMove);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;private&nbsp;function&nbsp;stageOnUp(event:MouseEvent):void&nbsp;{<br>&nbsp;&nbsp;&nbsp;btn_scrollbar.stopDrag();<br>&nbsp;&nbsp;&nbsp;stage.removeEventListener(MouseEvent.MOUSE_MOVE,stageOnMove);<br>&nbsp;&nbsp;&nbsp;stage.removeEventListener(MouseEvent.MOUSE_UP,stageOnUp);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;private&nbsp;function&nbsp;stageOnMove(event:MouseEvent):void&nbsp;{<br>&nbsp;&nbsp;&nbsp;redressal();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;private&nbsp;function&nbsp;btn_upOnDown(event:MouseEvent):void&nbsp;{<br>&nbsp;&nbsp;&nbsp;btn_scrollbar.y-=2;<br>&nbsp;&nbsp;&nbsp;if&nbsp;(btn_scrollbar.y&lt;top)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;btn_scrollbar.y=top;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;redressal();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;private&nbsp;function&nbsp;btn_downOnDown(event:MouseEvent):void&nbsp;{<br>&nbsp;&nbsp;&nbsp;btn_scrollbar.y+=2;<br>&nbsp;&nbsp;&nbsp;if&nbsp;(btn_scrollbar.y&gt;bottom)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;btn_scrollbar.y=bottom;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;redressal();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;private&nbsp;function&nbsp;redressal()&nbsp;{<br>&nbsp;&nbsp;&nbsp;viscera.y=-numtopercent(btn_scrollbar.y-top,&nbsp;bottom,&nbsp;viscera.height-container.height);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;public&nbsp;function&nbsp;containerRect(minx:int,miny:int,maxx:int,maxy:int){//容器的显示区域设定函数<br>&nbsp;&nbsp;&nbsp;container.scrollRect=new&nbsp;Rectangle(minx,miny,maxx,maxy)<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;public&nbsp;function&nbsp;numtopercent(minnum:Number,&nbsp;maxnum:Number,&nbsp;barlen:Number)&nbsp;{<br>&nbsp;&nbsp;&nbsp;var&nbsp;percent:Number&nbsp;=&nbsp;Math.floor(minnum/maxnum*100);<br>&nbsp;&nbsp;&nbsp;percent&nbsp;=&nbsp;Math.floor(barlen*(percent/100));<br>&nbsp;&nbsp;&nbsp;return&nbsp;percent;<br>&nbsp;&nbsp;}<br>&nbsp;}<br>}<br><br>此类为FLASH&nbsp;CS3&nbsp;中使用，元件中需要btn_scrollbar（滑块元件），btn_up（上按钮），btn_down(下按钮)，元件中图形的XY坐标为0。container，viscera需从上级传入。<br> <img src="images/smilies/icon_sleep.gif" border="0" align="absmiddle" />]]></content:encoded><guid>http://www.skyterry.com/blog/blogview.asp?logID=88</guid><trackback:ping>http://www.skyterry.com/blog/trackback.asp?tbID=88</trackback:ping><comments>http://www.skyterry.com/blog/blogview.asp?logID=88#comment</comments><wfw:commentRss>http://www.skyterry.com/blog/blogfeed.asp?logID=88</wfw:commentRss></item><item><link>http://www.skyterry.com/blog/blogview.asp?logID=87</link><title><![CDATA[不要在构造函数里创建MC]]></title><author>傻仔terry</author><category>常用问题</category><pubDate>Sun, 13 Jul 2008 20:59:44  +0800</pubDate><description><![CDATA[]]></description><content:encoded><![CDATA[不要在构造函数里创建MC&nbsp;&nbsp;因为哪个时候创建_root不没有所以~~~会导致出问题]]></content:encoded><guid>http://www.skyterry.com/blog/blogview.asp?logID=87</guid><trackback:ping>http://www.skyterry.com/blog/trackback.asp?tbID=87</trackback:ping><comments>http://www.skyterry.com/blog/blogview.asp?logID=87#comment</comments><wfw:commentRss>http://www.skyterry.com/blog/blogfeed.asp?logID=87</wfw:commentRss></item><item><link>http://www.skyterry.com/blog/blogview.asp?logID=86</link><title><![CDATA[AS3怎么用字符串来new库中MC]]></title><author>傻仔terry</author><category>AS3</category><pubDate>Sat, 02 Feb 2008 14:59:00  +0800</pubDate><description><![CDATA[]]></description><content:encoded><![CDATA[突然有用到一下子也不会找找帮助得左...果然最强高手还是帮助<br><br>var&nbsp;cls:Class&nbsp;=&nbsp;getDefinitionByName(&quot;MC名&quot;)&nbsp;as&nbsp;Class;<br>var&nbsp;spc=new&nbsp;cls();<br><br>getDefinitionByName&nbsp;()&nbsp;函数&nbsp;&nbsp;&nbsp;<br><br>public&nbsp;function&nbsp;getDefinitionByName(name:String):Object&nbsp;<br><br>语言版本&nbsp;:&nbsp;&nbsp;ActionScript&nbsp;3.0&nbsp;<br>Player&nbsp;版本&nbsp;:&nbsp;&nbsp;Flash&nbsp;Player&nbsp;9&nbsp;<br><br>返回&nbsp;name&nbsp;参数指定的类的类对象引用。&nbsp;<br><br>参数&nbsp;&nbsp;name:String&nbsp;—&nbsp;类的名称。&nbsp;&nbsp;<br><br>返回&nbsp;&nbsp;Object&nbsp;—&nbsp;返回&nbsp;name&nbsp;参数指定的类的类对象引用。&nbsp;&nbsp;<br>]]></content:encoded><guid>http://www.skyterry.com/blog/blogview.asp?logID=86</guid><trackback:ping>http://www.skyterry.com/blog/trackback.asp?tbID=86</trackback:ping><comments>http://www.skyterry.com/blog/blogview.asp?logID=86#comment</comments><wfw:commentRss>http://www.skyterry.com/blog/blogfeed.asp?logID=86</wfw:commentRss></item><item><link>http://www.skyterry.com/blog/blogview.asp?logID=85</link><title><![CDATA[先占位~~~]]></title><author>傻仔terry</author><category>FlashGame</category><pubDate>Thu, 31 Jan 2008 16:50:58  +0800</pubDate><description><![CDATA[]]></description><content:encoded><![CDATA[坐标旋转,一般要得知到angle(角度),radius(距离).<br>&nbsp;&nbsp;//的简单的坐标旋转<br>&nbsp;&nbsp;var&nbsp;dx:Number&nbsp;=&nbsp;主角.x&nbsp;-&nbsp;参照物.x;<br>&nbsp;&nbsp;var&nbsp;dy:Number&nbsp;=&nbsp;主角.y&nbsp;-&nbsp;参照物.y;<br>&nbsp;&nbsp;var&nbsp;angle:Number&nbsp;=&nbsp;Math.atan2(dy,&nbsp;dx);<br>&nbsp;&nbsp;var&nbsp;radius:Number&nbsp;=&nbsp;Math.sqrt(dx&nbsp;*&nbsp;dx&nbsp;+&nbsp;dy&nbsp;*&nbsp;dy);<br>&nbsp;&nbsp;vx&nbsp;=&nbsp;Math.cos(angle)&nbsp;*&nbsp;radius;<br>&nbsp;&nbsp;vy&nbsp;=&nbsp;Math.sin(angle)&nbsp;*&nbsp;radius;<br><br>&nbsp;&nbsp;//先进的坐标旋转<br>&nbsp;&nbsp;var&nbsp;dx:Number&nbsp;=&nbsp;主角.x&nbsp;-&nbsp;参照物.x;<br>&nbsp;&nbsp;var&nbsp;dy:Number&nbsp;=&nbsp;主角.y&nbsp;-&nbsp;参照物.y;<br>&nbsp;&nbsp;主角.x&nbsp;=&nbsp;cos(angle)&nbsp;*&nbsp;dx&nbsp;-&nbsp;sin(angle)&nbsp;*&nbsp;dy;<br>&nbsp;&nbsp;主角.y&nbsp;=&nbsp;cos(angle)&nbsp;*&nbsp;dy&nbsp;+&nbsp;sin(angle)&nbsp;*&nbsp;dx;]]></content:encoded><guid>http://www.skyterry.com/blog/blogview.asp?logID=85</guid><trackback:ping>http://www.skyterry.com/blog/trackback.asp?tbID=85</trackback:ping><comments>http://www.skyterry.com/blog/blogview.asp?logID=85#comment</comments><wfw:commentRss>http://www.skyterry.com/blog/blogfeed.asp?logID=85</wfw:commentRss></item><item><link>http://www.skyterry.com/blog/blogview.asp?logID=84</link><title><![CDATA[传参之事件代理]]></title><author>傻仔terry</author><category>AS3</category><pubDate>Thu, 31 Jan 2008 12:24:42  +0800</pubDate><description><![CDATA[]]></description><content:encoded><![CDATA[<br>有时候我们在调用事件侦听器的时候，需要给它传进相应的参数，这个时候用事件代理的方法非常简单：<br><br><br>function&nbsp;create(f:Function,...&nbsp;arg):Function&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;F:Boolean=false;<br>&nbsp;&nbsp;&nbsp;var&nbsp;_f:Function=function(e:*){<br>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;a:*=arg<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!F){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F=true<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.unshift(e)<br>&nbsp;&nbsp;&nbsp;&nbsp;};<br>&nbsp;&nbsp;&nbsp;f.apply(null,a);<br>&nbsp;&nbsp;&nbsp;&nbsp;};<br>&nbsp;&nbsp;&nbsp;return&nbsp;_f;<br>&nbsp;&nbsp;}<br>stage.addEventListener(MouseEvent.MOUSE_DOWN,create(mouseDownHandler,&quot;a&quot;,&quot;b&quot;));<br>function&nbsp;mouseDownHandler(e:MouseEvent,...arg)&nbsp;{<br>&nbsp;&nbsp;trace(arg);<br>}]]></content:encoded><guid>http://www.skyterry.com/blog/blogview.asp?logID=84</guid><trackback:ping>http://www.skyterry.com/blog/trackback.asp?tbID=84</trackback:ping><comments>http://www.skyterry.com/blog/blogview.asp?logID=84#comment</comments><wfw:commentRss>http://www.skyterry.com/blog/blogfeed.asp?logID=84</wfw:commentRss></item><item><link>http://www.skyterry.com/blog/blogview.asp?logID=83</link><title><![CDATA[从超链接处调用AS]]></title><author>傻仔terry</author><category>AS3</category><pubDate>Tue, 29 Jan 2008 17:32:32  +0800</pubDate><description><![CDATA[]]></description><content:encoded><![CDATA[//&nbsp;从超链接处调用AS<br>这个AS2就已经能实现了不过现在只讲AS3的<br>var&nbsp;usr:String=&quot;&lt;a&nbsp;href=&#39;event:<a target="_blank" href="http://www.skyterry.com&#39;&gt;skyterry&lt;/a&gt;&quot;;" rel="nofollow">http://www.skyterry.com&#39;&gt;skyterry&lt;/a&gt;&quot;;</a><br>var&nbsp;my_txt:TextField=new&nbsp;TextField();<br>my_txt.htmlText=usr;<br><br>my_txt.addEventListener(TextEvent.LINK,link_func);<br>function&nbsp;link_func(e:TextEvent)&nbsp;{<br>&nbsp;trace(&quot;你点到超链接了!!!&quot;);<br>&nbsp;trace(e.text);//输出&nbsp;<a target="_blank" href="http://www.hcxm.cn" rel="nofollow">http://www.hcxm.cn</a><br>&nbsp;//添加这个侦听器后，不会在浏览器中打开页面了<br>}<br><br>addChild(my_txt);<br><br>如果想传参数的话就自已写个继承TextEvent类再传入参数就行了~~~还有不明可以留言<br><br><br>]]></content:encoded><guid>http://www.skyterry.com/blog/blogview.asp?logID=83</guid><trackback:ping>http://www.skyterry.com/blog/trackback.asp?tbID=83</trackback:ping><comments>http://www.skyterry.com/blog/blogview.asp?logID=83#comment</comments><wfw:commentRss>http://www.skyterry.com/blog/blogfeed.asp?logID=83</wfw:commentRss></item><item><link>http://www.skyterry.com/blog/blogview.asp?logID=82</link><title><![CDATA[AS3与JaveScript之间的通讯(不想找帮助的可以入来睇)]]></title><author>傻仔terry</author><category>AS3</category><pubDate>Tue, 29 Jan 2008 17:22:12  +0800</pubDate><description><![CDATA[]]></description><content:encoded><![CDATA[很简单~~~~不过充实一下这里教程还是加上来吧~~~~~~<br><div class='media'><input id="VOBJ_7643" type="hidden" value="-1" /><a href="javascript:UBBShowObj('swf','OBJ_7643','attachments/month0801/wtlz_javascriptAs3.swf','520','400');"><img src="images/icon_media.gif" alt="显示影视文件" align="absmiddle" border="0" /> 点击显示/隐藏影视文件</a> <div id="OBJ_7643">影音源文件地址：<a href="attachments/month0801/wtlz_javascriptAs3.swf" target="_blank">attachments/month0801/wtlz_javascriptAs3.swf</a></div></div><br><br>原件也放上~:<br><img src="attachments/m&#111;nth0801/liap_20077171641181.jpg" border="0" onload="javascript:DrawImage(this);" alt="按此在新窗口打开图片" onmouseover="this.style.cursor='hand';" onclick="window.open(this.src);" /><br><br>把jpg改为rar就行了]]></content:encoded><guid>http://www.skyterry.com/blog/blogview.asp?logID=82</guid><trackback:ping>http://www.skyterry.com/blog/trackback.asp?tbID=82</trackback:ping><comments>http://www.skyterry.com/blog/blogview.asp?logID=82#comment</comments><wfw:commentRss>http://www.skyterry.com/blog/blogfeed.asp?logID=82</wfw:commentRss></item>
</channel>
</rss>