国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

21.5.創建Cairngorm視圖、事件和模型

2024-04-27 13:52:28
字體:
來源:轉載
供稿:網友
21.5.1.問題
我需要創建一個Cairngorm視圖,并把它綁定到模型的屬性上。
21.5.2.解決方案
創建一個實現了Cairngorm ModelLocator接口的模型類,往這個類里添加需要的數據屬性,并把這些屬性標記為可綁定的。然后把視圖中所有數據驅動的控件綁定到這個模型的對應屬性上。
21.5.3.討論
Cairngorm控制器的視圖不需要擴展任何類,它可以是任意類型。視圖最重要的特征是它們綁定到模型類的屬性上,并且當需要從服務器加載數據或者需要向服務器發送數據時,它們會觸發CairngormEvent。

接下來的幾部分將創建一個Cairngorm應用程序,我們將按照書寫的順序而不是開發的順序一步步顯示它們。這個程序的視圖包括:一個mx:Button,點擊它會生成一個加載recipes的事件,該事件會調用服務并加載recipes;一個DataGrid,用來顯示從服務器收到的結果:
+展開
-XML
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400height="300">
<mx:Script>
<![CDATA[
import
oreilly.cookbook.cairngorm.events.RecipeEvent;
import oreilly.cookbook.cairngorm.model.Model;
/*在下面的方法中,會發送RecipeEvent,該事件使得FrontController接收來自服務器的數據,我們不需要知道服務器究竟是從數據庫中讀取數據還是從其他地方讀取。更多關于FrontController的信息,請查看21.8小節。而現在,我們關心的是視圖和視圖發送的通知應用程序獲取數據的事件。另外需要注意的是,CairngormEvent類有一個dispatch方法,用來把它們發送到Cairngorm EventDispatcher上。這跟通常情況下處理事件的方式不同,需要確保事件被FrontController處理而不是被其他的截獲。*/
privatefunction loadRecipes():void{
var evt:RecipeEvent = newRecipeEvent(RecipeEvent.GET_RECIPE);
evt.recipeKeywords= recipeKeywords.text.split("," );
//Note that the CairngormEvent class dispatches itself
//This notifies the Cairngorm EventBroadcaster that the event
//is being dispatched. This is used to ensure that the Cairngorm architecture
//handles the event rather than the flash.events.EventDispatcher
evt.dispatch();
}

]]>
</mx:Script>
<mx:VBox>
<mx:TextInput id="recipeKeywords"/>
<mx:Button label="Load Recipesclick="loadRecipes()"/>
<!--Cairngorm程序視圖的另一個重要特征是它綁定到模型上。下面的例子中recipeArray是服務器返回的數據數組,它保存在模型中,視圖就綁定到它上面。這樣不需要把視圖暴露給服務相關的邏輯,就能在數據加載到應用程序時更新視圖。-->
<mx:DataGrid dataProvider="{Model.getInstance().recipeArray}">
<mx:columns>
<mx:DataGridColumn dataField="title"/>
<mx:DataGridColumn dataField="difficulty"/>
<mx:DataGridColumn dataField="pictureURL">
<mx:itemRenderer>
<mx:Component>
<mx:Image source="{data}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="preparationTime"/>
<mx:DataGridColumn dataField="ingredients"/>
<mx:DataGridColumn dataField="instructions"/>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
</mx:Canvas>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青铜峡市| 左云县| 那坡县| 高雄县| 永吉县| 渝北区| 泰顺县| 镇平县| 南平市| 沁水县| 九龙城区| 高要市| 平邑县| 维西| 渑池县| 三亚市| 田阳县| 东至县| 额济纳旗| 崇明县| 汾西县| 新竹县| 缙云县| 禄劝| 朔州市| 湖口县| 陈巴尔虎旗| 平武县| 鄂托克旗| 日土县| 政和县| 文成县| 任丘市| 长子县| 湾仔区| 玉溪市| 铜山县| 修水县| 托克托县| 海原县| 攀枝花市|