egret 白鷺引擎遇到的問題和解決方案

本文使用白鷺引擎版本是5.2.7 當(dāng)前時(shí)間最新版 (截圖時(shí)又出現(xiàn)了一版们拙,迭代速度還是很快的)


1. 選擇游戲開發(fā)模版

一定要選擇ui模版锡移,而不要選擇game面板
game模版刪去了theme和eui部分組件,如果你想自定義ui崔赌,還需要手動(dòng)創(chuàng)建一個(gè)default.thm.json文件意蛀,挺麻煩的,因?yàn)樗凶约簩S懈袷椒灞桑哉?qǐng)盡量選擇ui開發(fā),一樣可以開發(fā)游戲

game模版不包括紅線范圍內(nèi)的文件


2. Main.ts 代碼刪除要小心

ui項(xiàng)目 Main基于 eui.UILayer
game項(xiàng)目 Main基于 egret.DisplayObjectContainer
兩個(gè)的區(qū)別在于game項(xiàng)目使用事件偵聽來監(jiān)控場(chǎng)景加載到舞臺(tái)上
this.once(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
而ui項(xiàng)目使用createChildren函數(shù)

3. 心跳

不可刪太雨,非內(nèi)存回收吟榴,是用于在后臺(tái)時(shí)對(duì)內(nèi)核更新暫停。

egret.lifecycle.addLifecycleListener((context) => {
  // custom lifecycle plugin
})
egret.lifecycle.onPause = () => {
    egret.ticker.pause();
}
egret.lifecycle.onResume = () => {
    egret.ticker.resume();
}

4. 資源映射

不可刪除囊扳,用于default.res.json中字符串與文件路徑間的映射關(guān)系

let assetAdapter = new AssetAdapter();
egret.registerImplementation("eui.IAssetAdapter", assetAdapter);
egret.registerImplementation("eui.IThemeAdapter", new ThemeAdapter());

刪除這三句將無法使用eui和exml功能吩翻,打亂exml加載時(shí)序等諸多問題。筆者誤刪導(dǎo)致麻煩還真不少锥咸。

5. async和 await

成對(duì)出現(xiàn)狭瞎,用于異步加載并入同步隊(duì)列中,讓需要事件判斷的api變?yōu)轫樞蚣虞d的api搏予,也就是加載成功/失敗后才會(huì)繼續(xù)執(zhí)行之后的語句熊锭。

6. 創(chuàng)建eui 和創(chuàng)建 exml

首先egret wing開發(fā)程序是有界面編輯器的,一臉懵逼的我找了半天,發(fā)現(xiàn)新建exml就是界面編輯器碗殷,而直接創(chuàng)建eui時(shí)可以包含exml精绎,而且這樣做可以不設(shè)置eui的skinName,因?yàn)閯?chuàng)建的時(shí)候锌妻,他們之間已經(jīng)在default.thm.json中相互關(guān)聯(lián)了代乃, 之后創(chuàng)建這個(gè)類,就會(huì)自動(dòng)加載其對(duì)應(yīng)的exml皮膚仿粹。

7. exml 使用圖片和json打包圖問題

exml界面編輯是可以使用json打包圖片和散圖的搁吓,方法是從左下角的資源目錄查找,此資源目錄列表來源于default.res.json內(nèi)的preload內(nèi)容(默認(rèn)main是加載preload的)吭历,有需要用到的資源需要在這里配置堕仔。另外,圖片等的資源可以手動(dòng)寫(source = “preload下的圖片名稱/圖片全地址”)毒涧,但直接從左下角拖拽進(jìn)去使用資源更為省心贮预。

我在這里遇到了兩個(gè)問題:

  1. 我的資源沒有任何顯示,后來發(fā)現(xiàn)是因?yàn)橘Y源列表窗口太小契讲,并且當(dāng)時(shí)不知道窗口可以拖動(dòng)
  2. 左下角拖拽無論是圖片還是紋理集都無法在測(cè)試時(shí)成功加載仿吞,總是提示是 “ip地址+紋理名稱” 找不到鏈接的問題,其實(shí)是上面第四大點(diǎn)提到的資源映射代碼讓我刪掉了導(dǎo)致的捡偏。唤冈。。银伟。你虹。

我最初的解決方案很蠢,紋理無法正常加載彤避,就直接把圖片的實(shí)際資源地址手寫到source里面傅物,雖然能正常顯示,但是治標(biāo)不治本琉预。

8. 資源id的調(diào)用

