2013-12-10 36 views
0

我有一个组合框,用于从库中加载影片剪辑。问题是,影片剪辑有白色背景,因此当它们添加到舞台上时,它们会覆盖组合框。如何将组合框放在影片剪辑的前面?预先感谢您的帮助。在影片剪辑前保留组件 - Actionscript 3

import fl.controls.ComboBox; 
import fl.data.DataProvider; 
import flash.display.*; 
//import flash.net.navigateToURL; 
var helpItems:Array = new Array( 
    {label:"Overview", data:"p1"}, 
    {label:"Operation", data:"p2"}, 
    {label:"Component Menu", data:"p3"}, 
    {label:"Buttons", data:"p4"}, 
    {label:"Meter Function", data:"p5"}, 
    {label:"Pull Down Menus", data:"p6"}, 
    {label:"Browse and Navigation", data:"p7"} 
); 

var myCB:ComboBox = new ComboBox(); 
myCB.dropdownWidth = 150; 
myCB.width = 130; 
myCB.move(1.35, 1.35); 
myCB.prompt = "Select a Menu Item"; 
myCB.dataProvider = new DataProvider(helpItems); 
myCB.addEventListener(Event.CHANGE, changeHandler); 

addChild(myCB); 

function changeHandler(event:Event):void 
{ 
    var libraryItem:Class = getDefinitionByName(String(ComboBox(event.target).selectedItem.data)) as Class; 
    var helpMov:MovieClip = new libraryItem() as MovieClip; 
    helpMov.name = String(ComboBox(event.target).selectedItem.data); 
    trace(ComboBox(event.target).selectedItem.data); 
    helpMov.x = 0; 
    helpMov.y = 0; 
    addChild(helpMov); 
} 

回答

0

你必须使用方法 addChildAt(helpMov, this.numChildren - 2) 而不是addChild(helpMov)

addChildAt()方法中,您将获取当前动画片段中当前影片剪辑的当前数量,该影片剪辑的属性为numChildren,用于返回所有子影片剪辑的数量。在电影剪辑中,子剪辑按其索引放置(从0开始)。索引最高的影片剪辑位于其他位置。当您使用方法addChild()添加子项时,Flash将获得+1,然后是当前最大的索引。所以如果你想保持你的组合框始终在最上面,你必须总是给新的孩子一个更低的索引。最大的索引始终是numChildren - 1

+0

感谢您的快速响应! – brianh

相关问题