У меня есть различные цветовые кнопки, которые меняют цвет мувиклипа при щелчке, но я хочу написать код, который говорит как if btnRed has been clicked, apply red ColorTransform
. Это связано с тем, что у меня есть несколько кнопок, и я не хочу писать методы, которые почти идентичны только с разными значениями множителя RGB. Есть ли способ сделать это так, чтобы слушатель событий для каждой кнопки вызывает тот же метод, но в этом методе в основном говорит if redBtn is clicked, change color to red
, if blueBtn is clicked, change color to blue
и т.д.Как определить, была ли нажата конкретная кнопка?
ответ
Держите все кнопки в массиве, в CLICK
Event determin который один был нажат с buttonArray.indexOf(event.target);
, затем получите соответствующее значение цвета от map
, как Dictionary
или Object
.
Вы также можете сохранить свои кнопки в самом словаре и прокрутить его, чтобы найти свой цвет.
Как указано M4tchB0X3r, используйте Dictionary
, чтобы сохранить поиск объекта кнопки для преобразования цвета. Вот рабочий код, предполагая, что ваши имена кнопок: btnRed
, btnGreen
и btnBlue
, и что у вас есть какой-то именованный объект на сцене, называемый box1
.
Они ключевые моменты здесь, что Dictionary
может использовать ссылки на объекты в качестве ключей (а не только целые числа и строки как с простым Object
типа), и что target
свойства Event
объекта содержит ссылку на вещи, которые поднимали событие - в этом случае кнопка. На самом деле, вероятно, безопаснее использовать currentTarget
, потому что иногда target
является родительским или дочерним экранным объектом из-за того, что события могут пузыриться вверх и вниз по дереву.
import flash.utils.Dictionary;
import flash.geom.ColorTransform;
var buttonToTransform:Dictionary = new Dictionary();
buttonToTransform[btnRed] = new ColorTransform(1.0, 0.2, 0.2);
buttonToTransform[btnGreen] = new ColorTransform(0.2, 1.0, 0.2);
buttonToTransform[btnBlue] = new ColorTransform(0.2, 0.2, 1.0);
// Note: for..in iterates over the keys of an object
// (vs. for each, which iterates over the values)
for(var btn:* in buttonToTransform) {
btn.addEventListener(MouseEvent.CLICK, onTransform);
}
function onTransform(e:MouseEvent):void {
this.box1.transform.colorTransform = buttonToTransform[e.currentTarget];
}
избили меня;), просто написал в основном то же самое. – M4tchB0X3r
- 1. Как определить, была ли нажата конкретная клавиша?
- 2. Как определить, была ли нажата кнопка «Вверх»
- 3. Как определить, была ли нажата или нажата кнопка?
- 4. Определите, была ли нажата конкретная кнопка в Android WebView
- 5. Как определить, была ли нажата кнопка «Назад» или кнопка «Вперед»?
- 6. Калитка: проверьте, была ли нажата какая-либо конкретная кнопка?
- 7. определить, как кнопка была нажата в javascript
- 8. Как определить, какая кнопка была нажата.
- 9. Как определить, какая кнопка была нажата
- 10. Как определить, какая кнопка была нажата
- 11. Как определить, какая кнопка удаления была нажата?
- 12. Как определить, какая кнопка была нажата?
- 13. Проверка, была ли нажата кнопка
- 14. Проверьте, была ли нажата кнопка.
- 15. Запросить, была ли нажата кнопка
- 16. Oracle Forms - определить, какая кнопка была нажата
- 17. проверьте, была ли нажата кнопка.
- 18. Как определить, какая кнопка была нажата в Рафаэле?
- 19. Как определить, была ли нажата кнопка закрытия в wx.FileDialog?
- 20. Как определить, была ли нажата кнопка мыши в QWebView?
- 21. Определить, какая кнопка была нажата внутри div
- 22. Как проверить, была ли нажата кнопка
- 23. Определение того, была ли нажата кнопка JButton
- 24. , определяя, была ли нажата кнопка пользователя
- 25. Как проверить, была ли нажата кнопка facebook?
- 26. Как определить, была ли выбрана кнопка nav?
- 27. Попытка определить, была ли нажата кнопка мыши внутри области окна
- 28. Unity, Как определить, нажата ли кнопка OnGUI
- 29. Как показать DIV, когда конкретная кнопка нажата,
- 30. Определите, какая кнопка была нажата
Есть ли какие-либо рабочие примеры или фрагменты кода для этого, что может оказаться полезным? Все мои кнопки называются «redBtn», «blueBtn», «greenBtn» и т. Д. – user3238047