2011-05-16 45 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