如何使用ComboBox组件创建图示 |
| 作者:佚名 来源:不详 更新:2007-1-13 20:42:37 错误报告 我要投稿 |
看了番茄的 [原创]如何使用List組件創建圖示 dispbbs.asp?BoardID=47&ID=171499 我在想ComboBox是不是也可以如法泡制,于是我照着作 准备图片 拷贝AS
myList.setSize(240, 172); //設定List的寬度和高度 myList.rowHeight = 42; //設定每筆記錄的高度(配合圖示的高度) myList.addItem({label: "Super-Tomato Programmer", iconField : "Super-Tomato1"}); //加入label和所指定的圖示(步驟2所建立的名字), 記得沒有label的話就只會出現圖示名字而已喔, 我在這裡嚐試了很多此才知道要這樣做...天資比較差 ^^" myList.iconFunction = function(item) { //使用iconFunction指定回傳每筆記錄的圖示連接 return item.iconField; //回傳...:) } 然后测试,什么东西都没有(没有图片只有文字)。气死我了,我知道ComboBox可定可以的因为他的下拉列表就是一个List。没有效果肯定是那里搞错了。 一、 我马上翻出Flash帮助看 可是看了几遍都没找到要的东西。连List组件的 iconFunciton都找不到他的资料。看来靠Flash的帮助是没有用的了。 二、我一生气想大不了自己写一个ComboBox组件。于是我找出了MM的ComboBox的类文件来研究。 三、700多行的代码 还导了几个类,有点晕了。想点法子。 四、查找iconFunction找不到 再找List 找到了
__dropdown = PopUpManager.createPopUp(this, List, false, o, true);(语句1) 这代码就是生成一个List用来显示 下拉列表的。既然是List 那肯定可以使用番茄的方法了。 那个__dropdown就保存着这个List 。我只要这样就可以了
myComboBox.__dropdown.iconFunction = function(item) { (语句2) return item.iconField; } 好 测试一下!。不行!
trace一下 trace(myComboBox.__dropdown); 测试。 居然是undfined!!! 晕~~~ 只好重新看那700多行的代码了。 仔细一看 (语句1) 被函数getDropdown()调用 然后他返回的值就是__dropdown!!!好了找到了!我把(语句2)修改成
myComboBox.getDropdown().iconFunction = function(item) { (语句3) return item.iconField; } 测试。成功了!这是效果:
点击浏览该文件 其实真实情况没有上面写的那么顺利。我费了不少劲 还走了些弯路。 最后我的AS是这样的
myComboBox.dropdown.iconFunction = function(item) { (语句3) return item.iconField; } dropdown是这样的ComboBox的一个属性 使用他比直接调用getDropdown()安全一些。上面的东西只不过是我平时学AS的小小心得 和方法,希望对大家有用。 最后,要像实现那些功能还有一个方法。就是使用“cellRenderer”Flash帮助看的仔细的朋友应该看到过。他的功能在帮助中有说,我个人认为这东西功能强大。他不只是能添加一个图标,他还可以使你在List组件(和通过List组件扩展的其他组件)的Item里 添加任何你像添加的东西!!!比如加个按钮、MC、进度条等等。还可以是List支持HTML。大家可以回去试试看。 如果有人支持的话 下次我再写个使用“cellRenderer”在List添加图标的 贴子来。看累了吧。 这是上面那个例子的源文件
点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |