Как вставить выделенный текст в AS3 - PullRequest
2 голосов
/ 16 января 2012

У меня есть вопрос, как вставить выделенный или скопированный текст на сцену или в текстовую область в формате Flash as3? Я скопировал текст, но понятия не имею, как вставить текст в текстовое поле. Помогите!

Заранее спасибо!

Ответы [ 4 ]

5 голосов
/ 16 января 2012

Я получил ответ:

package
{
    import flash.display.Sprite;
    import flash.desktop.Clipboard;
    import flash.desktop.ClipboardFormats;
    import flash.desktop.ClipboardTransferMode;
    import flash.events.*;
    import flash.system.System;

    public class ClipboardExample extends Sprite
    {
       public function ClipboardExample()  
       {     
           Clipboard.generalClipboard.clear(); 
           copyButton.addEventListener(MouseEvent.MOUSE_UP, copyText);
       }

       private function copyText(e:MouseEvent):void 
       {
           Clipboard.generalClipboard.clear();
           System.setClipboard(myField.text);
           messageField.text = "Copied!";
           stage.addEventListener(Event.PASTE,paste); //Ctrl+V on stage
       }       

       private function paste(e:Event):void
       {
          if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.TEXT_FORMAT))
          {                 
             messageField.text = String(Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT));
          } 
      }
   }    
 }
0 голосов
/ 05 июня 2013

Начиная с Flash Player 10, приложения Flash, встроенные в веб-сайты, могут получать доступ к методу Clipboard.generalClipboard.getData () только тогда, когда они обрабатывают событие PASTE, отправляемое непосредственно пользователем.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/desktop/Clipboard.html

ПРИМЕЧАНИЕ. Чтобы избежать безопасности исключений, цель события должна быть объектом сцены приложения.Я не нашел эту информацию в какой-либо документации, это из моего собственного опыта.Надеюсь, что это работает

0 голосов
/ 16 января 2012

Я думаю, это то, что вы ищете:

package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.system.System;
    import flash.text.TextField;
    import flash.text.TextFieldType;

    public class SelectTextTest extends Sprite {
        public function SelectTextTest() {
            var tf:TextField = new TextField();
            tf.x = 0;
            tf.y = 0;
            tf.width = 200;
            tf.height = 200;
            addChild(tf);
            tf.wordWrap = true;
            tf.type = TextFieldType.INPUT;
            tf.text = "This is the text. Try to select";
            tf.addEventListener(MouseEvent.CLICK, printCursorPosition);
        }

        private function printCursorPosition(event:MouseEvent):void {
            var tf:TextField = TextField(event.target);
            trace("caretIndex:", tf.caretIndex);
            trace("selectionBeginIndex:", tf.selectionBeginIndex);
            trace("selectionEndIndex:", tf.selectionEndIndex);
            trace(tf.text.substring(tf.selectionBeginIndex, tf.selectionEndIndex));
            System.setClipboard(tf.text.substring(tf.selectionBeginIndex, tf.selectionEndIndex));
        }
    }
}
0 голосов
/ 16 января 2012

Вы имели в виду myTextField.text = copiedTextVariable;?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...