Установить TextArea только для чтения во Flash? - PullRequest
0 голосов
/ 26 мая 2011

Я новичок во Flash, и у меня есть TextArea. Я хотел бы сделать доступной только для чтения, чтобы пользователь не мог копировать и вставлять текст.

Возможно ли это?

Примеры илиссылки приветствуются Я не против учиться;)

Спасибо

Ответы [ 4 ]

3 голосов
/ 26 мая 2011

Существует свойство editable для TextArea. Вы можете использовать это. Тем не менее, я уверен, что было бы невозможно сделать его полностью защищенным от копирования и вставки. Вы можете сделать это трудно, хотя. Возможно, создание изображения из текста и его отображение затруднит копирование текста, но не исключение.

2 голосов
/ 26 мая 2011

Вы можете использовать textArea.textField.selectable, чтобы избежать копирования / вставки:

В Flex TextArea имеет свой собственный selectable:

1 голос
/ 11 мая 2013

Все, что вам нужно сделать, это щелкнуть правой кнопкой мыши на текстовой области, которую вы разместили на своей веб-странице.Затем во всплывающем окне нажмите «изменить тег» ИЛИ нажмите «Shift + F5».Окно свойств для textarea будет отображено.Нажмите на кнопку «Общие», если она еще не выбрана.Затем просто нажмите «флажок только для чтения» в окне свойств.Вы также можете запретить выбор, копирование и вставку содержимого поля textarea, установив флажок «отключено».

Надеюсь, это решит вашу проблему.

0 голосов
/ 26 мая 2011

Вот класс, который я быстро создал, который вам может пригодиться:

package
{
    import flash.text.TextField;
    import flash.display.Bitmap;
    import flash.display.BitmapData;

    public class BitmapText extends Bitmap
    {
        // vars
        private var _textf:TextField;

        /**
         * Draws text onto the bitmap
         * @param tf The TextField to draw
         */
        public function drawText(tf:TextField):void
        {
            _textf = tf;

            bitmapData = new BitmapData(tf.width,tf.height,true);
            bitmapData.draw(tf);
        }

        /**
         * Update text
         * @param t The new text
         */
        public function set text(t:String):void
        {
            if(_textf)
            {
                _textf.text = t;
                drawText(_textf);
            }
        }
    }
}

И использовать этот класс:

var t:TextField = new TextField();
t.text = "some copy";

var bt:BitmapText = new BitmapText();
bt.drawText(t);

addChild(bt);

bt.text = "some new text lol";

Как видите, вы можете легко обновить текст с помощью:

BitmapText.text = "new value";
...