·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

Flash中实现博客标签Tag的3D滚动效果

时间:2011-07-29 17:30flashabc.net
Flash中实现博客标签Tag的3D滚动效果,今天我们谈谈使用Flash制作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语句,如果标签超出屏幕,该标签重新出现在舞台。

  1. import flash.net.URLRequest;  
  2. import flash.display.Loader;  
  3. import flash.events.Event;  
  4. import flash.text.TextField;  
  5. import flash.display.Sprite;  
  6. import flash.text.TextFormat;  
  7.  
  8. var req:URLRequest = new URLRequest("website.xml");  
  9. var xmlloader:URLLoader = new URLLoader(req);  
  10. var xml:XML;  
  11. var i:int = 0;  
  12. var mysty:TextFormat=new TextFormat();  
  13. var array:Array=new Array();  
  14.  
  15. xmlloader.addEventListener(Event.COMPLETE,oncomplete);  
  16. function oncomplete(e:Event):void  
  17. {  
  18.   xml = new XML(xmlloader.data);  
  19.   for (var my:String in xml.web)//读取元素个数  
  20.   {  
  21.     i++;  
  22.   }  
  23.   for (var j:int=0; j<i; j++)  
  24.   {  
  25.     mysty.font = "Verdana";  
  26.     mysty.size = 30;  
  27.     mysty.color = 0xFFFFFF;  
  28.     mysty.bold = true;  
  29.     mysty.url = xml.web[j].http;  
  30.     var tf:TextField=new TextField();  
  31.     tf.text = xml.web[j].name;  
  32.     tf.x = Math.random() * 300 - 50;  
  33.     tf.y = Math.random() * 300 - 50;  
  34.     tf.z = Math.random() * 1000;  
  35.     tf.width = 400;  
  36.     tf.selectable = false;  
  37.     array.push(tf);  
  38.     tf.z = Math.random() * 1000;  
  39.     tf.setTextFormat(mysty);  
  40.  
  41.   }  
  42.  
  43. }  
  44. addEventListener(Event.ENTER_FRAME,onenter);  
  45. function onenter(e:Event):void  
  46. {  
  47.   for (var c:int; c<i; c++)  
  48.   {  
  49.     addChild(array[c] as  TextField);  
  50.     array.alpha +=  10;  
  51.     array[c].z -=  5;  
  52.     array[c].y +=  2;  
  53.     array[c].x +=  1;  
  54.     if (array[c].y > stage.stageHeight)  
  55.     {  
  56.       array[c].y = stage.stageHeight * Math.random() - 100;  
  57.       array[c].x = stage.stageWidth * Math.random() - 100;  
  58.  
  59.       array[c].z = Math.random() * 2000;  
  60.     }  
  61.   }  

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器