在之前代碼誤刪導(dǎo)致的問題中董饰,這里也體現(xiàn)出來,partAdded在childrenCreated之后加載圆米,導(dǎo)致無法正常處理內(nèi)部對(duì)象卒暂。(內(nèi)部對(duì)象直接在eui界面類創(chuàng)建對(duì)象id名對(duì)應(yīng)的變量,在之后可以直接調(diào)用)

這里我在錯(cuò)亂的邏輯中繼續(xù)錯(cuò)亂娄帖,在eui界面類中加入了個(gè)timer用于延遲偵聽partAdded完全加載完畢的完成事件也祠,表面上看起來和正常邏輯代碼跑到childrenCreated是一樣的。但是這種方法治標(biāo)不治本近速,還是需要將第四大點(diǎn)修復(fù)诈嘿,才能有效解決這個(gè)時(shí)序問題堪旧。

9. 顯示位置出錯(cuò)

創(chuàng)建很多displaycontainer+bitmap對(duì)象后會(huì)導(dǎo)致無法正常顯示,或者影響其他代碼對(duì)象顯示錯(cuò)亂問題

這時(shí)候我將大量創(chuàng)建顯示對(duì)象的函數(shù)放到場(chǎng)景創(chuàng)建的最后一環(huán)進(jìn)行永淌,暫時(shí)避免了這個(gè)問題崎场。

10. eui類庫(kù)和egret類庫(kù)關(guān)系

egret類庫(kù)是白鷺最基本的類庫(kù),eui是銜接了exml組件皮膚封裝的顯示類egret擴(kuò)展遂蛀。eui所有對(duì)象都可以被addChild谭跨。

11. Tween的問題

在測(cè)試過程中,egret雖然可以通過心跳暫停刷新李滴,但是貌似某些情況下Tween內(nèi)部還是在跑動(dòng)螃宙,導(dǎo)致恢復(fù)時(shí)tween動(dòng)畫會(huì)跳到一個(gè)奇怪的地方。

也許和測(cè)試環(huán)境有關(guān)系所坯,在電腦端呈現(xiàn)的錯(cuò)誤在手機(jī)端未復(fù)現(xiàn)

12. 事件和Tween疊加使用谆扎。

當(dāng)在事件內(nèi)部使用Tween并調(diào)用call來響應(yīng)完成事件時(shí),事件evt傳遞參數(shù)并不能一直駐留在內(nèi)存里芹助,當(dāng)call執(zhí)行時(shí)堂湖,evt已經(jīng)被回收了。如果想有效的使用evt的內(nèi)容状土,將evt的內(nèi)容通過call的第三個(gè)參數(shù)方式傳遞給call无蜂,evt本身不可以傳遞進(jìn)去,因?yàn)槭录瓿奢喸兒髸?huì)強(qiáng)制回收evt蒙谓。

先寫這么多斥季,之后如果再遇到其他麻煩陸續(xù)添加

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市累驮,隨后出現(xiàn)的幾起案子酣倾,更是在濱河造成了極大的恐慌,老刑警劉巖谤专,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躁锡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡置侍,警方通過查閱死者的電腦和手機(jī)映之,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墅垮,“玉大人惕医,你說我怎么就攤上這事耕漱∷闵” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵螟够,是天一觀的道長(zhǎng)灾梦。 經(jīng)常有香客問我峡钓,道長(zhǎng),這世上最難降的妖魔是什么若河? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任能岩,我火速辦了婚禮,結(jié)果婚禮上萧福,老公的妹妹穿的比我還像新娘拉鹃。我一直安慰自己,他們只是感情好鲫忍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布膏燕。 她就那樣靜靜地躺著,像睡著了一般悟民。 火紅的嫁衣襯著肌膚如雪坝辫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天射亏,我揣著相機(jī)與錄音近忙,去河邊找鬼。 笑死智润,一個(gè)胖子當(dāng)著我的面吹牛及舍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播做鹰,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼击纬,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了钾麸?” 一聲冷哼從身側(cè)響起更振,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饭尝,沒想到半個(gè)月后肯腕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钥平,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年实撒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涉瘾。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡知态,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出立叛,到底是詐尸還是另有隱情负敏,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布秘蛇,位于F島的核電站其做,受9級(jí)特大地震影響顶考,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妖泄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一驹沿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蹈胡,春花似錦渊季、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至搅轿,卻和暖如春病涨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背璧坟。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工既穆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雀鹃。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓幻工,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親黎茎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子囊颅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容