1. 程式人生 > >JEES控制元件配置化-CreateJS另類用法

JEES控制元件配置化-CreateJS另類用法

    首先呢,我想說純手工程式設計是不錯,單更多時候還是依賴一些工具開發會比較省事。於是呢我嘗試了下把封裝好的createjs部分物件,用配置的方式來生成。是不是閒的蛋疼?

配置篇

配置的思路是這樣的,第一個,我們需要一個關於canvas的基本配置,名字叫:jees.default.config(其實就是個json,叫什麼config來迷惑人)。

我就不貼程式碼貼地址了:https://github.com/aiyoyoyo/jeesjs/blob/master/assets/configs/jees.default.config

裡面分為3個部分:

1. Setting,關於canvas的部分屬性和createjs的部分設定。由jees.SET物件管理,jees.APP來使用。

2. Connector,WebSocket連線部分(是不是又覺得我很閒?),關於這個有很多例子,我就不說明了,沒什麼特別的地方,就是和jeesupport銜接的比較好而已。(jeesupport在這裡->https://github.com/aiyoyoyo/jeesupport

3. Skin,UI面板的定義,其實就是各個UI使用的圖片資源區域和分割方案啦。

通過基礎配置,我們可以實現createjs的解析,jees.Widget的解析,這裡的擴充套件思路可以自行揮發。

第二個,關於UI的配置,可以參考這個:https://github.com/aiyoyoyo/jeesjs/blob/master/assets/layouts/jees.uieditor.layout

,(又把json檔案命名的這麼高大上)

裡面其實就是jees.Widget各種屬性的定義寫了一遍啦。有興趣的朋友可以試著這樣翻譯createjs的原生屬性,我知道你們有些大神喜歡自己折騰。

應用篇

  說起應用無非就是載入ooxx,然後呼叫ooxx,然後控制ooxx。看看我怎麼應用的吧:

......
// 載入資源
jees.Resource.register( "logo", "../assets/images/JeesJS_Logo.png" );
...省略部分程式碼
// 載入佈局檔案
jees.Layout.register( "uieditor", "../assets/layouts/jees.uieditor.layout" );
// 載入完成通知
jees.RM.onload( function(){ _this._initialize(); } );

//_this._initialize長這樣:
p._initialize = function(){
  this._layout = jees.Layout.load( "uieditor" );
  var wgt = this._layout;
  var txt = wgt.findChildByName( "testText" );
  // 到這裡我們就可以對wgt(createjs容器物件)和txt(createjs文字物件)為所欲為了。
  // 比如改變位置
  txt.setPosition( 100, 100 );
  // 由於不是所有屬性都能完美實現,所以其他的部分請各位自行腦補或者手補。
  // 詳情見 https://github.com/aiyoyoyo/jeesjs/tree/master/src/ui 裡面的物件型別。
}

關於js物件的屬性和方法,私有和共有的區分在這裡使用了“_”開頭和非“_”開頭,比如this._initialize或者this.initialize,他們在外部被使用時都是可以的,但基於我個人的設計理念和命名規範,我們儘量使用initialize而非_initialize。關於命名規範,請參考我另外一篇 非優雅的程式設計技巧(半駝峰命名)

最終的效果如下:

這裡展示了目前已實現的幾個UI控制元件。如果有人能提出寶貴意見和BUG,我想說:寶貴意見請關注我,並務必到QQ群:8802330來指導我。BUG的話, 請不要在意這些細節。