Browse > Home > Flash CS3/AS3 > 一个命名空间namespace应用演示

| Subcribe via RSS

一个命名空间namespace应用演示

二月 20th, 2008 | 302 views | Posted by flashlizi in Flash CS3/AS3

这是一个用命名空间来控制名称相同的方法的不同实现的例子。三个命名空间string、number、array下均有一个名为print的方法,它们分别实现打印字符串、数字、数组的具体方法。有时候用命名空间也是实现方法重载的一种不错的办法。

演示代码如下:

  1. package {
  2. import flash.display.Sprite;
  3. public class NameSpaceExam extends Sprite{
  4. //打印字符串的NS
  5. private namespace string;
  6. //打印数字的NS
  7. private namespace number;
  8. //打印数组的NS
  9. private namespace array;
  10. //构造函数
  11. public function NameSpaceExam() {
  12. var str:String = "www.riaidea.com";
  13. var num:Number = 200802201507;
  14. var arr:Array = ["flash cs3", "flex3.0", "sliverlight 1.0", 2008, true];
  15. trace(string::print(str));
  16. trace(number::print(num,","));
  17. trace(array::print(arr));
  18. }
  19. //打印字符串
  20. string function print(str:String):String {
  21. return "String: " + str;
  22. }
  23. //打印数字,3节分段计数形式
  24. number function print(num:Number,sep:String=","):String {
  25. var str:String=String(num);
  26. var new_str:String="";
  27. var len:int=str.length;
  28. while(len>3){
  29. var tmp:String=str.slice(len-3);
  30. str=str.substring(0,len-3);
  31. new_str=sep+tmp+new_str;
  32. len=str.length;
  33. }
  34. return "Number: "+str+new_str;
  35. }
  36. //打印数组,枚举每个数组元素
  37. array function print(arr:Array):String {
  38. var str:String = "Array: \r";
  39. for (var i:int = 0, l:int = arr.length; i < l; i++) {
  40. str += "["+i+"]-> "+arr[i].toString()+"\r";
  41. }
  42. return str;
  43. }
  44. }
  45. }

输出结果为:

  1. String: www.riaidea.com
  2. Number: 200,802,201,507
  3. Array:
  4. [0]-> flash cs3
  5. [1]-> flex3.0
  6. [2]-> sliverlight 1.0
  7. [3]-> 2008
  8. [4]-> true

Leave a Reply