Flex之旅:第二部分:容器與佈局(2)---動態新增元件(TabNavigator)
動態新增元件
其實所謂的動態新增元件,就是使用as程式碼去新增,而不是使用標籤去事先定義好。
我定義了一個TabNavigator,初始化時候,沒有往裡面新增任何的元件。
之後,通過按鈕,去新增,刪除,禁用,元件。
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Script> <![CDATA[ import mx.containers.Canvas; import mx.controls.Label; import mx.core.UIComponent; import mx.events.FlexEvent; protected function add_clickHandler(event:MouseEvent):void { var canvas:Canvas = new Canvas(); canvas.label = "tab"+tabNavigator.numChildren; var label:Label = new Label(); label.text = "this is a label in Canvas!"; canvas.addChild(label); // label add to canvas tabNavigator.addChild(canvas); // canvas add to tabNavigator } protected function remove_clickHandler(event:MouseEvent):void { if(tabNavigator.numChildren>0){ tabNavigator.removeChildAt(0); // remove first } } protected function disable_clickHandler(event:MouseEvent):void { if(tabNavigator.numChildren>0){ (tabNavigator.getChildAt(tabNavigator.numChildren-1) as UIComponent).enabled = false; } } ]]> </fx:Script> <s:VGroup> <s:HGroup> <s:Button id="add" label="add" click="add_clickHandler(event)"></s:Button> <s:Button id="remove" label="remove" click="remove_clickHandler(event)"></s:Button> <s:Button id="disable" label="disable" click="disable_clickHandler(event)"></s:Button> </s:HGroup> <mx:TabNavigator id="tabNavigator" width="100%" height="300"> </mx:TabNavigator> </s:VGroup> </s:Application>
絮叨絮叨:
- 通過as動態新增或刪除子組建,我個人感覺還是為了效能和頁面邏輯要求考慮。
- 為了提高啟動效率,不希望頁面在初始化的時候,創建出太多的子組建之類的。
- canvas.label 會作為tab的標題欄顯示
- tabNavigator.numChildren可以獲得tabNavigator的子元件的個數,但是僅僅是tabNavigator的下一級!
相關推薦
Flex之旅:第二部分:容器與佈局(2)---動態新增元件(TabNavigator)
動態新增元件 其實所謂的動態新增元件,就是使用as程式碼去新增,而不是使用標籤去事先定義好。 我定義了一個TabNavigator,初始化時候,沒有往裡面新增任何的元件。 之後,通過按鈕,去新增,
【C++探索之旅】第二部分第一課:面向對象初探,string的驚天內幕
信息技術 false cli 方法 復雜 weixin include 命令 就是 內容簡單介紹 1、第二部分第一課:面向對象初探。string的驚天內幕 2
【Linux探索之旅】第一部分第三課:測試並安裝Ubuntu
u盤 nco 過程 sans ubunt windows u盤啟動盤 系統 .com 內容簡單介紹 1、第一部分第三課:測試並安裝Ubuntu 2、第一部分第四課預告:磁盤分區 測試並安裝Ubuntu 大家好,經過前兩個比較偏理論(是否
Rust 每日千行之旅<0>:源代碼組織,Cargo 入門
最終 項目目錄 div zsh span org rust logs ack Rust 源代碼組織,使用配套的 Cargo 工具,其功能強大,程序員可擺脫 C/C++ 中需要自行維護 make、cmake 之類配置的工作量。 初始化一個項目: cargo new --bi
Rust 每日千行之旅<1>:變量、可變性、常量、隱藏
main span 左值 無法 nbsp hello 顯示 world! logs rust 是強類型語言,所有變量、常量都必須有明確的數據類型;很多情況下,省略類型聲明,編譯器可自動推導,但不是所有情況下都會成功。 一、rust 中的變量值默認是不允許改變的,即不可二
機器學習與深度學習系列連載: 第二部分 深度學習(二)梯度下降
梯度下降 Gradient Decent 我們回憶深度學習“三板斧”, 選擇神經網路 定義神經網路的好壞 選擇最好的引數集合 其中步驟三,如何選擇神經網路的好壞呢? 梯度下降是目前,最有效的方法之一。 方法:我們舉兩個引數的例子
嵌入式軟體工程師【面經:第二部分-指標】
指標簡單型別分析: int p; //這是一個普通的整型變數 int *p; //首先從P 處開始,先與*結合,所以說明P 是一個指標,然後再與int 結合,說明指標所指向的內容的型別為int 型.所以P 是一個返回整型資料的指標 int p[3]; //首先從P 處開始,先與[]結
機器學習與深度學習系列連載: 第二部分 深度學習(十六)迴圈神經網路 4(BiDirectional RNN, Highway network, Grid-LSTM)
深度學習(十六)迴圈神經網路 4(BiDirectional RNN, Highway network, Grid-LSTM) RNN處理時間序列資料的時候,不僅可以正序,也可以正序+逆序(雙向)。下面顯示的RNN模型,不僅僅是simple RNN,可以是LSTM,或者GRU 1 B
機器學習與深度學習系列連載: 第二部分 深度學習(十五)迴圈神經網路 3(Gated RNN - GRU)
迴圈神經網路 3(Gated RNN - GRU) LSTM 是1997年就提出來的模型,為了簡化LSTM的複雜度,在2014年 Cho et al. 提出了 Gated Recurrent Units (GRU)。接下來,我們在LSTM的基礎上,介紹一下GRU。 主要思路是: •
機器學習與深度學習系列連載: 第二部分 深度學習(十四)迴圈神經網路 2(Gated RNN - LSTM )
迴圈神經網路 2(Gated RNN - LSTM ) simple RNN 具有梯度消失或者梯度爆炸的特點,所以,在實際應用中,帶有門限的RNN模型變種(Gated RNN)起著至關重要的作用,下面我們來進行介紹: LSTM (Long Short-term Memory )
機器學習與深度學習系列連載: 第二部分 深度學習(十三)迴圈神經網路 1(Recurre Neural Network 基本概念 )
迴圈神經網路 1(Recurre Neural Network 基本概念 ) 迴圈神經網路的特點: • RNNs 在每個時間點連線引數值,引數只有一份 • 神經網路出了輸入以外,還會建立在以前的“記憶”的基礎上 • 記憶體的要求與輸入的規模有關 當然,他的深度不只有一層:
機器學習與深度學習系列連載: 第二部分 深度學習(十二)卷積神經網路 3 經典的模型(LeNet-5,AlexNet ,VGGNet,GoogLeNet,ResNet)
卷積神經網路 3 經典的模型 經典的卷積神經網路模型是我們學習CNN的利器,不光是學習原理、架構、而且經典模型的超引數、引數,都是我們做遷移學習最好的源材料之一。 1. LeNet-5 [LeCun et al., 1998] 我們還是從CNN之父,LeCun大神在98年提出的模
機器學習與深度學習系列連載: 第二部分 深度學習(十一)卷積神經網路 2 Why CNN for Image?
卷積神經網路 2 Why CNN 為什麼處理圖片要用CNN? 原因是: 一個神經元無法看到整張圖片 能夠聯絡到小的區域,並且引數更少 圖片壓縮畫素不改變圖片內容 1. CNN 的特點 卷積: 一些卷積核遠遠小於圖片大小; 同樣的pat
機器學習與深度學習系列連載: 第二部分 深度學習(十)卷積神經網路 1 Convolutional Neural Networks
卷積神經網路 Convolutional Neural Networks 卷積神經網路其實早在80年代,就被神經網路泰斗Lecun 提出[LeNet-5, LeCun 1980],但是由於當時的資料量、計算力等問題,沒有得到廣泛使用。 卷積神經網路的靈感來自50年代的諾貝爾生物學獎
機器學習與深度學習系列連載: 第二部分 深度學習(九)Keras- “hello world” of deep learning
Keras Kearas 是深度學習小白程式碼入門的最佳工具之一。 如果想提升、練習程式碼能力,還是建議演算法徒手python實現。 複雜的深度神經網路專案還是推薦TensorFlow或者Pytorch Keras是一個高層神經網路API,Keras由純Pyt
機器學習與深度學習系列連載: 第二部分 深度學習(十八) Seq2Seq 模型
Seq2Seq 模型 Seq2Seq 模型是自然語言處理中的一個重要模型,當然,這個模型也可以處理圖片。 特點是: Encoder-Decoder 大框架 適用於語言模型、圖片模型、甚至是預測 1. RNN相關的生成應用: (1) 作詩 (2) 圖片生成
CVPR 2018摘要:第二部分
CVPR 2018摘要:第二部分 本文為 AI 研習社編譯的技術部落格,原標題: NeuroNuggets: CVPR 2018 in Review, Part II 作者 |Sergey Nikolenko、Aleksey Art
Gradle 梳理 - 外掛 Gradle 教程:第二部分,JAVA PROJECTS【翻譯】
Gradle 教程:第二部分,JAVA PROJECTS【翻譯】 原文地址:http://rominirani.com/2014/07/28/gradle-tutorial-part-2-java-projects/ 在這部分的教學中,我們會學習如何使用Gradle
第二部分:基本套接字程式設計
IPv4網際套接字地址結構: struct in_addr{ in_addr_t s_addr; }; struct sockaddr_in{ uint8_t sin_len; sa_family_t sin_family; in_port_t sin_port; struct in_a
使用Boost::Python在C++應用程式中嵌入Python:第二部分
在第1部分中,我們瞭解瞭如何在C++應用程式中嵌入Python,包括從應用程式呼叫Python程式碼的幾種方法。雖然我之前承諾在第2部分中完整實現一個配置解析器,但我認為看一下錯誤解析會更有建設性。一旦我們有一個很好的方法來處理Python程式碼中的錯誤,我將在第3部分中