⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sampledowncast.as

📁 《Flash AS3殿堂之路》光盘源码 学习ActionScript 3.0
💻 AS
字号:
package org.kingda.book.basicoop.polymorphism
{
	import flash.display.Sprite;
	public class SampleDownCast extends Sprite
	{
		private var _shapeArray:Array = new Array();		
		public function SampleDownCast() {
			//运行时生成一些随机的矩形和圆形			
			generateShapeArray();						
			for(var i:int = 0 ; i<_shapeArray.length; i++) {
				//从_shapeArray中删除最后一个对象,并将这个对象赋给tmpShape
				var tmpShape:KingdaShape = pop();
				//如果是圆形,则交给handleCircle方法处理
				if(tmpShape is Circle) handleCircle(tmpShape as Circle);
				//如果是矩形,则交给handleRect方法处理
				if(tmpShape is Rect)   handleRect(tmpShape as Rect);
			}
			
		}
		//生成一些随机的矩形和圆形放到_shapeArray中
		private function generateShapeArray():void {
			for (var i:int = 0; i<50; i++) {
				//生成一个随机数Math.random()
				//大于0.5,则生成一个Circle对象传给add()
				//否则,生成一个Rect对象传给add()
				if (Math.random()> 0.5) {
					add(new Circle(this));
				}else {
					add(new Rect(this));
				}
			}
		}
		//只接受KingdaShape类型的对象,加入到_shapeArray中去
		private function add(obj:KingdaShape):void {
			_shapeArray.push(obj);
		}
		//从_shapeArray中删除最后一个对象,并将这个对象返回
		private function pop():KingdaShape {
			return _shapeArray.pop();
		}
		//将圆形填充成橙色,并在舞台高度1/2处随机摆放
		private function handleCircle(target:Circle):void {
			var posX:Number = stage.stageWidth * Math.random();
			target.fill(0xFF9900);
			target.move(posX, stage.stageHeight/2);
		}
		//将矩形填充成绿色,并在舞台宽度1/2处随机摆放
		private function handleRect(target:Rect):void {
			var posY:Number = stage.stageHeight * Math.random();
			target.fill(0x669900);
			target.move(stage.stageWidth/2, posY);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -