2011-05-16 46 views
0

我在編輯AS3中的組合框時遇到問題。任何人都可以告訴我爲什麼我的ComboBox消失了嗎?感謝所有提前幫助。編輯AS3中的組合框


import fl.controls.ComboBox; 
import fl.data.DataProvider; 


var typeTextFormat:TextFormat = new TextFormat(); 
typeTextFormat.color = 0xFFCC00; 
typeTextFormat.size = 11; 
typeTextFormat.font = "Verdana"; 


var typeButton:Sprite = new Sprite(); 
addChild(typeButton); 
typeButton.graphics.beginFill(0x000000); 
typeButton.graphics.drawRect(0, 0, 109, 32); 
typeButton.graphics.endFill(); 
typeButton.alpha = 0.75; 
typeButton.filters = [new GlowFilter(0x000000,0.5,0,12,1,1,false,false)]; 


var workList:Array = new Array(
    { label: "All Work", data: "all" }, 
     { label: "Work1", data: "w1" }, 
     { label: "Work2", data: "w2" }, 
     { label: "Work3", data: "w3" } 
    ); 


var menu1:ComboBox = new ComboBox(); 
addChild(menu1); 

menu1.setStyle("upSkin", typeButton); 
menu1.setStyle("overSkin", typeButton); 
menu1.setStyle("downSkin", typeButton); 
menu1.setSize(109, 32); 

menu1.dropdown.setRendererStyle("upSkin", typeButton); 
menu1.dropdown.setRendererStyle("overSkin", typeButton); 
menu1.dropdown.setRendererStyle("downSkin", typeButton); 
menu1.dropdown.setSize(109, 32); 

menu1.textField.setStyle("textFormat", typeTextFormat); 
menu1.move(120, 0); 
menu1.prompt = "All Work"; 
menu1.dataProvider = new DataProvider(workList); 

回答

1

好的,所以我找到了答案。它的一半!我現在有兩個Sprite,兩者形狀相同,但稱爲typeButton和dropButton。這些都分別添加到父菜單1和menu1.dropdown。我不再得到消失的問題。所以這工作正常...有點...但點擊左右一點後,我最終得到了參數錯誤:2025和我的有限的知識來對磚牆...

import fl.data.DataProvider; 
import fl.controls.ComboBox; 

var typeTextFormat:TextFormat = new TextFormat(); 
typeTextFormat.color = 0xFFCC00; 
typeTextFormat.size = 11; 
typeTextFormat.font = "Verdana"; 

var menu1:ComboBox = new ComboBox(); 
addChild(menu1); 

var typeButton:Sprite = new Sprite(); 
menu1.addChild(typeButton); 
typeButton.graphics.beginFill(0x000000); 
typeButton.graphics.drawRect(0, 0, 109, 34); 
typeButton.graphics.endFill(); 
typeButton.alpha = 0.75; 
typeButton.filters = [new DropShadowFilter(3,120,0x000000,0.5,0,0,1,1,false,false,false)]; 

var dropButton:Sprite = new Sprite(); 
menu1.dropdown.addChild(dropButton); 
dropButton.graphics.beginFill(0x000000); 
dropButton.graphics.drawRect(0, 0, 109, 34); 
dropButton.graphics.endFill(); 
dropButton.alpha = 0.75; 
dropButton.filters = [new DropShadowFilter(3,120,0x000000,0.5,0,0,1,1,false,false,false)]; 

menu1.setStyle("upSkin", typeButton); 
menu1.setStyle("overSkin", typeButton); 
menu1.setStyle("downSkin", typeButton); 
menu1.setSize(109, 34); 

menu1.dropdown.setRendererStyle("upSkin", dropButton); 
menu1.dropdown.setRendererStyle("overSkin", dropButton); 
menu1.dropdown.setRendererStyle("downSkin", dropButton); 
menu1.dropdown.setSize(109, 34); 

menu1.textField.setStyle("textFormat", typeTextFormat); 
menu1.dropdown.setRendererStyle("textFormat", typeTextFormat); 
menu1.move(120, 0); 
menu1.prompt = "All Work"; 
var dp:DataProvider = new DataProvider(); 
dp.addItem({ label: "All Work", data: "all" }); 
dp.addItem({ label: "Work1", data: "w1" }); 
dp.addItem({ label: "Work2", data: "w2" }); 
dp.addItem({ label: "Work3", data: "w3" }); 
menu1.dataProvider = dp; 
1
var dp:DataProvider = new DataProvider(); 
dp.addItem({ label: "All Work", data: "all" }); 
dp.addItem({ label: "Work1", data: "w1" }); 
dp.addItem({ label: "Work2", data: "w2" }); 
dp.addItem({ label: "Work3", data: "w3" }); 

menu1.dataProvider = dp; 

[編輯]在CS4

import fl.data.DataProvider; 
import fl.controls.ComboBox 

var typeTextFormat:TextFormat = new TextFormat(); 
typeTextFormat.color = 0xFFCC00; 
typeTextFormat.size = 11; 
typeTextFormat.font = "Verdana"; 


var typeButton:Sprite = new Sprite(); 
addChild(typeButton); 
typeButton.graphics.beginFill(0x000000); 
typeButton.graphics.drawRect(0, 0, 109, 32); 
typeButton.graphics.endFill(); 
typeButton.alpha = 0.75; 
typeButton.filters = [new GlowFilter(0x000000,0.5,0,12,1,1,false,false)]; 


var menu1:ComboBox = new ComboBox(); 
addChild(menu1); 

menu1.setStyle("upSkin", typeButton); 
menu1.setStyle("overSkin", typeButton); 
menu1.setStyle("downSkin", typeButton); 
menu1.setSize(109, 32); 

menu1.dropdown.setRendererStyle("upSkin", typeButton); 
menu1.dropdown.setRendererStyle("overSkin", typeButton); 
menu1.dropdown.setRendererStyle("downSkin", typeButton); 
menu1.dropdown.setSize(109, 32); 

menu1.textField.setStyle("textFormat", typeTextFormat); 
menu1.move(120, 0); 
menu1.prompt = "All Work"; 
var dp:DataProvider = new DataProvider(); 
dp.addItem({ label: "All Work", data: "all" }); 
dp.addItem({ label: "Work1", data: "w1" }); 
dp.addItem({ label: "Work2", data: "w2" }); 
dp.addItem({ label: "Work3", data: "w3" }); 
menu1.dataProvider = dp; 

[編輯2]
好,
工作代碼現在,我看你是有什麼問題。
看來你的問題是與以下行

menu1.dropdown.setRendererStyle("upSkin", typeButton); 
menu1.dropdown.setRendererStyle("overSkin", typeButton); 
menu1.dropdown.setRendererStyle("downSkin", typeButton); 

顯然,組合框的下拉列表是基於,因此使用項目渲染器。
所以你必須通過渲染器設置皮膚。

comboBox.dropdown.itemRenderer = "someItemRender.as"; 

我也跑過這個site.但是,我無法得到它的工作,但這個想法似乎是固體。

+0

謝謝The_asMan,但同樣的問題仍然存在。 – samwhocan 2011-05-16 18:48:40

+0

我複製了您在新鮮的Flash文檔中發佈的代碼,並進行了更改並且工作正常。你沒有發佈什麼? – 2011-05-17 18:00:06

+0

你在用什麼IDE? – 2011-05-17 18:00:43