2013-12-10 80 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

相關問題