Есть у ActionScript полезная, но редко используемая возможность - умение работать с буфером обмена нашего ПК (буфер обмена (англ. clipboard) - это область памяти, используемая для временного хранения скопированной или вырезанной информации). Правда, средствами ActionScript, по соображениям безопасности, нельзя получать содержимое буфера обмена. Можно только помещать своё содержимое в буфер обмена. И это, в некоторых случаях, бывает очень полезно.
Итак, как ActionScript работает с буфером обмена?
Чтобы вставить в буфер свой текст, и в ActionScript 2.0, и в ActionScript 3.0, используется аналогичная конструкция с методом setClipboard() класса System:
System.setClipboard("Мой текст");
Если метод setClipboard() и используют, то, как правило, в виде кнопки «Копировать в буфер» под текстовым полем. Сделать это очень просто.
Код ActionScript 2.0:
/*
mytxt - поле ввода (input text), расположенное на сцене флеш-ролика.
По умолчанию мы присвоим этому текстовому полю значение "Мой текст".
*/
mytxt.text = "Мой текст";
/*
btn - кнопка, расположенная на сцене флеш-ролика.
При клике по данной кнопке содержимое текстового поля mytxt копируется в буфер обмена.
*/
btn.onPress = function()
{
System.setClipboard(mytxt.text);
}
Этот же пример, но на ActionScript 3.0 будет выглядеть следующим образом.
Код ActionScript 3.0:
/*
mytxt - текстовое поле ввода
*/
mytxt.text = "Мой текст";
/*
btn - кнопка
*/
btn.addEventListener(MouseEvent.CLICK, btnClick);
function btnClick(event:MouseEvent):void
{
System.setClipboard(mytxt.text);
}
Результат следующий:
В данном примере вы можете кликнуть по кнопке «БУФЕР» и текст из текстового поля будет помещён в буфер обмена. Чтобы убедиться, что всё действительно работает, вы можете изменить тест и повторно нажать кнопку «БУФЕР».
Скопированный таким образом из флеш-ролика текст можно вставлять в другие приложения, текстовые редакторы и файлы, используя контекстное меню или сочетание клавиш Ctrl+V (под Windows). Вот так вот :-)