矩形領域(シンボル化したシェイプ)へローカルファイルからJPGなどの画像を読み込み、表示させます。
ネットワーク上やローカルのファイルを取り込むには、AS3.0では Loader というコンポーネントを使います。以下、試行した手順です。
●手順
画像は320×240のJPG形式で、実行ファイルと同じフォルダにあるものとします。また、ファイル名は “img1.jpg” とします。
- 四角のシェイプをステージ上に配置し、プロパティで大きさを幅320、高さ240に設定します。
- そのシェイプをシンボルに変換します。
- シンボル設定画面では、基準点を左上に設定します。画像はこの基準点を左上として表示されます。
- 種別を「ムービークリップ」、名前を “imgFrm” に設定します。
- スクリーン編集画面に戻り、そのシンボルのプロパティでインスタンス名を “imgFrm1″ とします。複数のエリアを作る場合は、このシンボルをコピーして、インスタンス名を”imgFrm2″などとして増やせば個別に使用できます。
- タイムライン上でフレーム1が選択されているはずですので、F9キーを押して、アクション編集画面に切り替えます。ここで、下記のようなコードを記述します。
// シンボルに画像を表示する import flash.display.Loader; import flash.display.InteractiveObject; var imgLoader:Loader = new Loader(); // (1) var urlReq:URLRequest = new URLRequest("img1.jpg"); // (2) imgLoader.load(urlReq); // (3) imgFrm1.addChild(imgLoader); // (4)
Ctrl + Return キーを押すと、コンパイル後に実行されてシェイプ上に静止画が表示されます。
スクリプトを簡単に説明すると、
(1)画像を入れるコンテナ(入れ物)のインスタンスを生成します。ここでは ” imgLoader ” としています。
(2) 文字列をURL形式に変換しています。ここでローカルファイルの画像ファイルパスやネット上の画像のURLを指定します。ここでは変換したものを ” urlReq ” という変数に入れています。
(3) ” imgLoader ” というコンテナに読み込んだ画像を入れて、(4)シンボルの ” imgFrm1 ” に登録しています。ここで画像が表示されます。
これは、もっとも簡単な例ですが、実際は、何等かのイベントで画像ファイルを差し替えて、画面を切り替えるなどの使い方ができます。
マウスイベントやタイマイベントで動画ファイルを切り替えてやればスライドショーみたいなものも作れますね。
———
●シンボルのアクションスクリプト内の変数はプロパティ
シンボル内で定義した変数は、他のスクリプトからはプロパティとしてアクセスできます。たとえば、” imgFrm ” (インスタンスは ” imgFrm1 ” )シンボルのスクリプトで、” var count;int; ” を定義したとします(関数の中ではなく、外側にある変数)。
他のスクリプトで、このシンボルを操作する場合、” imgFrm1.count = 3; ” のような使い方ができます。
●toString()
引数で書式指定できるかと思ったら、基数しか指定できませんでした。省略すると”10″(10進数)になります。” 2 ” とか ” 16 ” も指定できます。0パディングの有無や桁数を指定する方法はなく、プログラムで加工してやらないといけないみたいです。
var ii:int; ii = 12; stsText.text = ii.toString(10);
ダイナミックテキストstsTextがあるとすると、そこに”12″と表示されます。