您的位置:首页 > 其它

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

2009-04-18 23:47 337 查看
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;
}


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