Flash AS學習:for迴圈與退出迴圈

來源:互聯網
上載者:User
迴圈

  示範效果:

點擊這裡下載源檔案

  使用for 是最佳化AS的重要手段。如果我們要對20個MC實現響應滑鼠點擊事件,如果不用for而直接寫那麼需要幾十乃至幾百行,而用for只需要用幾行就可以了。看我們實現這樣的效果: 對舞台上的20個MC點擊,在MC中的動態文本中顯示出該MC的執行個體名.
  步驟:1、 製作一個MC,MC中包含一個動態文本,執行個體名為txt。

  2、按住ctrl,拖動複製出20個MC出來。

  3、為每個MC輸入執行個體名mc0、mc1、mc2...mc19,然後選中楨,開啟動作面板,輸入以下語句。

mc0.onPress = function() {
this.txt.text = this._name;
};
mc1.onPress = function() {
this.txt.text = this._name;
};
..... 
mc19.onPress = function() {
this.txt.text = this._name;
};

  以上語句共60行,實現了點擊MC,在MC中的動態文本txt中顯示該MC的執行個體名,如果有100個MC,那麼照這樣就需要300行,挺嚇人的。現在用for幾行搞定。

for(var i=0;i<20;i++){
this["mc"+i].onPress=function(){
this.txt.text=this._name
}
}

  我們分析一下這個for是怎樣解決問題的:for(var i=0;i<20;i++)共會讀取20次,第一次i=0;檢查i是否小於20,檢查到符合條件,執行i++,於是i=1了,然後執行{}中的語句;第二次i=1;檢查i是否小於20,檢查到符合條件,執行i++,於是i=2了,然後執行{}中的語句;第三次i=2;檢查i是否小於20,檢查到符合條件,執行i++,於是i=3了,然後執行{}中的語句;......第二十一次i=20;檢查i是否小於20,檢查到不符合條件,執行i++,於是i=21了,此時迴圈結束,退出迴圈。
  第一次執行的程式即是

this["mc"+0].onPress=function(){//同this.mc0.onPress=function()
this.txt.text=this._name
}

  第二次執行的程式即是

this["mc"+1].onPress=function(){//同this.mc1.onPress=function()
this.txt.text=this._name
}

第三次執行的程式即是

this["mc"+2].onPress=function(){//同this.mc2.onPress=function()
this.txt.text=this._name
}

......
  由此,我們可以看到,for對於簡化語句有非常重要的作用,適用for適用於MC的執行個體名是連續的情況,即mc0、mc1、mc2...,如果MC的執行個體名不是連續的,那麼可以利用數組來解決這個問題,首先將MC的執行個體名作為數組中的元素,然後進行調用,如下:

var myarr=["mc0","mc1",""mc2","mc3"....]
for(var i=0;i<20;i++){
this[myarr[i]].onPress=function(){
this.txt.text=this._name
}
}

  以上介紹了for的使用,現在介紹一下如何中途退出for迴圈,如果我們只對10個MC進行讀取,那麼

for (var i = 0; i<20; i++) {
if (i>=10) {
break;
}
this["mc"+i].onPress = function() {
this.txt.text = this._name;
};
}

  如果我們只不讀取第10個,那麼

for (var i = 0; i<20; i++) {
if (i == 10) {
continue;
}
this["mc"+i].onPress = function() {
this.txt.text = this._name;
};
}

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。