Редактирование ComboBox в AS3 - PullRequest
0 голосов
/ 16 мая 2011

У меня проблемы с редактированием ComboBox в AS3. Может кто-нибудь сказать, почему исчезает мой ComboBox? Заранее всем спасибо за помощь.


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);

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Хорошо, я нашел ответ.Ну половина этого!Теперь у меня есть два спрайта, оба одинаковые по форме, но называемые typeButton и dropButton.Они оба добавляются в родительское menu1 и 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 голос
/ 16 мая 2011
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";

Я также наткнулся на этот сайт. , но я не смог заставить его работать, хотя идея кажется твердой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...