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; iArray;//标签列表 private var tag_len:int;//标签数组的长度 private var textFormat:TextFormat;//文本格式 private var glow:GlowFilter; //发光效果 private var contain_list:Array=[]; //标签内容 private var urls:Array=[];//连接地址 private var colors:Array; public function TagText(tag_List:Array,urls:Array,colors:Array,tex tFormat:TextFormat=null,glowColor:uint=0x00ff00) { glow = new GlowFilter (glowColor, 1, 8, 8, 2, BitmapFilterQuality.LOW, true, false); this.tag_List = tag_List; this.textFormat = textFormat; this.tag_len = tag_List.length; this.colors=colors; this.urls=urls; } //创建标签指定他们的文本和滤镜方式 private function buildTags():void { for (var i:int=0; i Array { return contain_list; } } } import flash.display.Sprite; internal class containEx extends Sprite { public var url:String; public function containEx() { } } 如果不喜欢 TagText类,那么可以重写一个,可以实现接口IEffect,把对应标签文字添加到数组里面可以借用TagCloud 来尝试制作。
  好,睡觉了。功课记录完毕。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值