Flash AS3 - как установить импортированное текстовое поле movieclip как невыбираемое

StackOverflow https://stackoverflow.com/questions/789573

Вопрос

Я создал графику во Flash CS4, которая содержит текст.Я вставил соответствующие символы, а затем сохранил их в виде видеоролика в своей библиотеке.Затем я экспортировал его в SWC-файл.

В моем коде AS3 (используя Flex SDK / notepad) я затем импортирую movieclip и назначаю ему некоторые события мыши, чтобы я мог использовать его в качестве кнопки.

К сожалению, весь текст в графике, который я импортирую таким образом, имеет курсор мыши "I", и текст можно выбрать.Это отвлекает внимание от моего флэш-приложения и нехорошо!

Я знаю, что когда у меня есть текстовое поле, я могу:

var myButton:TextField = new TextField();
myButton.MouseEnabled = false;

Но это не имеет никакого эффекта, когда я импортирую видеоролик:

var myButton:MovieClip = new MyImportedButtonGraphic();
myButton.MouseEnabled = false;  // No effect

// Plus some other things I learned:
myButton.selectable = false;    // also no effect
myButton.MouseChildren = false; // No effect

Что я делаю не так?

Это было полезно?

Решение

В среде разработки Flash выберите текстовое поле, перейдите на панель свойств и снимите флажок с кнопки, в которой есть символы 'Ab'.Это останавливает выбор вашего текста.

Другие советы

Если вы настраиваете, чтобы видеоклип, содержащий текст, не был включен мышью, то вам нужно установить для него оба свойства: mouseEnabled и mouseChildren.mouseEnabled означает, что этот конкретный видеоклип не может получать события мыши, но это не влияет на дочерние элементы видеоклипа (например, на текстовое поле внутри него).mouseChildren означает, что дочерние элементы не регистрируют события мыши, они просто отправляются от родителя.Чтобы полностью отключить его, ОБА значения должны быть false.


var myButton:MovieClip = new MyImportedButtonGraphic();
myButton.mouseEnabled = false;
myButton.mouseChildren = false;

Поскольку текстовое поле является дочерним элементом видеоклипа, на него будет влиять свойство mouseChildren, и вы могли бы просто установить для него значение false, и оно все равно работало бы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top