Я пытаюсь создать поле со списком (из списка компонентов во Flash CS4).Я получил его для работы с
import fl.accessibility.ComboBoxAccImpl;
import fl.data.DataProvider;
import fl.events.ComponentEvent;
ComboBoxAccImpl.enableAccessibility();
var weapons:Array = [
{label:"Sword", data:"SwordSelected"},
{label:"Bow", data:"BowSelected"},
{label:"Knife", data:"KnifeSelected"}];
testtxt.text = String("sword");
weaponselector.dataProvider = new DataProvider(weapons);
weaponselector.addEventListener(ComponentEvent.ENTER, weaponsadd);
weaponselector.addEventListener(Event.CHANGE, weaponboxselecter);
function weaponboxselecter(event:Event):void
{
if (ComboBox(event.target).selectedItem.data != "SwordSelected")
{
selectSword();
testtxt.text = String(ComboBox(event.target).selectedItem.label);
}
else if (ComboBox(event.target).selectedItem.data != "BowSelected")
{
selectBow();
testtxt.text = String(ComboBox(event.target).selectedItem.label);
}
else if (ComboBox(event.target).selectedItem.data != "KnifeSelected")
{
selectKnife();
testtxt.text = String(ComboBox(event.target).selectedItem.label);
}
}
, но затем я попытался создать историю, если что-то нажимается (selectKnife / selectBow / selectSword в функции gunboxselecter)
var weaponsHistory:Array = ["Sword"];
trace(weaponsHistory);
function selectBow()
{
var Bowadds:Bowadd = new Bowadd();
Bowadds.x = 300
Bowadds.y = 300
stage.addChild(Bowadds);
trace(weaponsHistory);
weaponsHistory.splice(1, "Bow");
}
function selectKnife()
{
var Knifeadds:Bowadd = new Bowadd();
Knifeadds.x = 300
Knifeadds.y = 300
stage.addChild(Knifeadds);
weaponsHistory.splice(1, "Knife");
trace(weaponsHistory);
}
function selectSword()
{
var Swordadds:Bowadd = new Bowadd();
Swordadds.x = 300
Swordadds.y = 300
stage.addChild(Swordadds);
weaponsHistory.splice(1, "Sword");
trace(weaponsHistory);
}
, ноон всегда отслеживает меч
любые предложения
спасибо
[Новый код]
var weaponsHistory:Array = ["Sword"];
function weaponboxselecter(event:Event):void{
if(ComboBox(event.target).selectedItem.data != "SwordSelected"){
selectSword();
testtxt.text = String(ComboBox(event.target).selectedItem.label);
weaponsHistory.splice(0,0,"Sword");
}else if(ComboBox(event.target).selectedItem.data != "BowSelected"){
selectBow();
testtxt.text = String(ComboBox(event.target).selectedItem.label);
weaponsHistory.splice(0,0,"Bow");
}else if(ComboBox(event.target).selectedItem.data != "KnifeSelected"){
selectKnife();
testtxt.text = String(ComboBox(event.target).selectedItem.label);
weaponsHistory.splice(0,0,"Knife");
}
[new code]
trace(weaponsHistory);// just less code
[end new code]
}
это все еще не работает.Я объясню это немного лучше:
Меч выбран первым.Затем, когда я нажимаю на Лук / Нож, Меч заменяется на Лук / Нож.Таким образом, я могу добавлять и удалять объекты в зависимости от того, что было нажато в последний раз (если у вас есть другой способ сделать это, я нахожусь в поиске других вариантов).
То, что происходит, - это то, что Меч отслеживается, чем если бы янажмите на нож, меч прослеживается, и если я щелкаю по луку, меч прослеживается, но если щелкнуть по мечу или ножу снова, прослеживается лук.
спасибо
[новый код]
function selectBow(){
var Bowadds:Bowadd = new Bowadd();
Bowadds.x = 300
Bowadds.y = 300
stage.addChild(Bowadds);
trace(weaponsHistory);
}
function selectKnife(){
var Knifeadds:Bowadd = new Bowadd();
Knifeadds.x = 300
Knifeadds.y = 300
stage.addChild(Knifeadds);
trace(weaponsHistory);
}
function selectSword(){
var Swordadds:Bowadd = new Bowadd();
Swordadds.x = 300
Swordadds.y = 300
stage.addChild(Swordadds);
trace(weaponsHistory);
}
function weaponsadd(event:ComponentEvent):void {
var newRow:int = 0;
if (event.target.text == "Add") {
newRow = event.target.length + 1;
event.target.addItemAt({label:"screen" + newRow, data:"screenData" + newRow},
event.target.length);
}
}
function weaponboxselecter(event:Event):void{
if(ComboBox(event.target).selectedItem.data != "SwordSelected"){
selectSword();
testtxt.text = String(ComboBox(event.target).selectedItem.label);
weaponsHistory.push("Sword");
}else if(ComboBox(event.target).selectedItem.data != "BowSelected"){
selectBow();
testtxt.text = String(ComboBox(event.target).selectedItem.label);
weaponsHistory.push("Bow");
}else if(ComboBox(event.target).selectedItem.data != "KnifeSelected"){
selectKnife();
testtxt.text = String(ComboBox(event.target).selectedItem.label);
weaponsHistory.push("Knife");
}
}
Все работает, кроме ножа.Это только следы меча ...