Flash AS3 - как установить мувиклип Imported text field как невыбираемый - PullRequest
0 голосов
/ 25 апреля 2009

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

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

К сожалению, у всего текста в графике, который я импортирую таким образом, есть курсор мыши "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

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

Ответы [ 2 ]

3 голосов
/ 26 апреля 2009

Во Flash ide выберите textField, перейдите на панель свойств и снимите флажок с кнопкой «Ab». Это останавливает ваш текст для выбора.

1 голос
/ 25 апреля 2009

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


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

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

...