虽然是一种不成熟的思想,但是目前来讲感觉还是很兴奋。今天做了一个新闻列表,看看下面的图
这个列表是动态生成的。gai
该组件是MovieClip的制作的,采用了两个TextField。
如:写一个类继承 MovieClip类。在这里类里面添加两个TextField 文本。
package { import flash.display.MovieClip; import flash.events.*; import flash.text.*; import flash.display.Shape; public class NewList extends MovieClip { public var title:TextField;//标题 public var date:TextField;//日期 public var content:TextField; public var dataprovider:XML;//指定数据源 private var format:TextFormat; private var shape:Shape; public function NewList() { format=new TextFormat(); format.color=0x000000; format.size=15; content=new TextField(); content.setTextFormat(format); title=new TextField(); title.x=0; title.y=0; title.width=270; title.height=20; title.setTextFormat(format); title.addEventListener(MouseEvent.MOUSE_DOWN,onDown); title.addEventListener(MouseEvent.MOUSE_OVER,onOver); title.addEventListener(MouseEvent.MOUSE_OUT,onOut); date=new TextField(); date.x=319; date.y=0; date.width=107; date.height=20; date.setTextFormat(format); addChild(title); addChild(date); DrawLine();//画下滑线 } private function DrawLine():void { var shape:Shape=new Shape(); shape.graphics.lineStyle(0.5,0,1); shape.graphics.moveTo(0,21); shape.graphics.lineTo(400,21); addChild(shape); } private function onDown(event:MouseEvent):void { var evt:TextEvent=new TextEvent(TextEvent.LINK); evt.text=content.text; this.dispatchEvent(evt); } private function onOver(event:MouseEvent):void { title.textColor=0xFF0000; } private function onOut(event:MouseEvent):void { title.textColor=0x000000; } } }
测试文档:
var xmlManager:XMLManager=new XMLManager(); xmlManager.LoadXML("New.XML"); xmlManager.addEventListener(LoadEvent.LOADXML,completehandler); function completehandler(event:LoadEvent):void { var xml:XML=event.result; var xmllist:XMLList=xml.item; for (var i:uint=0; i<xmllist.length(); i++) { var news:NewList=new NewList(); news.addEventListener(TextEvent.LINK,clickhandler); news.x=100; news.y=130+25*i; news.title.text=xmllist.title[i]; news.date.text=xmllist.date[i]; news.content.text=xmllist.contect[i]; addChild(news); } } function clickhandler(event:TextEvent):void { var str:String=event.text; trace(str); }
外部加载xml返回xml信息:
package { import flash.net.*; import flash.events.*; public class XMLManager extends EventDispatcher { public function XMLManager() { } public function LoadXML(pach:String):void { var ld:URLLoader=new URLLoader(); ld.load(new URLRequest(pach)); ld.addEventListener(Event.COMPLETE,resultHandle); ld.addEventListener(IOErrorEvent .IO_ERROR,errorhandle); } private function resultHandle(e:Event):void { var myxml:XML=XML(e.target.data ); var sendevent:LoadEvent=new LoadEvent(LoadEvent.LOADXML); sendevent.result=myxml; this.dispatchEvent(sendevent); } private function errorhandle(e:Event):void { throw new Error("加载失败"); } } }
package { import flash.events.Event; public class LoadEvent extends Event { public static const LOADXML:String="loadxml"; public var result:XML; public function LoadEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false) { super(type,false,false); } override public function clone():Event { return new LoadEvent(LoadEvent.LOADXML); } } }
<?xml version="1.0" encoding="gb2312"?> <menu> <item type="news"> <title>Adobe 开发技术日</title> <contect> <!--[CDATA[可以方便快捷的找到您需要的工具.播放按钮放在窗口的上方中部,清晰可见方便你播放,测试和优化你的工程.当你按下按钮时,编辑器将高亮你的游戏窗口而减暗其余的东西,让你更专心的创建发挥你的灵感.可设定位置,缩放和旋转的定制递增量捕捉.在一定范围内拖拽物体将自动吸附任何物体表面.用我们说的重新设计的旋转工具可以非常方便的在局部坐标系或世界坐标系操作物体. ]]> </contect> <date>2009-4-15</date> </item> <item type="news"> <title>Flash的未来</title> <contect> <![CDATA[欢迎参与这一次的活动日 adobe公司举办的技术开发日 ]]> </contect> <date>2009-4-16</date> </item> <item type="news"> <title>提倡环保</title> <contect> <![CDATA[欢迎参与这一次的活动日 adobe公司举办的技术开发日 ]]> </contect> <date>2009-4-17</date> </item> <item type="news"> <title>高兴的闪吧</title> <contect> <![CDATA[欢迎参与这一次的活动日 adobe公司举办的技术开发日 ]]> </contect> <date>2009-4-18</date> </item> <item type="news"> <title>传教的灵魂</title> <contect> <![CDATA[欢迎参与这一次的活动日 adobe公司举办的技术开发日 ]]> </contect> <date>2009-4-18</date> </item> <item type="news"> <title>心情之窗</title> <contect> <![CDATA[欢迎参与这一次的活动日 adobe公司举办的技术开发日 ]]> </contect> <date>2009-4-18</date> </item> <item type="news"> <title>真实故事</title> <contect> <![CDATA[欢迎参与这一次的活动日 adobe公司举办的技术开发日 ]]> </contect> <date>2009-4-18</date> </item> <item type="news"> <title>难记的命运</title> <contect> <![CDATA[欢迎参与这一次的活动日 adobe公司举办的技术开发日 ]]> </contect> <date>2009-4-18</date> </item> <item type="news"> <title>窗口故事</title> <contect> <![CDATA[欢迎参与这一次的活动日 adobe公司举办的技术开发日 ]]--> </contect> <date>2009-4-18</date> </item> </menu>