• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            麒麟子

            ~~

            導航

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            統計

            常用鏈接

            留言簿(12)

            隨筆分類

            隨筆檔案

            Friends

            WebSites

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            WebGame方案匯總

            強勢三國卡版風頁游《五虎上將》----等你來戰

            《五虎上將》神跡官網:點擊進入游戲

             

            看著五虎上線了,說實話,心里還是有一絲竊喜,卻又一絲悲傷。

            竊喜的是這也算是自己參與過的項目上線了,悲傷的是,這不是自己手把手從頭到尾一路走來的項目。

            沒有那種一路風雨走過來的感覺。

             

            話說,雖然自己不是從五虎從頭到尾跟過來的,但我確實從五虎中學到了許多, 特別是學到了 “如果我也這樣做,那結果就是現在這樣”。

            它就像是一面鏡子,時刻讓自己反醒。

            我并不是說五虎代碼差成什么樣,而是,這就是傳說中的“經驗”。恰巧,這些東西,被我悄悄地偷取了。

             

            由于是后入五虎項目組的,所以我并不能參與五虎的功能部分開發。當然,這也是我所期望的。 我不想讓自己糾結于泥潭中無法抽身,又或者當我抽身后,

            把別人陷入了泥潭中。

             

            因此,我只能在資源加載,瀏覽器緩存,代碼規范上給予他們幫助。

            在為五虎尋找解決方案的同時,另一個項目也在進行著, 一個教育類養成頁游項目。于是,我將所有的方案先應用于養成頁游中,經測試和優化完畢后,再投入五虎項目組。

            下面是我研究和整理出來的一些方案,這些方案并不完美,甚至說僅僅是一些很常見的手法。于是,我大可公布于下,不必擔心任何糾葛。因為這并非是我個人所創的專利,也不是五虎項目所特有的東西,而是我在擁有蕓蕓眾生的網絡中擺渡,谷歌而來。同時,希望有志同道合的朋友能夠給我提出建議,相互交流,共同進步。

            資源加載相關事項:

            一、首要的任務,就是要將資源請求打包為一個隊列。 這樣外部需要加載多個資源時,就可以把隊列作為一個整體來進行事件監聽等。

            二、其次就是資源的分類,資源至少可以分為三類, 一類是Modules.即FLEX中用來模塊化的東西,類似于C++中的DLL,(swc即類似于lib)。其次是ApplicationDomain.這多半是FLASH IDE編輯資源后的導出類。 最后就是純數據了, 如XML或者一些配置文件。 所以,需要將其分類,并能夠以一個很方便訪問的方式來管理。

            三、Loading方式。 Loading方式大概也可以分為兩類, 一類是阻塞式,一類是非阻塞式。  阻塞式就是那種需要出現Loading條的方式,使用這種方式時,資源必須要完全加載完成后,才可以使用。如一些配置文件,UI組件的皮膚資源等。 非阻塞式就是不需要等待,而是在資源未加載完成時,統一采用一個顯示資源來替換。 比如一些圖標,或者RPG地圖中一些人物的顯示(許多游戲在人物未加載完成時,顯示一個球形)。

            pureMVC使用注意事項:

            一、pureMVC的使用應盡量標準,如果MVC使用得不標準,還不如不用。

            二、盡量只在UI與業務邏輯通信時才使用pureMVC,邏輯與邏輯通信應當避免使用,否則會導致邏輯BUG的完全不可控。

            模塊劃分注意事項:

            一、游戲是一個巨大的項目,模塊劃分在所難免。 不論是否拆分為新工程,都必須明確規定各模塊代碼所能操作的權限,若權限過大,會導致無力維護,人走茶涼的現象。

            二、若是采用Flex module進行模塊劃分, 若各Modules分開建立項目,則需要注意文件夾的層級,以及Modules編譯時相對主模塊的優化選項要開啟。

            三、若將所有的Module依然放到一個項目里,則依然要注意文件夾的層級,規范各模塊代碼的操作權限,通信方式等。

            UI方案:

            一、Flex Button大小問題   若采用Flex Button并使用CSS Style方案,則要注意 對于 downSkin,若需要改變大小,則要保證其up down over狀態使用的皮膚都具有同樣的大小。(特別是FLASH IDE中導出元件的話,更要注意,僅僅將縮小后的元件錨點偏移,是會失真的,因為FLEX BUTTON只識別一個元件有效像素的包圍框作為元件尺寸。 可以新建一個透明層或者遮罩層來解決這個問題。 

            二、Button的特殊性 采用CSS使用FlexButton需要將Button各幀拆開。這涉及到美術工作量問題,所以,對于那種以圖片展現(即不需要在BUTTON上添加文本)的BUTTON,可以直接使用FLASH IDE導出SimpleButton并直接使用即可。 而對于那種需要動態修改文本的按鈕,采用CSS即可。

            三、CSS文件的使用。 CSS的使用可以說極大地方便了UI的工作,其實就是將FLEX的UI換膚而已。 但是采用CSS文件方式并不適合我們。因為CSS文件的靜態和動態使用方式都會導致文件巨大。 

            靜態使用方式, 即<mx:Style source=”ooxx.css”/> 方式,這種方式會把 ooxx.css中所嵌入的資源都嵌入到嵌入ooxx.css樣式的SWF中來。

            動態使用方式, 即將css編譯為swf  如 ooxx.swf  并用styleManager加載。 這個方案有一個好處,就是可以動態加載和卸載需要的CSS樣式。 看似天衣無縫的方案,卻有極大的弱點。 當你查看ooxx.swf的大小時,你會發現,就算你什么資源也沒嵌入,也會有300KB+的大小。 這是因為css本身是一個module.它會引入一個flex module所要import的符號。可惜,CSS編譯時,并不能指定針對某個主模塊進行優化。 我也曾嘗試將ooxx.css嵌入到一個module A.mxml中。并在編譯時針對主模塊進行優化,文件減小到了60+KB. 60+KB足夠一個公共UI庫的大小了。所以,CSS文件一定要慎用。

            四、CSSStyleDeclaration與setStyle.  可以通過動態注冊CSS樣式來達到修改FLEX組件樣式的目的。 具體使用方法可以搜索這兩個關鍵字。 但是,在使用時,請先將所需要的資源載入。

            五、TabNavigator 視情況而用。

            六、可拖動窗口  并不一定要使用TitleWindow  若要使窗口可拖動,只需要將窗口startDrag()即可。  而對于許多窗口來說,我們想要實現的是點擊某個位置或者僅當點擊標題欄才拖動。  這個時候,我們可以添加一些透明的組件在這個窗口上,監聽這些透明的組件,并startDrag()窗口即可。

            功能劃分:

            一、不管是哪種游戲類型,都應該把場景和UI劃分清楚,就算是鼠標流的策略游戲,也是如此。 否則在邏輯功能上也會模糊不清。

            二、游戲,永遠都有場景和UI,沒有PAGE。。。 這是頁游和網頁的本質區別。希望做網頁轉為做頁游的朋友能夠接受這個現實,轉變一下思路。

            ----------------------------------分割線-----------------------------------

            瀏覽器緩存避免

            瀏覽器緩存方案也是世人皆知的,我也僅簡單說一下。 更多內容,可以參考本BLOG中,瀏覽器緩存相關文章。

            要想完成瀏覽器緩存避免需要弄清楚兩個事情  一、瀏覽器會緩存以URL全路徑方式緩存HTTP所請求的資源(js,html,swf,txt等等都可以)。 二、FLEX中的資源加載,是 HTTP請求方式。  也就是說, FLEX項目中加載的資源,都會被瀏覽器緩存, 這也是導致許多時候,游戲資源更新失敗的原因。

            而要完全解決瀏覽器緩存問題,需要保證兩個東西  第一、主文件 (比如whsj.swf)更新正常。  第二、主文件所使用的資源(如 assets/loading.swf)更新正常  .

            這里,我們要用到HTTP請求時的傳參功能  即在請求的資源URL后面加上?號 如 assets/loading.swf?v=1.0  。

            在時行資源請求時,HTTP會忽略掉?號,以及以后的字符。 但瀏覽器緩存會緩存整個URL路徑。 并且在進行緩存訪問匹配時,也是采用的全路徑。  所以,我們可以在資源請求時,給每個資源加上一個版本號。

            網上的一個兄弟說的采用SVN生成每一個資源的版本號方案確實很給力,但我認為實在很麻煩。于是,我們大可在請求每個資源時,加上游戲的發布版本號。 這樣,瀏覽器在進行資源緩存時,會將版本號信息一起緩存,當版本更新時,匹配則不會成功,從而解決了資源更新時,使用了舊資源的問題。

            而最主要的,還是主文件的緩存, 因為就算你資源更新了, 但主文件沒更新, 那么,游戲功能就不會變。  當你采用舊版游戲功能與新版的服務器端通信時,自然會出現各種各樣的DOWN和黑屏。  因此, 主文件也要加版本號  如whsj_1_0.swf 而每次版本發布時,運營官網作相應的更改即可。

            此方案也是目前我用在五虎項目上的初步方案。 對于主文件版本號的管理,許多公司的做法是加一個殼, 即做一個專門用于加載主文件的swf  它幾乎不會更改,  永遠都是采用隨機數或者時間戳讀取主文件版本號信息 如 version.xml?v=20111113,并使用  whsj.swf?v=1.0這樣的方式來加載主文件。 這在版本發布時,可以一層不變。僅修改版本號信息文件即可。 而版本號文件采用時間戳等方式讀取,可以保證每次都加載到最新的。

            最后,祝賀一下二部項目天地劫即將測試

            天地劫神跡官網點擊進入

            posted on 2013-02-22 22:36 麒麟子 閱讀(348) 評論(0)  編輯 收藏 引用

            97久久精品人妻人人搡人人玩| 久久精品国产AV一区二区三区 | 久久精品一区二区三区中文字幕| 99久久精品这里只有精品| 久久国产精品视频| 亚洲午夜久久久影院| 久久久综合九色合综国产| 日本精品一区二区久久久| 人妻无码久久一区二区三区免费| 伊人久久大香线焦综合四虎| 久久精品国产亚洲AV香蕉| 99久久99久久精品国产| 久久久久国产精品熟女影院| 久久强奷乱码老熟女| 欧美一区二区精品久久| 欧美大香线蕉线伊人久久| 亚洲乱码日产精品a级毛片久久| 99国产欧美精品久久久蜜芽| 人妻无码精品久久亚瑟影视| 久久er国产精品免费观看2| 777午夜精品久久av蜜臀| 午夜精品久久久久久| 精品久久国产一区二区三区香蕉 | 久久亚洲中文字幕精品有坂深雪| 久久综合日本熟妇| 狠狠综合久久综合中文88| 国产精品久久永久免费| 久久精品中文騷妇女内射| 亚洲伊人久久精品影院| 亚洲精品无码久久千人斩| 国产精品久久久久免费a∨| 久久久久99精品成人片牛牛影视| 久久亚洲综合色一区二区三区 | 日韩精品无码久久一区二区三| 狠狠久久亚洲欧美专区| 久久免费小视频| 一本大道久久a久久精品综合| 亚洲国产成人久久综合一 | 国产成人AV综合久久| 成人a毛片久久免费播放| 一级做a爰片久久毛片16|