Action Script 3 用スペルチェックライブラリ (コードネーム Squiggly) の最初のプレビューリリース版が Adobe Labs に公開されました。(Squiggly@Labs)
Squiggly を使った簡単なデモが Adobe Labs に公開されていますのでまずはそちらをご覧ください。(Squiggly demo) フィールドがフォーカスされるとスペルチェックが行われて間違いのある単語には赤い下線が表示されます。また、下線の引かれた単語で右クリックすると修正候補が表示され選択することができます。実行には Flash Player 10 が必要です。
Squiggly のダウンロードページはこちらです。(Squiggly downloads) ASDoc は別途提供されています。(squiggly_p1_asdoc_092109.zip : 72KB)
Squiggly の使い方
ダウンロードしたパッケージに含まれる AdobeSpelling.swc をパスに追加すると Squiggly が使えるようになります。下は、Squiggly を使ってスペルチェックを行うコードの例です。
import com.adobe.linguistics.spelling.*; // スペルチェック用オブジェクト生成 private var _sp:SpellChecker= new SpellChecker("en"); // 辞書オブジェクトの生成 private var _dict:SpellingDictionary = new SpellingDictionary(); // イベントハンドラの追加と辞書データファイルの読み込み _dict.addEventListener(Event.COMPLETE, handleLoadComplete); var myUrl:URLRequest = new URLRequest("usa.zwl"); _dict.load(myUrl); // 辞書をスペルチェック用オブジェクトに設定 private function handleLoadComplete(evt:Event):void { _sp.addDictionary(_dict); } private function checkWord(word:String):Boolean { // スペルチェックを実行 if(_sp.checkWord(word)) return true; // エラー無し else return false; // エラー有り }
このサンプルでは Squiggly のクラスが 2 つ使われています。スペルチェックを行うクラス SpellChecker と、スペルチェック用辞書データを保持するクラスの SpellingDictionary です。
SpellChecker は間違ったスペルの単語に対して修正候補のリストを作成するメソッド getSuggestions() も持っています。getSuggestions() は最大 10 件までの候補を配列として返します。候補が見つからなければ空の配列が返されることになっています。
下のコードは、とりあえず getSuggestions() の使用例ということで。
private function checkWord(word:String):Array { if(_sp.checkWord(word)) { return null; } else { // 修正候補の配列を取得 return _sp.getSuggestions(word); } }
Flex 用の UI クラス
さて、Squiggly には SpellUI という Flex 用の UI クラス (Flex SDK 3.x が必要) も提供されています。
Flex の UI コンポーネントを enableSpelling() メソッドに渡すことでスペルチェック機能を有効にすることが出来ます。下はその例です。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" initialize="init()" > <mx:Script> <![CDATA[ import com.adobe.linguistics.spelling.SpellUI; public function init():void { // UI コンポーネントと辞書ファイルを指定 SpellUI.enableSpelling(textArea, "usa.zwl"); } ]]> </mx:Script> <mx:TextArea id="textArea" width="20%" height="20%" fontSize="30" text="Spell cheecking in TextArea "/> </mx:Application>
このように SpellUI を使うと、UI コンポーネント内の間違ったスペルの単語には赤い下線が引かれ、右クリックするとコンテキストメニューに修正候補が表示されるようになります。ユーザ入力時は、単語の区切りごとに (スペースキーを押すたびに) スペルチェックが実行されます。
制限事項など
今回のバージョンでは、英文のスペルチェックのみがサポートされます。また、大文字小文字の扱いを自由に設定することが出来ません。このあたりは、今後のバージョンで改良されていく予定です。
最後に、Squiggly の品質は使用する辞書の品質に依存します。ダウンロードパッケージに含まれる辞書は、http://wordlist.sourceforge.net/ からダウンロードできるオープンソースのリスト (Copyright 2000-2004 by Kevin Atkinson) を基にしたもので、あくまで Squiggly のデモのために提供されているものです。
Squiggly のパッケージ内には辞書生成用の AIR アプリケーションも含まれていますので、これを使ってより品質の高い辞書を作成するよう推奨されています。なお、現在の実装上の制限から、一時点で使用できる辞書は一つだけです。
お世話になっております。
========================================================
Working with Images
--------------------------------------------------------
The Flex framework presents images with the Image
control. This control can be used to present
images that are downloaded from a server at runtime,
loaded from the local hard disk at runtime
(for AIR applications only, since Flex-based Web
applications don’t have access to the local file system),
or embedded in the Flex application.
--------------------------------------------------------
ブラウザ経由のFlexではローカルの画像を作成・編集することは不可能なのでしょうか?それともImage controlの制限なのでしょうか?
flex time 24 さん、こんにちは。
Flash Player 10 からローカルのファイルを読み込むことができるようになりました。
それ以前の環境もサポートする場合は一旦サーバを経由するしかないと思います。
>Flash Player 10 から…
検索すると、Flash Player 10からjavascriptを経由せず
内部に実装された云々とは見かけたのですが、本家に
(AIR only)って書いてあったのでブラウザ経由は昔のまま
なのだと思いました。
実装されたAPIと開発環境・実行環境で使用が可・不可かの
機能比較逆引きマトリックスがあると助るのに…と現在進行形で
思っているのですが、流れ的にいくと多分どこかにある
予感がしますので探します。ありがとうございました。