/asclip

ActionScript library for clipboard copy

Primary LanguageActionScriptMIT LicenseMIT

ActionScript library for clipboard copy

(Japanese follows English)

What's this ?

ASClip is a tiny ActionScript library which helps you to copy text onto clipboard. This works on most popular browsers: the latest version of Google Chrome, Firefox, Safari and IE with Flash Player 10 or later.

In loading this flash library, it dynamically generates a button for copying since mouse click should be occured on the flash itself for security reason. When user clicks the button, text will be copied. You can change look & feel of the button by setting label text or images.

How to use

Download a Flash file from here and save it to your desired location. You should set "Flashvars" parameter to control this library.

Basic parameters

clipString
Text to copy
getClipString
Name of a function called when button is clicked. Return value of this function will be copied.
onCopyCompleted
Name of a function executed after copy is done.
You have to set parameter for either "clipString" or "getClipString" otherwise nothing will be copied. If you set both, "getClipString" is used.

An object is passed as an argument in calling functions specified by "getClipString" or "onCopyCompleted" and you can see whether shift key, control key or alt key are pressed or not from properties of the object. Here's an example that "getPressedKey" is set to "getClipString" parameter.

var getPressedKey = function(e){
    if (e.shiftKey){
        return 'shift key pressed';
    }else if (e.ctrlKey){
        return 'control key pressed';
    }else if (e.altKey){
        return 'alt key pressed';
    }
    return 'no keys pressed';
}

UI related parameters

labelString
Label displayed on a button
labelSize
Size of the label
labelFont
Font for the label
imageNormal
Path of an background image of a button
imageOver
Path of an background image of a button appeared in mouseover
imagePress
Path of an background image of a button appeared in mousedown

HTML example (partial)

 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="150" height="36" id="asclip">
    <param value="asclip.swf" name="movie">
    <param name="FlashVars" value="clipString=test&amp;labelString=Copy%20the%20Link&amp;labelFont=Arial%20Black&amp;labelSize=14">
   <embed src="asclip.swf" width="150" height="36" name="asclip" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="clipString=test&amp;labelString=Copy%20the%20Link&amp;labelFont=Arial%20Black&amp;labelSize=14" bgcolor="#eeeeee">    
 </object>

Examples

See exmaples here. You can get these files by checking out to gh-pages branch after clone of this repository.

$ git clone https://github.com/nulab/asclip.git
$ git checkout gh-pages

Who uses this ?

  1. Cacoo
  2. Backlog (for Japanese user)

これは何?

ASClip は Flashを使ったシステムのクリップボードに文字列をセットできるライブラリです。Flash Player 10 以降が利用できる Google Chrome, Firefox, Safari そして IE の各々の最新バージョンで動作します。

セキュリティ上の制約からクリックイベントを Flash 上で発生させる必要があるため、このライブラリはローディング時にコピー処理用のボタンを動的に生成します。そのボタンをクリックした時に文字列がクリップボードにコピーされます。そのボタンに対してラベルや画像を設定することで見た目を柔軟に変更することが可能です。

使い方

ここ から Flash ファイルをダウンロードし、適当な場所に保存してください。HTML からその Flash をローディングする際に Flashvars という名前でパラメータを設定することで振る舞いを変更することができます。

コピー処理に関するパラメータ

clipString
クリックした時にここで設定した文字列がクリップボードにコピーされます。
getClipString
クリックした時に呼び出される関数名を指定します。クリップボードにはその関数を実行した結果がコピーされます。
onCopyCompleted
文字列がコピーされた後に呼び出されるコールバック関数の名前を指定します。
clipString もしくは getClipString のどちらかを指定しない限り、クリップボードにコピーされません。両方が指定された場合は getClipString の値が優先されます。

getClipString や onCopyCompleted で指定した関数の実行時に、引数で渡されるオブジェクトのプロパティから、マウスクリック時にシフトキー、コントロールキー、alt キーが押されているかどうかの情報を取得することが出来ます。 getPressedKey という関数が getClipString に指定されている場合の例を以下に示します。

var getPressedKey = function(e){
    if (e.shiftKey){
        return 'shift key pressed';
    }else if (e.ctrlKey){
        return 'control key pressed';
    }else if (e.altKey){
        return 'alt key pressed';
    }
    return 'no keys pressed';
}

コピーボタンの見た目に関するパラメータ

labelString
ボタンに表示される文字列を指定します
labelSize
文字列のサイズを指定します
labelFont
文字列のフォントを指定します
imageNormal
通常時の画像のパスを指定します
imageOver
マウスオーバーしたときの画像のパスを指定します
imagePress
マウスダウンしたときの画像のパスを指定します

パラメータ設定の例(抜粋)

 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="150" height="36" id="asclip">
    <param value="asclip.swf" name="movie">
    <param name="FlashVars" value="clipString=test&amp;labelString=Copy%20the%20Link&amp;labelFont=Arial%20Black&amp;labelSize=14">
   <embed src="asclip.swf" width="150" height="36" name="asclip" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="clipString=test&amp;labelString=Copy%20the%20Link&amp;labelFont=Arial%20Black&amp;labelSize=14" bgcolor="#eeeeee">    
 </object>

サンプル

こちらをご覧ください。これらのサンプルは、このリポジトリをクローンした後に gh-pages ブランチにチェックアウトすることでも確認することが出来ます。

$ git clone https://github.com/nulab/asclip.git
$ git checkout gh-pages

このライブラリが利用されているサイト

  1. Cacoo
  2. Backlog (海外向け)