1. 程式人生 > >As3基礎部分3

As3基礎部分3

第三部分

1.核心類與函式

1.核心類

  • 根基:Object
  • 語言結構:Class,Function,Namespace,arguments
  • 基本型別:int,Boolean,Number,String,uint
  • 常用複雜型別:Array,Date,RegExp
  • XML相關類:XML,XMLList,Qname

2.全域性函式類

  • 型別轉化
  • 編碼解碼
  • 判值函式
  • 字串轉數字函式
  • 控制檯函式

2.陣列

  1. 訪問元素用[]符合
  2. 陣列長度 length
    • 使用超過“陣列長度-1”的索引值會給新的成員賦值
    • 強行減小陣列長度會刪減陣列元素
  3. 多維陣列
  4. 查詢(indexOf,lastIndexOF)

    • 使用

      目標陣列.indexOf(元素)
      目標陣列.indexOf(元素,查詢的起始位置)
      目標陣列.lastIndexOf(元素)
      目標陣列.lastIndexOf(元素,查詢的起始位置)

    • 判斷查詢的滿足條件為“===”全等

  5. 首尾新增新元素(push,unshift)

    • 使用

    陣列.push(元素1,元素2,…n)
    陣列.unshift(元素1,元素2,…n)

  6. 刪除陣列首尾元素(pop,shift)

    • 使用

    陣列.pop();
    陣列.shift();

  7. 插入,刪除元素(splice)

    • 使用

    陣列.splice(刪除點的索引,要刪除的元素數目,新元素1,…n)
    陣列.splice(刪除點的索引,要刪除的元素數目)
    陣列.splice(刪除點的索引)
    陣列.splice(刪除點的索引,0,新元素1,…n)

  8. 獲取陣列部分元素(slice)

    • 使用

    陣列.slice(起點索引,終點索引)
    陣列.slice(起點索引)

  9. 合併(concat)

    • 使用

    陣列.concat(引數1,引數2,…n)

  10. 陣列的淺複製和深複製

    • 淺複製(concat,slice)
      var copy:Array = originalArray.concat();
      var copy:Array = originalArray.slice();

    改動淺複製的引用陣列將會導致原陣列內容的變化

    • 深複製(ByteArray)
      //複製foo
      var foo:Array = [“a string element”,arrayElement , obejctElement];
      var
      fooBA:ByteArray = new ByteArray(); fooBA.writeObject(foo); fooBA.position = 0; var bar:Array = fooBA.readObject() as Array;
  11. 排序(reverse,sort,sortOn)

    • 使用

      陣列.reverse();//將陣列中的元素倒序

      陣列.sort();//預設排序

      陣列.sort(排序方式(定義好的整數常量));

      陣列.sort(比較函式(函式名));

      陣列.sortOn(“name”);//根據指定屬性,預設排序

      陣列.sortOn(“name”,排序方式(定義好的整數常量));

      陣列.sortOn(“name”,比較函式(函式名));

    • 排序方式

      Array.CASEINSENSITVE //值為1,按字母順序排序(大小寫不敏感),按數字從小到大排序

      Array.DESCENDING //值為2,字母倒序排序

      Array.UNIQUESORT //值為4,必須是唯一性排序,如果比較值結果,則放棄排序

      Array.RETURNINDEXEDARRAY //值為8,讓sort()和sortOn()函式返回值返回排序後的索引列表,同時保持原陣列不變

      Array.NUMBIC //值為16,強制ort()和sortOn()中對數值採用從小到大排序

    • 比較函式

      function 函式名(引數A:型別,引數B:型別):int{……}

  12. 運算元組每個元素(forEach,every,filter,map,some)

//遍歷操作
        forEach(callback:Function,this.Object:*=null):void
//過濾器
        filter(callback:Function,this.Object:*=null):Array
//對映器
        map(callback:Function,this.Object:*=null):Array
//有一個滿足為真
        some(callback:Function,this.Object:*=null):Boolean
//全滿足為真
        every(callback:Function,this.Object:*=null):Boolean

3.字串String

1.針對字元操作

charAt(i); //訪問目標位置的字元

