使用的是Flex4,據說Flex3使用的是label
一開始在網上搜尋資料,說要使用“皮膚”,作為一個初學者,不懂~~~
有一個簡單的小技巧
Flex中Combo源碼
* @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */public class ComboBox extends DropDownListBase implements IIMESupport{ //-------------------------------------------------------------------------- // // Skin Parts // //-------------------------------------------------------------------------- /** * Optional skin part that holds the input text or the selectedItem text. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ [SkinPart(required="false")] public var textInput:TextInput; // 這裡,使用的是一個輸入框 //-------------------------------------------------------------------------- // // Class mixins // //-------------------------------------------------------------------------- /** * @private * Placeholder for mixin by ComboBoxAccImpl. */ mx_internal static var createAccessibilityImplementation:Function; /** * Constructor. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion Flex 4 */ public function ComboBox() { super(); addEventListener(KeyboardEvent.KEY_DOWN, capture_keyDownHandler, true); allowCustomSelectedItem = true; } |
也就是說,可以利用輸入框的editable來限定是否能夠輸入
<!-- 下拉選框中有一個小技巧來禁止使用者手動輸入,也可以使用“皮膚”的方式,但是相對麻煩一些 --> <s:ComboBox id="selectUnit" x="117" y="154" width="174" change="comboBoxClick()" dataProvider="{_unitSelectList}" enabled="true" prompt="choose a number" selectedIndex="-1" creationComplete="selectUnit.textInput.editable = false"/> |
本文出自 “douglas_ship” 部落格,請務必保留此出處http://hlyton.blog.51cto.com/7239469/1297851