YUIConf 2011年初禽流註冊現已開放

珍妮·唐納利在發展 ,2011年9月30日下午09:31 , YUI事件 | 4評論

早鳥為YUIConf 2011年註冊現在Eventbrite開放!今年的賽事將於11月2-4日在雅虎的偉大的美國校園。 我們很高興為您帶來的全天手培訓研討會(三)由兩充滿高科技會談約銳(星期四/星期五)兩天之後。 會議註冊費$ 75,今年50元的早期鳥類率。 註冊講習班將是會議和細節即將分開。

我們正忙著排隊偉大的主題,包括:

  • YUI組件的深海潛水,​​包括撥號和日曆
  • 在移動環境下的銳
  • 測試使用YUI
  • 現實世界中的移民故事
  • 和很多很多!

會議會議將一如既往,錄影,並提供銳劇院和我們的YouTube頻道,所有享受。

希望看到你!

(重要內部Yahoos族雅虎員工票,請註冊,並提供您的工作電子郵件地址。)

共享和擴展: 書籤del.icio.us Digg它! | reddit!

銳3.4.1現住

艾倫拉比諾維奇,2011年9月27日下午2:37 | 開發 | 8評論 YUI 3.4.1

銳3.4.1週期短,現已推出基於CDN下載 ,提前一周多! 下面是這個版本的幾個亮點:

您可以還可以查看銳3.4.1組件的歷史文件中指出的所有變化的總結,以及銳3.4.1發展過程中解決門票的完整列表 一如既往,我們將非常感謝您提出的任何建議,你可能有缺陷,你會發現在我們的車票數據庫。 在YUI 3票數據庫,可輸入反饋銳3.4.1 。

我們也想宣布,在下一版本銳, DataType.Date,DataType.Number和DataType.XML將被廢棄在贊成Y.Date,Y.Number,Y.XML,分別。 向後兼容性將保留一個版本,給大家一個機會切換。

哦,還有一件事:我們的道路上以及在YUI Theater內容遷移到YouTube 對於初學者來說,Douglas Crockford的系列講座“克羅克福德的JavaScript” -字幕完整!

共享和擴展: 書籤del.icio.us Digg它! | reddit!

在開源大獎總決賽投票銳

9月26日,珍妮·唐納利2011 9:21 PM | 雜記 | 1條評論

感謝大家Packt出版開源獎提名銳銳現在投票為您最喜愛的JavaScript庫!

共享和擴展: 書籤del.icio.us Digg它! | reddit!

銳3.4.1 PR1的現在可以在加

9月22日1:35 PM,在2011年由珍妮·唐納利| 開發 | 1評論

3.4.1銳PR1的是現在社區測試和反饋。 這是在雅虎的CDN的http://yui.yahooapis.com/3.4.1pr1/build/yui/yui-min.js ,你可以看到的變化,從檢查的門票清單到3.4.1 在釋放

3.4.1版本將是一個更小的錯誤修正版本縮短開發週期,定於10月5日去生存。 請文件中的錯誤和回歸的票YUILibrary.com數據庫由9月26日(星期一)上午,這樣我們就可以確保任何關鍵的問題是一般發布之前解決。 如果沒有迫切的問題報告,我們會早在9月27日發布的3.4.1。

共享和擴展: 書籤del.icio.us Digg它! | reddit!

銳:週四年9月第15屆營業時間

9月12日,2011 9:58 PM由盧克·史密斯在發展 ,營業時間 | 2評論

Satyam的MakeNode擴展

如果你不知道薩蒂揚 ,你必須是新的了​​YUI。 銳2初期以來,他一直是銳界的支柱。 對YUIBlog他的文章,都是一些最閱讀並簡稱為“如何真正地使用圖書館”的風格內容來源。 如果你看到,薩蒂揚寫的,它是值得閱讀,最有可能的,重新閱讀和書籤。

7月,他發布了一個偉大的文章MakeNode部件擴展,旨在簡化建立小工具時,使用的一些常見的模式,並使其更容易避免常見的失誤。 該模塊已被添加到庫 ,只是今天早些時候,他張貼了他原來的文章更新

這正是我們將要談論。 的特點,歷史和推理。 如果你已經使用的組件基礎設施,並在特定的, Y.Widget ,你可能會遇到至少薩蒂揚載,以解決一些障礙MakeNode 這將是最好的做法巨星,所以把你的記事本,和自己的經驗分享。

時間及詳情

我們會在線上週四從上午10時至上午11時PDT。

參加會議

錄音

錄音是在YUILibrary YouTube頻道

共享和擴展: 書籤del.icio.us Digg它! | reddit!

提交2011年為YUIConf交談

珍妮·唐納利,2011年9月12日下午03:48,在發展中, YUI事件 | 評論

炫耀的代碼,你已經或共享的東西,你已經學會使用YUI工作的工作! 您的建議提交2011年9月23日,星期五,YUI事件(在)雅虎inc.com。 一定要包括:

  • 標題
  • 描述
  • 目標受眾
  • 你的名字
  • 一個簡短的生物

雅虎的加利福尼亞州聖克拉拉校園YUIConf 2011年將舉行11月3日和4日。 你的介紹應該持續大約45分鐘。 我們將有長達15分鐘後您介紹Q&A 發表在評論中有任何疑問,或直接發送電子郵件YUI事件(在)雅虎inc.com。

共享和擴展: 書籤del.icio.us Digg它! | reddit!

更新時間:“MakeNode”部件擴展

2011年9月12日,在下午03:18薩蒂揚在發展YUI 3畫廊 | 8評論

編者按:這篇文章原本今年早些時候發表的 從那時起, MakeNode模塊已發布了YUI庫,並收到了一些改進。 今天的文章反映了所有到MakeNode最新變化。

在我以前的文章中, 一個YUI 3應用配方 ,我表明方式使用Y.substitute一個非常基本的模板處理器。 從那裡生活的想法了,從#YUI IRC頻道鄉親的建議,我做了一個Widget的延伸,是對YUI畫廊,被稱為MakeNode MakeNode是不是一個通用的模板處理器,它不意味著為一體。 另一方面,它緊密集成與YUI 控件的基礎類,包括ClassName和事件傭工和國際化。 在這篇文章中,我將採取微調的例子,並修改它從我以前的文章遵循的指導方針和使用MakeNode MakeNode是作為一個畫廊組件以及修改微調組件, 例如在這篇文章中,將使用。

擴展你的組件

要加載MakeNode你需要包括在你的模塊YUI().use()使用的名稱'gallery-makenode'或聲明,如果確定通過模塊YUI.add()作為上市requires陣列。 然後,延長你的widget,你列出的第三個參數Y.Base.create()像這樣:

  Y.Spinner = Y.Base.create(
      “微調”,
      Y.Widget,
      [Y.MakeNode]
      {
         / /實例成員...
      },
      {
          / /靜態成員
      }
 ); 

您可以添加任何合適的擴展部件,如WidgetParent,WidgetChild,WidgetStdMode,沿MakeNode等MakeNode增加了兩個被用於開發,保護的方法_makeNode_locateNodes,它會讀取從幾個靜態屬性,如果發現。

這個擴展的所有成員是protected或private,因為他們是為了組件的開發和使用這些組件的實施者,誰不應該與他們的困擾。 查看API文檔時,記得檢查“顯示受保護”的選項。

定義模板

你通常會做的第一件事是定義為您的組件的模板。 對於微調,我們的模板將是:

  _template:
     <input type="text" title="{s input}" class="{c input}">“
     “<button type="button" title="{s up}" class="{c up}"> </按鈕>”
     “<button type="button" title="{s down}" class="{c down}"> </按鈕>”
 。加入('\ N'), 

通常會被命名為默認模板_TEMPLATE和沿線的其他類的靜態屬性,如宣布ATTRS 如果沒有其他明文規定,MakeNode將使用此模板。 模板是純HTML加上一系列括在大括號中的佔位符,每個單個字符(加工代碼)和一個或多個參數。 佔位符和他們生產什麼是:

  • {@ attributeName}配置屬性的值

  • {p propertyName}實例的屬性值

  • {m methodName arg1 arg2 ….}給定的方法的返回值。 後跟由空格隔開的參數的方法名稱和任何數量的加工代碼。

  • {c classNameKey} CSS類名從生成_CLASS_NAMES靜態屬性(見的_CLASS_NAMES財產下文)

  • {s key}字符串從strings屬性,子屬性使用key

  • {? condition valueIfTrue valueIfFalse很像?: valueIfTrue valueIfFalse } ?: JavaScript的運營商,評估,以valueIfTrue如果條件是truish的,否則valueIfFalse

  • {1 condition valueIfOne valueIfMore }用於生產的基礎上,條件值的單/複數的話。

  • {}任何其他值將處理就像Y.substitute不。

例如, {@ value}將轉化到this.get('value') {p value}轉換為this['value']

當佔位符參數,如{m} {?}{1}字符串必須括在雙引號。 數字,布爾值null null (所有非上市),將被解析到正確的數據類型。 佔位符可以嵌套。 {?}{1}佔位符通常會包含嵌套的佔位符為條件,很可能對他們的價值觀,例如:

  {數量} {1 {數量}“單位”,“單位”} 

如果該屬性的qty是1,它會評估"1 unit" ,2個或更多,它會返回"2 units"等。 處理零一個更詳細的版本將是:

  {?  {數量}“{數量} {1 {數量}”單位“,”單位“}”,“無”} 

請注意,必須在其自己的一套引號括起來,處理內佔位符,如果一個字符串的結果。

包括一個雙引號內的引號的字符串,請使用\\"因為JavaScript解釋一個單一的一個丟棄它之前,它得到到MakeNode只允許使用雙引號。MakeNode不eval() eval eval()的雙反斜線解析器是有限的,但安全。什麼,但數字, null ,布爾和雙引號字符串將被忽略。

{?}佔位符也是得心應手地使用複選框和單選按鈕。 它可以用來產生字符串"checked"根據真值的處理指令的代碼如下。 因此, <input type="checkbox" {? {m getLength} "checked" ""}/> <input type="checkbox" {? {m getLength} "checked" ""}/>將產生顯著的複選框,如果getLength方法返回什麼,但零。

{c}佔位符,我們需要定義有1 _CLASS_NAMES財產。

進一步佔位符,可以添加到MakeNode加入到他們_templateHandlers哈希。

_CLASS_NAMES財產

沿著與ATTRS_TEMPLATE靜態屬性,我們可以定義1 _CLASS_NAMES靜態屬性,它指向一個字符串數組。 這些字符串都將被用來生成一個類的。 因此_CLASS_NAMES: ['input']會產生的className "yui3-spinner-input" 那些類名存儲實例屬性this._classNames {c input} "yui3-spinner-input" {c input}上面的模板中的佔位符將被替換。 我呼籲在列出的字符串_CLASS_NAMES ,如'input' ,“的className ”,因為它們可以作為一個重要參考實際的className或包含這些類名的元素使用,稍後我們會看到。

你可以使用_CLASS_NAMES屬性來生成任意數量的類名,你是否在模板或不使用他們。 你仍然可以達到從內部this._classNames這些額外的類名。 使用yui3前綴NAME的靜態屬性的價值,產生的className轉為小寫,然後在給定的的字符串_CLASS_NAMES (這一次將不會變成小寫),全部由連字符分隔。 _classNames哈希也將包含為boundingBox類名和的contentBox ,下"boundingBox"關鍵的第一下第二"content"鍵。 部件分配到boundingBox NAME在繼承鏈中的每個類的屬性的值派生的類名,開始yui3-widget MakeNode存儲到this._classNames只有最頂級的className boundingBox

MakeNode,如果WidgetStdMod模塊被加載,也會產生項的HEADERBODYFOOTER節與那些相同的密鑰,這也是在同一模塊中定義的常量。

如果一個組件是幾個層次,從Widget一樣, SuperSpecialSpinner從的繼承SuperSpinner從繼承從繼承Spinner Widget, _CLASS_NAMES this._classNames Spinner Widget,如果其中的任何或全部定義_CLASS_NAMES屬性,MakeNode將產生所有的類名,並存儲在他們this._classNames 你不必包括在每個級別的名字已經宣布,在以前的水平。 事實上,它是更好的,你不會因為在每個級別的類名,使用該級別的屬性值的NAME 因此, SuperSpecialSpinner{c input}仍將導致的"yui3-spinner-input""yui3-superspecialspinner-input" ,所以它會保持你的CSS文件仍然有效。

{}佔位符

構件有strings配置屬性定義,雖然它不與任何值初始化。 此屬性是為了保存字符串(或通過屏幕閱讀器,閱讀)的用戶是可見的。 重要的是,你永遠不包括直接在模板中可見字符串。 這是不是的MakeNode的要求 - 在所有它從來就不是一個好主意。 應始終被視為或讀取用戶的所有字符串放置在strings屬性。 strings屬性包含了每一個人的文字是由位於其關鍵的哈希。 微調器組件有以下字符串,你可以看到在上面的模板使用。

 字符串:{
    值:{
        輸入:“按箭頭/向下鍵輕微的增量,頁/主要增量。”
        了起來:“增量”
        下來:“減”
     }
 }, 

這樣做的最好的部分是組件可以使用您的組件的開發本地化為其他語言很容易。 當創建一個微調的實例,你可以這樣做:

  mySpinner =新的微調({字符串:Y.Intl.get('微調')}); 

以這種方式設置的配置屬性strings取代與使用先前定義的語言,從語言資源文件的默認strings值。 {s}佔位訪問存儲在字符串strings屬性,無論是默認的或翻譯的,如果設置。 {s xxxx}佔位符幾乎是一樣使用{@ strings.xxxx}除了本地化替換字符串可以有佔位符,這將進一步處理。 這是翻譯的重要,因為語法為了從語言到語言不同,這使得改述的文字,包括其佔位符,以適應任何語言。 使用{@ strings.xxxx.yyyy.zzzz}這將允許訪問嵌套更深下來的字符串,並防止進一步的替換字符串也可以訪問。 大括號可以包含在一個文本使用{LBRACE} {RBRACE}作為佔位符。

使用在renderUI _makeNode

我們使用模板來創建我們的組件的標記。 這樣做,我們可以調用MakeNode的_makeNode方法,是這樣的:

  renderUI:函數(){
     。this.get(“contentBox)追加(this._makeNode());
 }, 

這將填補我們的部件在contentBox處理模板的標記。 _makeNode方法返回一個實例Y.Node可追加或插入任何地方,或只是為以後使用而舉行。 它不返回一個字符串,它產生一個Node實例。 (如果你需要一個字符串,而不是一個節點,你可以使用的_substitute方法,這就要求你在模板中通過。)

_makeNode方法有兩個可選參數:一個參考模板和對象,以填補在佔位符,,作為Y.substitute 在我們簡單的微調例如,有一個單一模板的整體部件,但其他部件可能需要位和幾個模板件。 在這種情況下,你通常會致電_makeNode的主要部分沒有參數,調用不同的模板,再次填補多餘的部分。 例如包含此renderUI方法:

  renderUI:函數(){
     this._makeNode的fieldset =();
     this.each(函數(項目){
         fieldset.appendChild(this._makeNode(MultipleTemplates.RADIO_TEMPLATE項));
     });
    中this.get(“contentBox)追加(字段集);
 } 

_makeNode第一次調用返回一個Node實例存儲在變量中fieldset 樣品組件也延伸與Y.ArrayList所以RADIO_TEMPLATE將被從存儲在數組列表中的項目和所產生的附加 ​​的節點值填充fieldset前最後追加到contentBox 如特殊的佔位符{@} {p}仍將主要對象的屬性或屬性。 正如Y.substitute將嵌套的項目將被處理。

_locateNodes方法

MakeNode進一步提供_locateNodes方法,將盡力找到所有的元素在聲明的類名_CLASS_NAMES 找到特定的元素,您可以通過任意數量的className鍵,否則, _locateNodes嘗試他們所有。 對於每個發現的className的每個元素中, _locateNodes會產生一個私人的實例的屬性,使用下劃線前綴鍵的名稱和"Node"後綴。 因此,我們飛旋例如, _locateNodes會生成的屬性_inputNode_upNode_downNode 如果有多個元素具有相同的className, _locateNodes將返回一個引用到他們的第一。 如果一個元素沒有被發現,沒有變量將被創建。

在微調組件,我們使用_locateNodes後創建的標記:

  renderUI:函數(){
     this.get(CBX公司)追加(this._makeNode());
     this._locateNodes();
 }, 

_EVENTS的靜態屬性

一個進一步的屬性可以被定義沿線_TEMPLATE_CLASS_NAMES ,是_EVENTS_EVENTS將包含類名鍵,每個包含一個事件的類型和方法來處理它們的哈希散列。 這是更好地用一個例子來解釋:

  _EVENTS:{
    輸入:'變',/ /調用this._afterInputChange
     boundingBox的:
         {
             “鑰匙”,類型:
             FN:“_onDirectionKey',/ /調用this._onDirectionKey
            參數:(Y.UA.opera“下來:”:!“記者:”)+“38,40,33,34”
         },
         “的mousedown'/ /調用this._afterBoundingBoxMousedown
     ]
    文件:“的mouseup',/ /電話this._afterDocumentMouseup中,
     Ÿ:'broadcastingObject:someEvent'/ /調用這個[的“_afterYBroadcastingObject:someEvent的”]
 }, 

_EVENTS是任意數量的條目對象(哈希)。 屬性的名稱,即哈希鍵,確定節點的事件,我們會聽取。 他們是相同的className定義鍵_CLASS_NAMES 有一些額外的特殊功能鍵:

  • "boundingBox"參考邊界框本身。

  • "document"是指包含此部件的文件。

  • "THIS"指的widget本身

  • "Y"Y Y實例。

如果部件已經WidgetStdMod以及延長,鑰匙HEADERBODYFOOTER將參考這些部分,因為他們將可在_classNames哈希。 JavaScript並不需要被引用的鍵,如果他們是有效的標識符,因此上述沒有被引用。

處理後_EVENTS renderUIbindUIsyncUI方法,被稱為widget的預期,因此已經插入文檔正文內"document" _EVENTS財產,否則, "document"標識將失敗。

對於每個元素有一個事件標識符或事件標識符的數組。 可確定事件由事件來聽或進一步的細節的對象的類型。 MakeNode默認情況下,將使用一個名為使用方法監聽器"_after"前綴,由它的第一個字符的元素標識符資本化與資本的第一個字符的事件類型。 上面的代碼塊顯示每個事件調用的方法。

事件標識符,也可以是一個屬性的對象typefn args args 。 type是強制性的,並表示正在監聽的事件類型。 fn屬性給出的方法,將收聽到的事件,從而避免了自動命名的名稱。 由於_EVENTS是一個靜態屬性,它有沒有上網this因此它不能採取實際的參考方法,只是它的名字。 args參數可以用來傳遞key事件,這需要一個鍵規範,如與來電的進一步論據。

MakeNode將使用Node.delegate聽內的元素的事件boundingBox ,而它會使用Node.after聽從事件boundingBox和筆體。 它將使用this.after聽下THIS關鍵和Y.after根據上市聽眾Y關鍵事件。 所有事件都聽過因為他們是為了使部件響應事件的事件偵聽器 ,不過濾的對象,讓他們在任何情況下,這些事件可以被阻止或停止觸發的行為。 (注:聽任何嵌套元素的key事件,僅適用於版本3.4.0pr1及以上,因為代表團的key事件是之前所有其他功能的工作以及與以前的版本。)。

_EVENTS聲明是累積性的,當組件從一個繼承。 繼承鏈中的每個類都會有其自己的_EVENTS聲明分開處理。

_ATTRS_2_UI的靜態屬性

活動是雙向的,從UI組件從組件到UI。 首先是處理由_EVENTS屬性。 然後有由屬性值的變化,必須體現在用戶界面中引發的事件。 正如我在前面的文章,有任何改變配置屬性的輔助療效時提到,他們應改變事件監聽器處理,而不是可選的setter方法的屬性,它應該只處理正常化設置的值。 UI應該反映配置屬性的狀態,首先在syncUI時被初始化,然後對每一個屬性更改事件。 對於後者,我們需要附加一個事件監聽器,我們通常會在bindUI做。 部件已經提供了一種機制,使這個簡單,我在上一篇文章的評論。

部件使用,它包含一個與另外兩個性質,對象_UI_ATTRS SYNCBIND實例屬性_UI_ATTRS 這些是一個數組,列出最初同步時的配置屬性的名稱,然後聽取以反映當前值保持UI。 部件預計每個條目有一個與之關聯的方法,由前綴屬性名後的第一個字符轉換為大寫有駱駝的情況下適當的方法名稱的屬性名稱的命名_uiSet 因此,如果"value" ​​在任何上市_UI_ATTRS陣列( SYNCBIND )的Widget希望找到一個_uiSetValue方法。 這種方法將收到兩個參數的value設置和src的變化。 這是為我們的微調代碼_uiSetValue方法:

  _uiSetValue:功能(價值,SRC){
    如果(SRC ===界面){
        返回;
     }
     this._inputNode.set(值,this.get(格式化)(值));
 }, 

你在這段代碼中看到對應的字符串常量的所有大寫字母標識符宣布在其他地方,讓YUI壓縮到更好地完成其工作。 ,基本上,該方法設置的value在HTML屬性<input>中的新值集,被格式化後。 被由_locateNodes提供參考文本框。 src參數的初步檢查,看看是否設置為字符串值'ui' 如果是這樣的,將採取任何行動。 這是為了避免無休止的循環。 如果用戶在輸入框中輸入的東西,其價值將進入value的配置屬性,然後將火的事件valueChange ,會得到_uiSetValue呼籲,如果不加以控制,然後去改變輸入框的值,將再次引發整個過程。 因此, _uiSetValue ,如果我們知道的變化,從UI,我們什麼也不做,所以打破循環。 然而,這需要另一塊代碼的其他地方。 在DOM事件監聽器,當我們設置的配置屬性,我們使用的第三個可選參數設置,像這樣:

  _afterValueChange:功能(EV){
     this.set(值,ev.newVal {SRC:用戶界面});
 } 

這是我們確保,因此,從用戶界面的變化標記,然後檢查相同的標誌,以避免環路。 不要使用標識src時,設定值的屬性,而不是source這將不被認可。

這一切說,我還沒有談到在本節的標題中提到的靜態屬性_ATTRS_2_UI 正如我在以前的文章顯示評論(通過我在他們的失誤),確保正確列出的所有屬性影響的UI是有些凌亂。 你永遠不應該初始化_UI_ATTRS以來從頭部件已經列出了一大堆的屬性和那些會丟失。 你有新的屬性名稱串連在現有的,這有點很難記得如何做是正確的。 為了簡單,MakeNode將讀取靜態屬性_ATTRS_2_UI並為你做什麼,串聯。 它將連接所有這些清單,以便從繼承鏈中的每一類,每一級,每一類可以處理自己的屬性。 在微調,我們有:

  _ATTRS_2_UI:{
     BIND的:價值,
    同步:VALUE
 }, 

MakeNode將接受的名稱數組或一個單一的屬性名稱,在這種情況下。

問題自然會產生,為什麼兩份名單,結合其他同步? SYNC使用第一時間解決,後renderUIbindUI方法,如果它們存在,被稱為中列出的那些而syncUIBIND將勢必為以後的變化,相應的屬性。 SYNC陣列往往比少BIND列表項和,這是因為組件的模板可能已經有很相同的配置屬性的默認值,有沒有必要做一個初步的同步。 因此,如果的value配置屬性的默認值是一個空字符串的<input>在模板中的元素沒有value屬性,那麼有沒有必要在初始化同步。

中列出的屬性BIND將有其_uiSet Xxxx任何順序方法,可以在任何順序設置屬性。 中列出的屬性SYNC將在它們上市之前,他們傳承祖先的順序調用一次,因此如果一個依賴於另一個(他們不應該),順序可能很重要。

MakeNode將檢查這些陣列中的任何重複的條目。 如果任何出現的,它意味著已經處理此屬性和任何新的聲明將最有可能超越我們的組件1類繼承_uiSet Xxxx為它的處理程序。 順便說一下,MakeNode重複的條目,在_CLASS_NAMES ,這也可能導致在一些衝突,但並非所有的情況下,還檢查。 MakeNode會寫消息到任何這樣的錯誤日誌。

_PUBLISH財產

最後,的_PUBLISH靜態屬性將列出這些事件有公佈。 它包含一個哈希使用的名稱作為鍵的事件和對象的配置屬性,其值的字面。 它會公佈所有的繼承鏈中的任何此類財產中列出的所有事件。 相同的事件名稱可以發表在一個類中,在任何類從它繼承,這將使後來者的配置屬性覆蓋那些在舊的。 例如,你可能想使現有的全球賽事轉播。 正如與_EVENTS屬性,因為_PUBLISH是一個沒有訪問靜態屬性,指定功能時,它是該方法的名稱,作為一個字符串,需要給予。 this

結論

MakeNode提供了一個非常簡單的模板處理器,功能高度集成與Widget的基礎類。 它也提供了輔助的方法來創建類名在模板中使用,並使用這些名稱來查找和參考節點。 它還提供了掛接到由UI組件本身所產生的事件和與之相關的每一個方法的手段。 它所有這些東西,同時注意尊重直線上升Widget和任何級別的類,你可以定義繼承鏈。

它不提供絕對的所有可能性,但涵蓋了他們良好的範圍。 然而,它並不妨礙你增加額外的功能。 你可能很少有寫bindUIsyncUI方法,如果你使用由MakeNode提供膠水,但你可以這樣做,因為MakeNode不使用它們。

作為獎勵那些有耐心去閱讀,到目前為止,我還修改安東尼Pipkin的圖庫組件的按鈕集和一個手風琴和TimeSpinner的組成部分,所有可用的畫廊

薩蒂揚 關於作者:丹尼爾·巴雷羅(網名薩蒂揚)已經有相當長一段時間。 ENIAC的被關閉的前一天,他出生的,所以他錯過了,但他不會錯過多以來。 他有穿孔卡片的機會,計劃6502芯片(記得在蘋果II?),自己的TRS-80和看到一些精彩操作設備可能在博物館其他地方一直在他的祖國阿根廷件。 當全球化向世界敞開了大門,他然後勉強可用英語(加電氣工程學位),把他的職業生涯路徑,在在灣區背在NCSA Mosaic瀏覽器的日子5年的工作結束。 完全由他的一個朋友寫在他的純文本編輯器,<和>的有趣的波浪線很感興趣,他結束了學習很多很多關於世界的前端工程。 COBOL和Fortran以來它一直是一個漫長的旅程。 現在他住在巴塞羅那,西班牙地中海沿岸靠近相當愉快地半退休。

共享和擴展: 書籤del.icio.us Digg它! | reddit!

下一頁»
主辦雅虎

©2006-2012雅虎公司所有權利保留。 隱私政策 - 服務條款

支持WordPress的關於雅虎 虛擬主機