AS3.0实现彩色文字效果

package ch12_1
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.*;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import flash.geom.Rectangle;
	import flash.filters.GlowFilter;
	import flash.filters.DropShadowFilter;
	
	public class ColorTextField extends Sprite
	{
		private var tf:TextField = new TextField();
		private var f:TextFormat = new TextFormat();
		private var worlds:String ="\n dear:\n        爱情从来都是一种束缚,追求爱情并不等于追求自由。自由可贵,我们用这最宝贵的东西换取爱情。因为爱一个人,明知会失去自由,也甘愿作出承诺。诺言是用来跟一切的变幻抗衡。变幻原是永恒,我们唯有用永恒的诺言制约世事的变幻。不能永恒的,便不是诺言。诺言是很贵的,如果你尊重自己的人格。";
		private var bmd:BitmapData ;
		private var bm:Bitmap ;
		private var count:int=0;
		
		public function ColorTextField()
		{
			f.size =20;
			f.leading =20;
			tf.border =true;
			tf.wordWrap =true;
			tf.multiline =true;
			tf.defaultTextFormat =f;
			tf.width =  400;
			tf.height  =500;
			
			
			bmd = new BitmapData(tf.width+1,tf.height+1,true,0xFFFFFF);
			bmd.draw(tf);
			bm = new Bitmap(bmd);
			bm.x =(stage.stageWidth-bm.width)/2;
			bm.y =(stage.stageHeight-bm.height)/2;
			stage.addChild(bm);
			stage.addEventListener(Event.EXIT_FRAME,changle);
		}
		private function changle(e:Event):void
		{
			if(count<worlds.length)
			{
			var insert:String =worlds.substr(count,1);
			count++;
			tf.appendText(insert);
			reDraw();
			}
		}
		private function reDraw():void
		{
			var rec:Rectangle = tf.getCharBoundaries(tf.length-1);
			bmd.draw(tf,null,null,null,rec);
			bmd.applyFilter(bmd,rec,rec.topLeft,new GlowFilter(0xFFFFFF*Math.random(),1,2,2,10));
			bmd.applyFilter(bmd,rec,rec.topLeft,new DropShadowFilter(0.5,0.5));
			}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,似乎是Unity3D中的代码,而不是AS3.0。不过,背包算法在AS3.0中同样适用。下面是一个简单的背包算法实现: ```actionscript // 定义物品类 class Item { public var name:String; public var weight:Number; public var value:Number; public function Item(name:String, weight:Number, value:Number) { this.name = name; this.weight = weight; this.value = value; } } // 背包算法函数 function knapsack(items:Array, capacity:Number):Array { var n:int = items.length; var dp:Array = new Array(n + 1); for (var i:int = 0; i <= n; i++) { dp[i] = new Array(capacity + 1); for (var j:int = 0; j <= capacity; j++) { dp[i][j] = 0; } } for (i = 1; i <= n; i++) { for (j = 1; j <= capacity; j++) { if (items[i - 1].weight > j) { dp[i][j] = dp[i - 1][j]; } else { dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - items[i - 1].weight] + items[i - 1].value); } } } var result:Array = new Array(); j = capacity; for (i = n; i > 0 && j > 0; i--) { if (dp[i][j] != dp[i - 1][j]) { result.push(items[i - 1]); j -= items[i - 1].weight; } } return result; } // 测试代码 var items:Array = [ new Item("物品1", 2, 3), new Item("物品2", 3, 4), new Item("物品3", 4, 5), new Item("物品4", 5, 8), new Item("物品5", 9, 10) ]; var capacity:Number = 10; var result:Array = knapsack(items, capacity); for each (var item:Item in result) { trace(item.name); } ``` 上述代码实现了一个简单的背包算法,用于在给定物品列表和背包容量的情况下,计算出能够放入背包的物品列表,使得这些物品的总价值最大。具体实现过程中,使用了动态规划的思想,通过填表的方式计算出最优解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值