您的位置:首页 > 其它

Flash组件开发研究(2):显示文章内容

2009-04-18 23:47 323 查看
package 
{
	import flash.display.MovieClip;
	import flash.events.*;
	import flash.display.SimpleButton;
	import flash.text.*;

	public class TextBox extends MovieClip
	{  
	    public var message:TextField;//显示文本消息
		public var closeBtn:MovieClip;//关闭按钮
		private var format:TextFormat;//文本格式
		public function TextBox(Width:Number=500,Height:Number=280)
		{  //文本框大小
		   format=new TextFormat();
		   format.color=0x000000;//默认颜色
		   format.size=15;	   //默认文本大小
           message=new TextField();
		   message.width=Width;
		   message.height=Height;
		   message.border=true;
		   message.multiline=true;//设置多行
		   message.wordWrap=true;
		   message.setTextFormat(format);
		   addChild(message);
		   
		   closeBtn=new MovieClip();
		   var closetxt:TextField=new TextField();
		   closetxt.text="CLOSE";
		   closeBtn.addChild(closetxt);//创建一个Close的按钮
		   addChild(closeBtn);
		   closeBtn.addEventListener(MouseEvent.CLICK,onClick);//对这个按钮进行监听
		   closeBtn.x=0;
		   closeBtn.y=Height+20;
		   
		}
			
		public function setTextBoxFormat(format:TextFormat,txt:TextField):void
		{
			txt.setTextFormat(format);//设置文本格式
		}
		
		private function onClick(event:MouseEvent):void
		{
			this.visible=false;
			this.dispatchEvent(new Event("Close"));//分派close事件,自定义事件
			
		}
		
		
		
	}
}






这一次,我们会***一个TextBox,和文本TextArea 差不多,只是我们增加多一个按钮,按钮带一个分派事件Close事件。

这个close事件目的是关闭我们的文本。在第一个组件开发研究《1》里面***了一简单的显示新闻文章列表,这里没有解决我们的问题点击了标题后,如何去进入文本。



看一下xml文件:

<item type="news">
<title>提倡环保</title>
<contect>
<![CDATA[欢迎参与这一次的活动日 adobe公司举办的技术开发日 ]]>
</contect>
<date>2009-4-17</date>
</item>



在这个xml里面,有title标签,这个标签用于填充我们的title文本,date用于填充我们的date文本这个属性当中。当中contect内容,在我们点击后,并没有能够显示出来 。



为了解决这个问题,我们设计一个类,包括message的文本信息。



测试:下面的文档,把他放在时间轴里面测试



var xmlManager:XMLManager=new XMLManager();
xmlManager.LoadXML("New.XML");
xmlManager.addEventListener(LoadEvent.LOADXML,completehandler);

var box:TextBox=new TextBox();//创建TextBox类
box.x=95;
box.y=150;
box.addEventListener("Close",closeHandler);//监听close事件
var textcontain:MovieClip=new MovieClip();

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];
		textcontain.addChild(news);//文本容器,用于隐藏的时候一次性隐藏
	}
	addChild(textcontain);
}
function clickhandler(event:TextEvent):void
{
	textcontain.visible=false;
	box.visible=true;
	box.message.text=event.text;

	addChild(box);
}

function closeHandler(event:Event):void
{

	box.visible=false;
	textcontain.visible=true;
}







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: