使用 ActionScript 2.0 组件 |
|
|
|
| 自定义组件 > 关于设置组件外观 > 将新外观应用到子组件 | |||
某些情况下,您可能要修改组件中某个子组件的外观,但无法直接访问外观属性(例如,无法直接修改 List 组件中的滚动条外观)。使用以下代码,您可以访问滚动条外观。在运行此代码之后创建的所有滚动条也都会具有新外观。
如果一个组件由若干个子组件构成,则《ActionScript 2.0 组件语言参考》中该组件的条目中会标识出这些子组件。
将新外观应用到子组件:此操作会将该组件添加到"库"面板,但不会在文档中显示该组件。
此操作会将该元件添加到"库"面板,但不会在文档中显示该元件。
import mx.controls.List; import mx.controls.scrollClasses.ScrollBar; ScrollBar.prototype.downArrowDownName = "MyScrollDownArrowDown";
然后可以在第 1 帧上输入以下代码,以动态创建列表:
createClassObject(List, "myListBox", 0, {dataProvider: ["AL","AR","AZ", "CA","HI","ID", "KA","LA","MA"]});
或者,也可以将 List 组件从库拖到舞台。
import mx.controls.List
import mx.controls.scrollClasses.ScrollBar
var oldName = ScrollBar.prototype.downArrowDownName;
ScrollBar.prototype.downArrowDownName = "MyScrollDownArrowDown";
createClassObject(List, "myList1", 0, {dataProvider: ["AL","AR","AZ", "CA","HI","ID", "KA","LA","MA"]});
myList1.redraw(true);
ScrollBar.prototype.downArrowDownName = oldName;
|
注意 |
设置足够多的数据,以便显示滚动条,或者将 |
您还可以通过以下方法为文档中的所有组件设置子组件外观:在外观元件的 #initclip 部分对子组件的 prototype 对象设置外观属性。
使用 #initclip 将经过编辑的外观应用到文档中的所有组件:此操作将该元件添加到库中,但不在舞台上显示它。
"在第一帧导出"应自动选中,如果没有,请选中它。
#initclip 10
import mx.controls.scrollClasses.ScrollBar;
ScrollBar.prototype.downArrowDownName = "MyScrollDownArrowDown";
#endinitclip
createClassObject(mx.controls.List, "myListBox1", 0, {dataProvider: ["AL","AR","AZ", "CA","HI","ID", "KA","LA","MA"]});
|
注意 |
添加足够多的数据,以便垂直滚动条可以显示出来,或者将 |
下面的示例解释如何为舞台上已有的对象设置外观。本示例仅设置 List 滚动条的外观,而不设置任何 TextArea 或 ScrollPane 滚动条的外观。
使用 #initclip 将经过编辑的外观应用到文档中的特定组件:"在第一帧导出"应自动选中,如果没有,请选中它。
MyVScrollBar 元件的第 1 帧上输入以下代码:
#initclip 10
import MyVScrollBar
Object.registerClass("VScrollBar", MyVScrollBar);
#endinitclip
import mx.controls.VScrollBar
import mx.controls.List
class MyVScrollBar extends VScrollBar{
function init():Void{
if (_parent instanceof List){
downArrowDownName = "MyScrollDownArrowDown";
}
super.init();
}
}
|
|
|
|