github:
website:
api:doc/
每次輸入kmdj輸入法自動提示【開門大吉】,輸入kmdjs提示【開幕倒計時】,所以說kmdjs不僅僅是滿滿的血腥味
(kill all module define lib/framework, kill amd and cmd),還有著美好的寓意。
一定要提kmdjs是因為alloyrenderingengine是基於kmdjs進行模組化開發(其實使用kmdjs已經沒有模組的概念了),只要class和namespace。
kmdjs的核心的核心就是{},class全部掛在 {}上。{}屬於namespace。所以很自然而然得輕鬆實現迴圈依賴。當然kmdjs還有很多優點,如:
github:
看過一些flash團隊的html5開源專案,也讀了讀很多opengl轉webgl的工程師的遊戲引擎教程,他們視野夠廣,圖形方面經驗也很豐富,
但是專案的組織架構千奇百怪,乙個人乙個花樣,乙個團隊乙個花樣。所以,kmdjs要出手了(當然也可以認為又多了乙個新花樣,
當至少是我覺得很滿意、很清晰簡潔的花樣),去組織每一行沒有歸宿感的js**。
先看頂級目錄結構
再看build裡的目錄結構
其中main.js:
kmdjs.config(,,,
,,,,
,,,,
,,,,
,,,]
});define("main", ["are"],
})
ctor是main的建構函式,也是唯一乙個會自動去new的建構函式,其餘檔案裡面difine的class都需要自行去new才能執行。
ctor裡面的一大堆instanceof**主要是為了產生依賴,所以需要合併提取的class都需要寫進去。
最後直接開啟index就能匯出**。
且看匯出後的are.js的最後幾行:
if (typeof module != 'undefined' && module.exports && this.module !== module)
else if (typeof define === 'function' && define.amd)
else ;
這樣的話,你就可以隨意碼了,比如:
var stage = new are.stage("#ourcanvas", localstorage.webgl == "1");
var txt = new are.txt();
stage.add(txt);
為了避免打點,js工程師一般這麼幹:
with (are) );
stage.add(txt);
}(function (stage, txt) );
stage.add(txt);
})(are.stage, are.txt)
(function (are) );
stage.add(txt);
})(are)
require(["./are"], function (are) );
stage.add(txt);
})define(function (require) );
stage.add(txt);
})
終於知道js的世界有多混亂了吧?!
寫一段程式需要頻繁打點是不對的,一是慢,二是麻煩。js工程師為了避免打點幾乎絞盡腦汁。
上面是避免打點的一些手段,如果使用kmdjs,媽媽再也不用擔心打點了:
define("main", ["are"], );
stage.add(txt);}})
這篇主要講了下目錄結構以及kmdjs在are中的作用,還有are的build工具的使用以及模組化的看法,確切說還沒有進入主題,甚至跑題,
但是非常重要,待續。
小公尺MIX3限時開售雙11開門大促
在新機的外觀設計方面,從渲染圖來看,全新的小公尺mix 3將採用真全面屏的設計。在新機的正面設計上,這一次的小公尺mix 3採用了一塊真全面屏,新機的屏佔比再次提高,前置攝像頭則依舊被放置在了機身的右下角,不過面積有了明顯的縮減。而在新機的背部設計上,這一次的小公尺mix 3將會延續此前的設計風格,...
單側開門動畫
uiimageview coverview uiimageview alloc initwithframe cgrectmake 0.0,20.0,320.0,480.0 coverview setimage uiimage imagenamed default.png coverview setc...
開門人關門人
每天第乙個到機房的人要把門開啟,最後乙個離開的人要把門關好。現有一堆雜亂的機房籤 到 簽離記錄,請根據記錄找出當天開門和關門的人。input 測試輸入的第一行給出記錄的總天數n 0 下面列出了n天的記錄。每天的記錄在第一行給出記錄的條目數m 0 下面是m行,每行的格式為 證件號碼 簽到時間 簽離時間...