charCodeAt(i); //得到目標位置字元的Unicode字元的整數字符程式碼

fromCharCode(); //從指定Unicode值得到相應的字串

2.不變物件

3.過載(+,+=,<,<=,>,>=)

4.常用字串操作

  • indexOf()與search()

    indexof()引數為普通字串

    search()引數必須為正則表示式

  • substring(),slice(),substr()

    長字串變數.substring(起始位置,終點位置)

    長字串變數.slice(起始位置,終點位置)

    長字串變數.substr(起始位置,擷取字串長度)

  • split與正則表示式結合

      var str:String = “Sky 666”;
      var delimiter:RegExp = /(\d+)/
      str.split(delimiter);//提取數字
  • Util工具類

    StringUtil.trim(str:String):void //截斷字串首尾空白

    StringUtil.substitute(str:String,…rest):String //替換字串

    StringUtil.trimArrayElements(value:String,delimiter:String):String //分割

    StringUtil.isWhitespace(character:String):Boolean //檢測空白字元

4.XML資料處理

1.語法

  1. 根元素(有且只有一個)

  2. 開始標記與結束標記

  3. 合理巢狀元素

  4. 大小寫敏感

  5. 命名規則

    • 元素名字可以包含字母,數字,其他字元
    • 元素名字不能以數字或者標點符合開頭,不能以(XML,xml,…開頭
    • 元素名字不包含空格
  6. 元素帶有屬性用””標識

  7. <!--註解-->

  8. 所有XML文件中文字都會被解析器解析,只有在CDATA部件中會被忽略

2.建立

1.使用建構函式

  var foo:String = “<book><name>As3</name> <page>500</page></book>”;
  var fooXML:XML = new XML(foo);

2.使用XML文字

  var kingdaXML =
  <websites>
    <site name = “” url=””>
      <description>
          ....
      </description>
    </site>
  </websites>

3.操作

  • 使用“.”與“@”直接訪問XML物件
    trace(kingdaXML .site.description);//訪問
    trace(kingdaXML [email protected]);//訪問site中name屬性
  • 使用“.”與“@”直接訪問,修改,建立和刪除XML物件
    kingdaXML [email protected] = “” //修改site中name屬性
  • 使用“.”與“@”直接新增和刪除XML物件
    kingdaXML .site[0].author = new XML();//新增一個空白節點
    kingdaXML .site[0][email protected] = “”//新增屬性
    delete kingdaXML .site[0].author //delete關鍵字刪除
  • 搜尋XML物件子元素與屬性
    1. 後裔訪問符(..)
      kingdaXML..description //訪問名為description 的子節點
    2. 萬用字元(*)
      [email protected]*.toXMLString();//查詢site子元素的屬性返回XMLList物件
    3. 表示式制定查詢子元素條件
      kingdaXML.site.(description<10000);
    4. 表示式制定查詢屬性條件
      kingdaXML.site.(@name == “”);

4.API實現XML操作

  • appendChild(child:Object):XML //在當前子元素列表之後新增
  var foo:XML = <data/>
  foo.appendChild(<d>ddd</d>);
  //輸出foo
  <data>
  <d>ddd</d>
  </data>
  • prependChild(value:Object):XML//在當前子元素列表之前新增
  foo.prependChild(<b>bbb</b>);
  //輸出foo
  <data>
  <b>bbb</b>
  <d>ddd</d>
  </data>
  • insertChildAfter(child1:Object,child2:Object):*//在當前子元素child1之後新增
  var cNode:XML = <c>ccc</c>;
  foo.insertChildAfter(foo.b,cNode);
  //輸出
  <data>
  <b>bbb</b>
  <c>ccc</c>
  <d>ddd</d>
  </data>
  • insertChildBefore(child1:Object,child2:Object):*//在當前子元素child1之前新增
  var aNode:XML = <a>aaa</a>;
  foo.insertChildBefore(foo.b,aNode);
  //輸出
  <data>
  <a>aaa</a>
  <b>bbb</b>
  <c>ccc</c>
  <d>ddd</d>
  </data>

5.XML名稱空間

  • 方法:
    1. 為XML加名稱空間:addNameapace()
    2. 設定與XML物件關聯的名稱空間:setNameapace()
    3. 設定預設名稱空間:default xml namespace

5.異常與錯誤的捕捉與處理

1.try-catch-finally

try{
      //異常嫌疑語句
}catch(){
      //生成異常物件,終止try
      //AVM會按catch語句順序,查詢和異常物件對應的catch塊
      //發現異常物件,捕獲由catch塊語句處理
}finally{
      //一定執行
}

2.throw丟擲異常

public function ThrowError(){
try{
//生成Error物件丟擲
    var CustomError_1:TypeError = new TypeError ( “......” , 1200);
    throw CustomError_1
//丟擲匿名Error物件
    throw new Error(“......”);
//丟擲一個函式返回Error物件
    var errorCause:Number = 5000;
    throw reportErrorFunc(errorCause);
}catch(e:Error){
      trace(e);
  }
}

3.自定義異常

public function A extends SecurityError(){
      //自己定義程式碼
      .......
}

4.AS3中的異常層次與結構

  • 良好支援
    1. Error類所包含的資訊量豐富
    2. 系統預定義異常
    3. 自動丟擲系統預定義異常
    4. API更準確的異定位
    5. 不會降低程式執行效率
  • 處理異常原則與方式
    • 提倡
      1. 遇到異常就處理
      2. 針對不同的方法提出具體解決方案
      3. 保持對異常的記錄,總結經驗
    • 忌諱
      1. 不要使用空程式碼處理異常
      2. 不要用寬廣的異常對待具體的問題
      3. 儘量少使用異常處理機制

5.對異常事件的處理

  • 型別:
    1. 擴充套件ErrorEvent類的異常事件
    2. 基於狀態類的異常事件
  • 處理:
    1. 新增偵聽器,與try功能相似
    2. 變形偵聽器函式,與catch功能相似

相關推薦

As3基礎部分3

第三部分 1.核心類與函式 1.核心類 根基:Object 語言結構:Class,Function,Namespace,arguments 基本型別:int,Boolean,Number,String,uint 常用複雜型別:Array,Da

JavaScript基礎部分3

加載完成 滾動條 延時 兩個 func document elb 定義 兄弟節點 1.節點及類型 1) 文檔節點 整個html文檔 2) 元素節點:html文檔中的html標簽 3) 屬性節點:元素的屬性,可以直接通過屬性的方式操作 4) 文本節點:是元素節點的子節點,其內

