flash特效原理:标签云


  
  其实标签云是一个比较常见的特效类,在wondefl里面已经被做烂了,经典之余,涉及到知识点,是基于球体和旋转方面的数学应用,在这方面而言,标签云的制作并不是十分难,多少会有很多的意思,不妨尝试制作一下。这个程序已经是上一年写的,多少被丢到哪里去没有理了。今天写在这里,表示记录一下。
  颜色有点难看。
  
  简单测试: import org.summerTree.effect.TagCloud; import org.summerTree.effect.TagText; import flash.text.TextFormat; import org.summerTree.effect.IEffect; var tagArray:Array = ["Flash","Flex","AIR","JAVA","DePHI","JAVAScript", "OPENGL","网易","百度","搜狐","雅虎","谷歌","苹果","微软","甲骨文","Sun","adobe","盛大","腾讯","JAVAScript","OPENGL"]; var tagColor:Array = [0xff0000,0xFF8000,0xFFFF00,0x99CC99,0x00FFFF,0xFF 00FF,0xff0000,0xFF8000,0xFFFF00,0x99CC99,0x00FFFF,0 xFF00FF,0xff0000,0xFF8000,0xFFFF00,0x99CC99,0x00FFF F,0xFF00FF,0x99CC99,0x00FFFF,0xFF00FF]; var tagUrls:Array = ["http://www.baidu.com","http://www.baidu.com","ht tp://www.baidu.com","http://www.baidu.com","http:// www.baidu.com","http://www.baidu.com","http://www.b aidu.com","http://www.baidu.com","http://www.baidu. com","http://www.baidu.com","http://www.baidu.com", "http://www.baidu.com","http://www.baidu.com","http ://www.baidu.com","http://www.baidu.com","http://ww w.baidu.com","http://www.baidu.com","http://www.bai du.com","http://www.baidu.com","http://www.baidu.co m","http://www.baidu.com"]; var tags:TagCloud=new TagCloud();//创建标签云 tags.x = 250; tags.y = 200; addChild(tags); var effect:IEffect = new TagText(tagArray,tagUrls,tagColor,new TextFormat("Arial",20,0)); tags.appendTag(effect); 粒子模型。一个很实用的模型构建 //该类为粒子模型 //常用的粒子模型工具 package org.summerTree.effect { public class Particle { public var x:Number;//x 位置 public var y:Number;//y 位置 public var z:Number;//z 位置 public function Particle() { } } } 对应的接口: package org.summerTree.effect { public interface IEffect { function makeEffect():void; function getArray():Array; } } //TagCloud.as 标签云 //author 夏天的树人 package org.summerTree.effect { import flash.display.Sprite; import flash.display.DisplayObject; import flash.display.BitmapData; import flash.events.Event; import flash.text.TextField; import flash.filters.GlowFilter; import flash.filters.BlurFilter; import flash.filters.BitmapFilterQuality; import flash.text.TextFormat; import flash.geom.Point; public class TagCloud extends Sprite { private var tagContainer:Sprite=new Sprite();//标签容器 public var _speed:Number = 0.008;//速度 private var tags:Array; //标签数组 private var tag_len:int; //标签数组长度 private var fl:Number = 250; //焦距 private var p_list:Array = []; // 粒子列表 private var radius:Number=0; //半径 public function TagCloud() { addChild(tagContainer); } //添加标签 public function appendTag(effectObject:IEffect,radius:Number=140): void { addChild(DisplayObject(effectObject)); effectObject.makeEffect(); tags = effectObject.getArray(); tag_len = tags.length; this.radius=radius; for (var i:int=0; iaddChild(contain); var bmp:Bitmap = new Bitmap(bitmapdata); var rect:Shape=new Shape(); contain.addChild(rect); contain.addChild(bmp); contain_list.push(contain); contain.addEventListener(MouseEvent.ROLL_OVER,onOv erHandler); contain.addEventListener(MouseEvent.ROLL_OUT,onOut Handler); contain.addEventListener(MouseEvent.CLICK,onClickH andler); } } private function onOverHandler(event:MouseEvent):void { event.currentTarget.buttonMode=true; event.currentTarget.filters = [glow]; event.currentTarget.getChildAt(0).graphics.clear() ; event.currentTarget.getChildAt(0).graphics.lineSty le(0,0xff0000); event.currentTarget.getChildAt(0).graphics.drawRec t(0,0, event.currentTarget.getChildAt(1).width, event.currentTarget.getChildAt(1).height); } private function onOutHandler(event:MouseEvent):void { event.currentTarget.buttonMode=false; event.currentTarget.filters = []; event.currentTarget.getChildAt(0).graphics.clear() ; } private function onClickHandler(event:MouseEvent):void { navigateToURL(new URLRequest(event.currentTarget.url)); } public function makeEffect():void { buildTags(); } public function getArray():Array { return contain_list; } } } import flash.display.Sprite; internal class containEx extends Sprite { public var url:String; public function containEx() { } }  如果不喜欢 TagText类,那么可以重写一个,可以实现接口IEffect,把对应标签文字添加到数组里面可以借用TagCloud 来尝试制作。
  好,睡觉了。功课记录完毕。

猜你喜欢

转载自ylr34ylr.iteye.com/blog/1574423
今日推荐