第三部分:XML控制散射內(nèi)容
目標(biāo):
我們先前散射出來的內(nèi)容是固定的,在經(jīng)典里前不久看到一篇帖子,說如何用XML控制顯示內(nèi)容,所以特來介紹。
思路:
簡(jiǎn)單的XML載入
步驟:
1,把第二部分中包含三禎的MC刪除,重建一個(gè)MC,實(shí)例名為mymc,在內(nèi)部拉一動(dòng)態(tài)文本框,實(shí)例名為mytxt,變量名為content,這里要注意,這也就是我起先出現(xiàn)BUG的關(guān)鍵點(diǎn)所在,一定要設(shè)“嵌入字體”,把a(bǔ)-z,A-Z,0-9都嵌入進(jìn)去,至于原因,藍(lán)紫光解釋得很清楚。
2,在MYMC內(nèi)部時(shí)間軸加動(dòng)作,我們荏苒采用禎循環(huán)方式變成 第一禎:定義初始變量,載入XML文件并取節(jié)點(diǎn)值
stop();
mymc._alpha = 0; i = 1; numOfText = 20; minOfZ = 1; maxOfZ= 120;
var myxml=new XML() myxml.ignoreWhite=true myxml.onLoad=function(suc){ if(suc){ gotoAndPlay(2); mylist=this.firstChild.childNodes } }
myxml.load("myxml.xml")
第二禎:主程序
function randrange(min,max){ var randomnum=Math.floor(Math.random()*(max-min+1))+min return randomnum }//自定義函數(shù),取兩數(shù)之間的隨機(jī)數(shù) duplicateMovieClip("mymc", i, 10+i); this[i].x = randrange(-11,9); this[i].y = randrange(-10,9) this[i].z = random(maxOfZ)+1;//1——120之間的整數(shù) this[i].dz = -4; this[i].mytxt.text=mylist[i].attributes.content this[i].onEnterFrame = function() { this.z += this.dz; if (this.z<minOfZ) { this.x = randrange(-11,9); this.y = randrange(-10,9)//這里的this也可以改為this[i] this.z = maxOfZ;//this.z<minOfZindex時(shí),也就是MC到達(dá)極限透明度,X,Y,比例
時(shí),此時(shí)他已經(jīng)超出了舞臺(tái),要不間斷播放,需要重新設(shè)定他的初值 } this.pers =600/this.z;//由于每次減2,所以this.z最小值為2,因?yàn)樵贉p2就為0了,小于1 this._x = this.x*this.pers; this._y = this.y*this.pers;//this.pers會(huì)越逐漸遞增 this._xscale = this._yscale=this.pers; this._alpha = 1000/this.z;//這里的1000你也可以改,不過別太小
第三禎:條件判斷
i++; if (i>=mylist.length) { stop(); }else{ gotoAndPlay(_currentframe-1); }
注意點(diǎn):載入延遲問題解決方案
第一禎代碼我為什么要加個(gè)stop();,然后通過條件判斷myxml.onLoad執(zhí)行g(shù)otoAndPlay(2);? 還是一個(gè)載入延遲問題,參考 我的一篇帖子 ,和loadmovie差不多,如果我不加個(gè)STOP,影片就會(huì)從1到3毫無障礙地播放,由于XML載入的延遲性,在XML文件還沒載入完畢之前(一般是一輪,從1到3播放完畢一遍的時(shí)間)所執(zhí)行的程序里面根本無法取得節(jié)點(diǎn),則mylist也將是NaN,那么緊跟的第二禎里面this[i].mytxt.text=mylist[i].attributes.content取不到值,文本內(nèi)容會(huì)是undefined,也就是說不按我那樣弄的話的直接后果將是所載入的MC中有一個(gè)文本內(nèi)容為undefined。
欣賞地址:由于有XML,無法欣賞
源碼下載
后續(xù):我只是以文字形式具體講解了散射特效,你可以把文字換成圖片并用XML載入,鼠標(biāo)控制空間移動(dòng),等等,需要我們共同去想。
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2860412-1-1.html
本文鏈接:http://www.95time.cn/tech/multimedia/2008/5921.asp
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁 不同坐標(biāo)點(diǎn)的文字散射 下一頁
◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論
|