Flash中实现博客标签Tag的3D滚动效果
今天我们谈谈使用Flash制作3D滚动标签。标签是一个网站尤其是博客类网站的数据分类方式,您可以为你的文章添加一个或多个标签,这样就把内容有关联性的文章之间建立了联系,当我点击某个标签的时候,含有该标签的所有的文章都会呈现出来。
本例中我将Flash技术站点的标签做成了XML文件,每个标签含有两个属性,一个是标签名,另一个是链接网址。具体的制作步骤如下:
1.读入XML文件。使用URLRequest类和URLLoader类。
2.当载入XML文件完成时,使用for循环读取XMl文件的元素个数,作为后面循环语句的结束条件。
3..使用for循环创建TextField实例,使用for循环将XML文件中的标签名赋值给TextField实例的text属性,并把实例赋值给数组,方便后面的操作。
4创建TextFormat实例,该类是进行文本格式化的类,将XML文件里的链接地址赋值给该类的url属性。使用TextField类的setTextFormat方法格式化文本。
5.创建ENTER_FRAME事件,实现标签的3D滚动效果。加入if语句,如果标签超出屏幕,该标签重新出现在舞台。
- import flash.net.URLRequest;
- import flash.display.Loader;
- import flash.events.Event;
- import flash.text.TextField;
- import flash.display.Sprite;
- import flash.text.TextFormat;
- var req:URLRequest = new URLRequest("website.xml");
- var xmlloader:URLLoader = new URLLoader(req);
- var xml:XML;
- var i:int = 0;
- var mysty:TextFormat=new TextFormat();
- var array:Array=new Array();
- xmlloader.addEventListener(Event.COMPLETE,oncomplete);
- function oncomplete(e:Event):void
- {
- xml = new XML(xmlloader.data);
- for (var my:String in xml.web)//读取元素个数
- {
- i++;
- }
- for (var j:int=0; j<i; j++)
- {
- mysty.font = "Verdana";
- mysty.size = 30;
- mysty.color = 0xFFFFFF;
- mysty.bold = true;
- mysty.url = xml.web[j].http;
- var tf:TextField=new TextField();
- tf.text = xml.web[j].name;
- tf.x = Math.random() * 300 - 50;
- tf.y = Math.random() * 300 - 50;
- tf.z = Math.random() * 1000;
- tf.width = 400;
- tf.selectable = false;
- array.push(tf);
- tf.z = Math.random() * 1000;
- tf.setTextFormat(mysty);
- }
- }
- addEventListener(Event.ENTER_FRAME,onenter);
- function onenter(e:Event):void
- {
- for (var c:int; c<i; c++)
- {
- addChild(array[c] as TextField);
- array.alpha += 10;
- array[c].z -= 5;
- array[c].y += 2;
- array[c].x += 1;
- if (array[c].y > stage.stageHeight)
- {
- array[c].y = stage.stageHeight * Math.random() - 100;
- array[c].x = stage.stageWidth * Math.random() - 100;
- array[c].z = Math.random() * 2000;
- }
- }
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例