当前位置: 首页 > news >正文

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>

相关文章:

  • ASP.NET中的一些小技巧
  • 写查询语句出现的问题.显示查不到的数据出错,帮忙看看
  • 深入剖析SAS技术
  • linux命令--grep
  • 鞋为什么会臭?14个方法巧除鞋臭脚臭!
  • Linux下history命令用法15例-zt
  • 我的架构经验小结(四)-- 实战中演化的三层架构
  • 世卫专家评估甲型H1N1病毒大流行风险
  • Ruby之旅—Ruby解释器的安装
  • 我在Asp.net记录错误日志的代码
  • GRUB 安装使用
  • 生成建表脚本(V2.0)
  • EX07学习笔记之一:Exchange2007在Win2003上的安装
  • web developer tips (1):创建、管理、应用样式表的强大工具
  • AS2中Tween类的delete与stop
  • [译] 怎样写一个基础的编译器
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • CODING 缺陷管理功能正式开始公测
  • CSS实用技巧干货
  • Docker下部署自己的LNMP工作环境
  • Elasticsearch 参考指南(升级前重新索引)
  • es6要点
  • export和import的用法总结
  • golang 发送GET和POST示例
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • mongodb--安装和初步使用教程
  • opencv python Meanshift 和 Camshift
  • Rancher如何对接Ceph-RBD块存储
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • sessionStorage和localStorage
  • supervisor 永不挂掉的进程 安装以及使用
  • vue中实现单选
  • 编写高质量JavaScript代码之并发
  • 大整数乘法-表格法
  • 当SetTimeout遇到了字符串
  • 将回调地狱按在地上摩擦的Promise
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 深入浅出Node.js
  • 突破自己的技术思维
  • 一天一个设计模式之JS实现——适配器模式
  • 一些css基础学习笔记
  • 异常机制详解
  • 再谈express与koa的对比
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • #Linux(Source Insight安装及工程建立)
  • $ git push -u origin master 推送到远程库出错
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (1) caustics\
  • (BFS)hdoj2377-Bus Pass
  • (SpringBoot)第七章:SpringBoot日志文件
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)基于IDEA的JAVA基础12