#actionscript-3 #flash-cs4
#actionscript-3 #flash-cs4
Вопрос:
Я создаю приложение Actionscript 3 на Flash CS4. Я создал видеоролик с именем dropDown, экспортируя его для Actionscript в виде выпадающего списка. Внутри этого видеоролика я удалил компонент NumericStepper. У меня также есть базовый видеоролик с полем с текстом, в котором говорится Добавить выпадающий экспорт для Actionscript как DropDownBtn. Действительно простой.
выпадающая кнопка Добавить создает экземпляр видеоролика с помощью прослушивателя событий и функции обратного вызова.
Как только экземпляр создан, я, похоже, не могу получить доступ к значению числового шагового параметра. МОЙ код выглядит следующим образом:
//create the load dropdown button
var newButton = new DropDownBtn();
//position the button
newButton.x = 20;
newButton.y = 20;
//and add it to the stage
addChild(newButton);
//add the event listener to the button
newButton.addEventListener(MouseEvent.MOUSE_DOWN, addDropdown);
function addDropdown(e:MouseEvent):void{
//create and instance of the drop down
var newDropDown = new dropDown();
//move it over beside the add dropdown button
newDropDown.x = newButton.width 40;
newDropDown.y = 20;
//add the instance of the newDropDown to the display stack
addChild(newDropDown);
//add the event listener to the dropdown
newDropDown.addEventListener(Event.CHANGE, useDropDownValue);
}
function useDropDownValue(e:Event):void{
//this is where I need to utilize the value of the Numeric Stepper
//I thought it would be accessed as follows but it doesn't seem to work
//I added a trace to make sure this function is being executed and that works
//when i comment out my attempt at using the Numeric Stepper Value
trace("useDropDownValue Function Accessed");
var dropDownValue = newDropdown.value;
}
Ответ №1:
у вас есть
var newDropDown = new dropDown();
область действия находится внутри функции addDropdown
Вам нужно переместить его за пределы этой функции, чтобы придать ему глобальную область видимости
//create the load dropdown button
var newButton = new DropDownBtn();
//position the button
newButton.x = 20;
newButton.y = 20;
//and add it to the stage
addChild(newButton);
//add the event listener to the button
newButton.addEventListener(MouseEvent.MOUSE_DOWN, addDropdown);
// GLOBAL SCOPE HERE
//create and instance of the drop down
var newDropDown = new dropDown();
function addDropdown(e:MouseEvent):void{
//move it over beside the add dropdown button
newDropDown.x = newButton.width 40;
newDropDown.y = 20;
//add the instance of the newDropDown to the display stack
addChild(newDropDown);
//add the event listener to the dropdown
newDropDown.addEventListener(Event.CHANGE, useDropDownValue);
}
function useDropDownValue(e:Event):void{
//this is where I need to utilize the value of the Numeric Stepper
//I thought it would be accessed as follows but it doesn't seem to work
//I added a trace to make sure this function is being executed and that works
//when i comment out my attempt at using the Numeric Stepper Value
trace("useDropDownValue Function Accessed");
var dropDownValue = newDropdown.value;
}
Комментарии:
1. Он подумал, что это может быть проблема с областью действия. Экземпляр объекта теперь существует снаружи благодаря. Однако у меня есть еще одна проблема. Кажется, я не могу получить значение NumericStepper, которое находится внутри выпадающего видеоролика и создается как newDropDown. Я попробовал newDropDown.value и, похоже, это не сработало. есть идеи?
Ответ №2:
Хорошо, я понял.
Мне пришлось ссылаться на имя экземпляра NumericStepper внутри видеоклипа. Вот так.
var numericStepperValue = movieClip.NumericStepperInstance.value;
спасибо за вашу помощь.