TextField上で、「右クリック→貼り付け」や、「ショートカット(ctrl+v)を使った貼り付け」のイベントを取得する必要があって
TextField.pasteがあるから実装進めていったのだけど
ぜんぜんイベント取れなくて….調査メモ
よく見てみたらメモとして、
TextField objects は、 clear、copy、cute、paste または selectAll イベントを送出しません。
…
TextField オブジェクトの場合、これらのコマンド(またはキーボードの同等キー)を選択しても、clear イベント、copy イベント、cut イベント、paste イベント、または selectAll イベントが生成されることはありません。
…
InteractiveObject クラスを拡張するその他のクラス(Flash Text Engine(FTE)を使用して構築されたコンポーネントを含む)では、これらのイベントを送出できます。
と書かれている。
むむ。Flash Text Engineを使えばできるということのようだけど、
イベントは生成されないとのこと。TextFieldを基としている、TextInputでもだめっぽい。
ということで、TextFieldの上に透明のSpriteを敷いて
そいつで、Event.Pasteを受け取って、結果をTextFieldに流し込む
方法でやってみることに。
Sprite上でPasteイベントを取得するには、
SpriteにContextMenuを当て、
ContextMenu.clipboardItems.pasteをtrueにすることでEvent.Pasteを受け取れるようになるよう
kaede さんのブログ
xingxx:[AS3]Event.PASTE / Clipboard.generalClipboard.getData 覚え書き
が参考になりました!
ソース一式 ダウンロード
・[1]TextFieldがEvent.Pasteを受け取らない例
・[2]上に透明Spriteを敷きEvent.Pasteを受け取り解決
6月 25, 2009 at 1:58 PM




私をフォローしてください. @quqjp





