Flash组件开发研究(1):简单的新闻列表

  虽然是一种不成熟的思想,但是目前来讲感觉还是很兴奋。今天做了一个新闻列表,看看下面的图

d

这个列表是动态生成的。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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值