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

📄 samplebasicarrayoperation.as

📁 《Flash AS3殿堂之路》光盘源码 学习ActionScript 3.0
💻 AS
字号:
 package org.kingda.book.array
{
	import flash.display.Sprite;
	import flash.utils.ByteArray;

	public class SampleBasicArrayOperation extends Sprite
	{
		private var bookList:Array;
		
		public function SampleBasicArrayOperation() {
			//sampleLength();
			
			//sampleSearch();
			//sampleAddElement();
			samplePushAndUnshift();
			//sampleSplice();
			//sampleConcat();
			//sampleArrayCopy();
			//sampleSlice();
			//sampleShadowClone();
			//sampleDeepClone();			
		}	
		
		private function	sampleDeepClone():void {
			var objectElement:Object = {name:"kingda", web:"www.kingda.org"};
			var arrayElement:Array 	 = [1,2,3];
			var foo:Array = ["a string element", arrayElement, objectElement];
			
			var fooBA:ByteArray = new ByteArray();
			fooBA.writeObject(foo);
			fooBA.position = 0;
			var bar:Array = fooBA.readObject() as Array;
			
			trace (bar);
			trace (foo == bar);
			trace (foo[0] == bar[0]);
			trace (foo[1] == bar[1]);
			trace (foo[2] == bar[2]);
			
			bar[0] = "a new string in bar";
			bar[1][0] = 1000;
			bar[2].web = "www.actionscript3.cn";
						
			trace (foo);
			trace (bar);
			
			trace (foo[2].web);
			trace (bar[2].web);
			/*
			a string element,1,2,3,[object Object]
			false
			true
			false
			false
			a string element,1,2,3,[object Object]
			a new string in bar,1000,2,3,[object Object]
			www.kingda.org
			www.actionscript3.cn
			*/

		}
		
		private function sampleShadowClone():void {
			var objectElement:Object = {name:"kingda", web:"www.kingda.org"};
			var arrayElement:Array 	 = [1,2,3];
			var foo:Array = ["a string element", arrayElement, objectElement];
			trace (foo);
			
			//var bar:Array = foo.slice();
			var bar:Array = foo.concat();
			
			trace (bar);
			trace (foo == bar);
			trace (foo[0] == bar[0]);
			trace (foo[1] == bar[1]);
			trace (foo[2] == bar[2]);
			
			bar[0] = "a new string in bar";
			bar[1][0] = 1000;
			bar[2].web = "www.actionscript3.cn";
						
			trace (foo);
			trace (bar);
			
			trace (foo[2].web);
			trace (bar[2].web);
			/*
			a string element,1,2,3,[object Object]
			a string element,1,2,3,[object Object]
			false
			true
			true
			true
			a string element,1000,2,3,[object Object]
			a new string in bar,1000,2,3,[object Object]
			www.actionscript3.cn
			www.actionscript3.cn
			*/
			
		}
		
		private function sampleSlice():void {
			var foo:Array = ["A","B","C","D","E","F"];
			trace (foo.slice(2,4));
			trace (foo.slice(4,2));
			trace (foo.slice(-3,-1));
			trace (foo.slice(3));
			trace (foo.slice(-2));
			trace (foo);
			/*输出:
			C,D
			
			D,E
			D,E,F
			E,F
			A,B,C,D,E,F
			*/
		}
		
		private function sampleConcat():void {
			var foo:Array = ["A","B","C"];
			
			var bar1:int = 1;
			var bar2:Array = [2,3,4];
			var bar3:Array = ["a","b","c"] 
			
			var newFoo = foo.concat(bar1, bar2, bar3);
			trace (newFoo)
			//输出:A,B,C,1,2,3,4,a,b,c
			trace (newFoo.length);
			//输出:10
			
			
			foo.push(bar1, bar2, bar3);
			trace (foo);
			//输出:A,B,C,1,2,3,4,a,b,c
			trace (foo.length);
			//输出:6
			trace (foo[4]);
			//输出:2,3,4
		
		}
		private function sampleSearch():void {
			var foo:Array = ["apple", "banana", "pear", "berry", "apple", "banana","london"];
			trace ("按索引从小到大查:"+ foo.indexOf("banana"));
			trace ("按索引从大到小查:"+ foo.lastIndexOf("banana"));
			trace ("从第三个元素开始,按索引从小到大查:"+ foo.indexOf("banana", 2));
			trace ("从第五个元素开始,按索引从大到小查:"+ foo.lastIndexOf("banana", 4));
			
			var abc:ABC = new ABC();
			trace (abc);
			trace (foo.indexOf(abc));
			trace (foo[6]==abc);
		}
		
		private function samplePushAndUnshift():void {
			var bookList:Array = ["Book I","Book II","Book III"];
			trace (bookList.push("A"));
			trace (bookList.push("B", "C", "D"));
			trace (bookList);
			
			trace (bookList.unshift("1"));
			trace (bookList.unshift("2","3","4"));
			trace (bookList);
			/*
			4
			7
			Book I,Book II,Book III,A,B,C,D
			8
			11
			2,3,4,1,Book I,Book II,Book III,A,B,C,D
			
			*/			
		}
		
		//foo.push('abb','dd');
			//foo.concat(['abb','dd']);
			//trace ("foo:" + foo + "\nfoo's length:"+ foo.length);
		private function samplePopAndShift():void {
			var bookList:Array = ["Book I","Book II","Book III"];
			trace ("被pop删掉的书是:" + bookList.pop());
			trace ("被shift删掉的书是:" + bookList.shift());
			trace ("原书单变成:" + bookList);
			/*
			被pop删掉的书是:Book III
			被shift删掉的书是:Book I
			原书单变成:Book II
			*/
		}
		
		private function sampleSplice():void {
			var bookList:Array =  ["Book I","Book II","Book III", "Book IV", "Book V"];
			trace (bookList.splice(2,2,"NewBook1","NewBook2","NewBook3"));
			trace (bookList);
			
			trace (bookList.splice(1,2));
			trace (bookList);
			
			trace (bookList.splice(3));
			trace (bookList);
			
			trace (bookList.splice(2,0,"书1","书2"));
			trace (bookList);
			/*
			Book III,Book IV
			Book I,Book II,NewBook1,NewBook2,NewBook3,Book V
			Book II,NewBook1
			Book I,NewBook2,NewBook3,Book V
			Book V
			Book I,NewBook2,NewBook3
			
			Book I,NewBook2,书1,书2,NewBook3
			*/
			
		}

		private function sampleArrayCopy():void {
			var element:Array = [0,0]
			var foo:Array = [1,2,3,4,5, element];			
			var bar:Array = foo.concat();
			trace (bar[5]==foo[5]);
		}
		
		private function sampleLength():void {
			var foo:Array = ["one", "two", "three"];
			trace (foo.length);	
			//输出:3
			//设定foo的长度为5
			foo.length = 5;
			trace (foo);
			//输出: one,two,three,,
			//可以看到:多出了两个空的元素
			
			//使用超过length的索引来设定元素
			foo[7] = "out ranged";
			trace (foo);
			//输出:one,two,three,,,,,out ranged
			trace (foo.length);
			//输出:8
			
			trace ("null?"+ foo[5]);
			
			//强行设定foo的length为3
			foo.length = 3;
			trace (foo);
			//输出:one,two,three
			//结果foo将三个元素以后的所有元素全部扔掉了

		}
	}
}

class ABC {
	public function toString():String {
		return "london";
	}
}

⌨️ 快捷键说明

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