Создание текстового поля AS3 с помощью buttonMode и использования HandCursor - PullRequest
0 голосов
/ 27 января 2012

Извините за плохой заголовок. Не мог придумать лучшего ...

Я занимаюсь программным обеспечением, которое настраивается с помощью загружаемых данных из XML. Пользователь может определить максимальную «ширину» TextField, и TextFields являются многострочными, и перенос происходит, когда текст не соответствует ширине. Текст для TextFields также загружается из XML-файла, и его длина произвольна.

Поскольку TextField не имеет ни свойств buttonMode, ни useHandCursor, я сделал TextFields дочерними элементами спрайтов. Так что для каждого TextField есть спрайт как родитель.

Тогда настоящая проблема:

(«TextFields» на самом деле являются спрайтами с TextField в качестве дочернего элемента)

«Текстовые поля» не должны быть кликабельными вне текста в них. На данный момент кажется, что спрайты распространяются на всю ширину TextFields, и поэтому пользователь может фактически щелкнуть «TextFields» в области, где нет текста.

Я «попытался» изменить размер спрайта, проверил ссылку на AS3, и теперь я знаю, почему после этого все исчезло.

Поэтому мне нужно решение, в котором для «TextFields» включены buttomMode и useHandCursor, и контейнер должен иметь возможность обрезать область, где нет текста.

Ответы [ 2 ]

1 голос
/ 27 января 2012

Объект TextField имеет некоторые характеристики размера по умолчанию.Вам необходимо применить один из них:

для этого свойства:

, чтобы форма соответствовала вашему тексту.Затем, добавив его в пустой Sprite, указанный Sprite также будет иметь точный размер вашего текста.

Изменение размера Sprite является неправильным подходом, поскольку в данном случае вы фактически масштабируете его.содержание интерьера.Спрайты автоматически изменяют размеры, чтобы соответствовать объектам, которые они содержат.До тех пор, пока вы убедитесь, что TextField имеет правильный размер, родительский Sprite также будет иметь правильный размер.

0 голосов
/ 18 августа 2017

Я уверен, что вам это больше не нужно, но кто-то может это сделать, так что вот оно.

Поскольку у вас есть спрайт в качестве родительского, вы можете заставить его отключить мышиных детей.

yourSprite.tf.text = 'something';
yourSprite.buttonMode = true;
yourSprite.mouseChildren = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...