使用AS3脚本可以加载外部的文本文件,并进行解析,制作可动态更新的动画或互动课件,无需修改源文件,灵活性大大提高。
新建一个记事本文件,命名为info.txt,里面的内容如下,具体可根据需要进行制作,其中“|”是为了加载后进行解析使用的:
信息a|信息b|信息c|信息d|信息e
接下来,要另存这个txt为info.xml,其它选项如下,编码一定要选择utf-8,以正常显示中文。
打开FLASH软件,选择新建AS3文档。一定要保存到和文本文件同一路径下。
在舞台上画一个矩形,并转换为影片剪辑。
双击影片剪辑进入编辑状态。
选择文本工具,在矩形上放一个动态文本框,如下图
动态文本框属性设置如下,消除锯齿选项选择使用设备字体。
回到舞台,将影片剪辑复制四个出来,按文本文件中的数量复制即可。
设置它们的实例名分别为mc0,mc1,mc2,mc3....
准备工作做好了,接下来编写代码,如下:
import flash.display.MovieClip;
var mc_count:int=5;//影片剪辑数量
var infoAry:Array=new Array();//存放信息
var txt_loader:URLLoader=new URLLoader();//加载文本文件使用
init();//初始化
function init():void
{
txt_loader.load(new URLRequest("info.xml"));//设置加载路径并开始加载
txt_loader.addEventListener(Event.COMPLETE,LoadedTxtEvent);//加载完成侦听
}
function LoadedTxtEvent(e:Event):void
{
var tempstr:String=String(e.target.data);
infoAry=tempstr.split("|");//解析文本信息
for(var i:int=0;i<mc_count;i++)
{
this["mc"+i].txt.visible=false;//隐藏文本框
this["mc"+i].txt.mouseEnabled=false;//设置文本框不响应鼠标
this["mc"+i].txt.text=infoAry[i];//设置文本框内容
this["mc"+i].addEventListener(MouseEvent.MOUSE_OVER,MouseOverEvent);//鼠标经过事件
this["mc"+i].addEventListener(MouseEvent.MOUSE_OUT,MouseOutEvent);//鼠标离开事件
}
}
function MouseOverEvent(e:MouseEvent):void
{
var obj:MovieClip=e.currentTarget as MovieClip;
obj.txt.visible=true;
}
function MouseOutEvent(e:MouseEvent):void
{
var obj:MovieClip=e.currentTarget as MovieClip;
obj.txt.visible=false;
}
CTRL+ENTER就可以看到效果了。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!