一、基礎部分-3. 字符串格式化

字符串格式化一、如何打印字符串中的變量呢? #!/usr/bin/env python #-*- coding: utf-8 -*- #循環打印 for i in ["張三","李四","王五"]: print("尊敬的%s,您好.." %i) #字符串中有1個%s,說明有1個變量。 #如果字符

JS面向物件程式設計基礎部分(3) 4.1

 Document物件 定義:document物件代表的整個html文件,因此可以去訪問到當前文件中的各個物件(元素)。 1) write() 向文件寫文件或HTML表示式或JavaScript程式碼 2) written() 等同於write()方法,不同的是在每個表示式

Java面試筆試知識點之基礎部分3

一、Java基礎部分 1-5問題見部落格:點選開啟連結 6-10問題見部落格:點選開啟連結 11、是否可以繼承String類。  不可以,因為String類有final修飾符,而final修飾的類是不能被繼承的,實現細節不允許改變public final cla

Java基礎部分3

Java中的常用類2   集合  陣列與集合的區別:   1、陣列長度固定,集合長度可變。   2、陣列可以儲存基本資料型別,集合只能儲存物件。  集合類的結構圖以及相關特點: Collection  |--List 有序,可重複    |--ArrayList      

資料庫基礎3)函式依賴-平凡依賴,完全依賴,部分依賴,傳遞依賴

函式依賴是關係資料庫中非常重要的概念 包括平凡依賴,完全依賴,部分依賴以及傳遞依賴 ,這些都是關係資料庫正規化的基礎 函式依賴基本概念 函式依賴基本定義 簡單來說就是,只要屬性X的屬性值一樣(x1=x2) 那麼 屬性Y中的屬性值就一樣(y1=y2),就說明Y依賴於X

