今回は、簡単なスライドショーガジェットを作ってみた。
3枚の画像を10秒毎に切り替えて表示という処理を延々繰り返す。
この間作った電光掲示板もどきより制御も簡単で、特に目新しいもの無し。
一点。
タイマーイベントの一発目の処理は、指定しているインターバルタイムが最初に経過した後なので、タイマーイベントを開始する前に、一発目の処理を実行しておく必要あり。
今回の場合であれば、1枚目の絵のパスセット。
こうしないと、最初の 10秒間は何も表示していない状態になってしまう。
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="340" height="100" color="#0B333C"
initialize="initProc();">
<mx:Image x="0" y="0" width="340" height="100" id="img1"/><mx:Script>
<![CDATA[
public var FilePath:Array = new Array(); // 画像パス
public var FileIndex:int; // 配列インデックス//============================
// メイン処理(10秒毎に画像パスセット処理呼び出し)
//============================
private function initProc():void {setFilePath();
FileIndex = 0; // 最初の画像
img1.source = FilePath[FileIndex]; // 最初のパスセットvar timeProc1:Timer = new Timer(10000); // 10秒毎
timeProc1.addEventListener(TimerEvent.TIMER, setImage);
timeProc1.start();}
//============================
// メイン処理(10秒毎に画像パスセット処理呼び出し)
//============================
private function setImage(event:TimerEvent):void {FileIndex++;
if (FileIndex >= FilePath.length) {
FileIndex = 0;
}img1.source = FilePath[FileIndex]; // パスのセット
}
//============================
// 表示画像のパス設定
//============================
private function setFilePath():void {FilePath[0]
= "file:///M|/X/data/TEST/src/img/carp.jpg";
FilePath[1]
= "file:///M|/X/data/TEST/src/img/iwakuni.jpg";
FilePath[2]
= "file:///M|/X/data/TEST/src/img/metro.jpg";}
]]>
</mx:Script></mx:WindowedApplication>
うーん・・・どうでもいいが、ファイルパスの相対パス設定の仕方がわからん。
ああ、これ、URL だな。
ローカルの画像ファイルを「ファイルパス」で指定して読み込んで表示するには、別のやり方をしないといけないということか。
コメントする