Java基礎部分總結3

java中沒有’\0’這一說 java.lang包是java語言的核心包,lang是language的縮寫 java.lang包定義了一些基本的型別,包括Integer,String之類的,是java程式必備的包,有直譯器自動引入,無需手動匯入 繼

(三)XML基礎3

ack cdata mage void 元素節點 images 包含 exce -1 五、XPath:快速定位到節點   5.1  簡介   5.2  語法   5.3  案例 XPath對有命名空間的xml文件和沒有命名空間的xml定位節點的方法是

北漂面試經歷(一(兩)年工作經驗)-- Java基礎部分

map its all 。。 構造 key 持有對象 面試經歷 idt Java基礎部分 常量和變量的區別:final 關鍵詞修飾的變量是恒定不變的,如果還有static關鍵詞修飾的話,常常稱為編譯期常量。變量,運行時可以修改其引用。 Java基本類似有哪些 1

[轉]Eclipse插件開發之基礎篇(3) 插件的測試與調試

case ews ... 有時 sam cancel workbench osgi ring 原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/17/eclipse_plugin_1_1_2.html 1. 使用JU

Swift 學習- 02 -- 基礎部分2

sta dict 占位符 下標索引 協議 pap ati 負數 將不 class NamedShape{ var numberOfSides: Int = 0 var name: String init(name: String) {

《遊戲腳本的設計與開發》-(RPG部分)3.8 通過腳本來自由控制遊戲(一)

pan tro prototype chan detail 大致 位置 trim dir 註意:本系列教程為長篇連載無底洞。半路殺進來的朋友,假設看不懂的話。請從第一章開始看起。文章文件夾請點擊以下鏈接。http://blog.csdn.net/lufy_legend/a

轉:面試題收集——Java基礎部分(一)

試題 地址 基本上 odk 屬於 組合 bool 什麽 nod 1、一個".java"源文件中是否可以包括多個類(不是內部類)?有什麽限制?   可以有多個類,但只能有一個public的類,並且public的類名必須與文件名相一致。 2、Java有沒有goto?   j

JS基礎學習3

++ pytho cat 代碼塊 return語句 控制語句 其他 實現 選擇 1.控制語句 (1)if控制語句 if-else基本格式 if (表達式){ 語句1; ...... }else{ 語句2; ..... } 功能說明 如果表達式的值為true則執行語句1,

linux基礎部分1

相對路徑 logs file 目錄 當前 sta blog cp命令 內容 1.date查看系統時間,修改時間date月日時間年, 2.清楚屏幕,用Ctrl+L清除,或者用clear, 3..查看系統用戶,用who命令 4.創建新用戶James,創建密碼 ,

html基礎3

子文件夾 pre 相對 絕對路徑 不同 無聊 路徑和 img .cn 美好的星期六,今天多寫一點,爭取早點寫js這個有點小無聊。 一、先來講點網頁之間的跳轉   (1)、<a href=""></a> href="這裏寫要跳轉的網頁的地址";

linux基礎知識3

linux基礎知識3date:時間管理Linux: rtc(ntp:網絡時間協議) 硬件時鐘(hwclock clock命令) 系統時鐘(data 命令)獲得命令的使用幫助: 內部命令:help COMMAND cd 外部命令:COMMAND --help ls 操作系統的命令通常

編程算法基礎-2.3進制轉換

split -c val character -s 割點 12px 轉換 isdigit 2.3進制轉換 使用int存一個整數時。內存中是用二進制存儲的,當要顯示的時候。用十進制顯示。 隨意進制間的轉換 n進制轉m進制 String s = “2001201102” 3

Java基礎部分回顧(為自己)

.cn logs -1 繼續 分享 9.png 沒有 理解 開始 最近,學到集合框架。感覺有些蒙圈兒。知道這一塊很重要很重要,不敢疏忽。自學遇到的攔路虎,想著是不是前面的基礎知道還沒有夯實,對一些概念沒有真正的理解到位呢?!所以,停下來。開始找一些視頻,做一下回顧。 再次鞏