サンプルダウンロード
PDRファイル・CSFファイル在中
「kousin.zip」 9.41 KB (9,641 バイト)
更新履歴ティッカー 作成方法解説
ParaDraw Ver.0.3a4 で作成した絵を,Suzuka Ver.0.6.5 でアニメーションさせています。
簡単な階層構造は次のようになっています。
_root
├ link_btn (リンク用ボタンインスタンス)
├ my_musk (マスク用のスプライトインスタンス)
└ mojiMC
(テキストフィールドを入れたスプライトインスタンス)
└
mojiTXT(テキストフィールド)
そして,フレーム1 には次のように書いています。
// ストップ
stop();
// カウント用変数 cnt の初期値を設定
var cnt = -1;
// ------
// Shift-JIS でロード
System.useCodepage = true;
// XMLインスタンスの作成
var myXML = new XML();
// 余分な空白などを削除
myXML.ignoreWhite = true;
// 更新データロード時の動作定義
myXML.onLoad = function() {
// 変数 total に更新データのトータル数を取得
_root.total = this.childNodes[0].childNodes.length;
// 再生開始
_root.play();
};
// キャッシュ参照防止策
// 今の時刻オブジェクトの作成
var myday = new Date();
// 1970年1月1日0時からのミリ秒数を取得
var mytime = myday.getTime();
// 外部更新データXML を XMLインスタンスにロード
myXML.load("kousin.xml"+"?num="+mytime);
// ------
// スクロール文字にマスクをかける
_root.mojiMC.setMask("_root.my_mask");
|
大きな流れは,外部「kousin.xml」を「myXML」というXMLインスタンスにロードして,
ロードが完了次第,_root
の再生を開始させるということです。
キャッシュ参照防止策は,「kousin.xml」をキャッシュからロードしないようにしている処理です。
myXML.load("kousin.xml");
で,外部XMLをロードしてもかまいませんが,ブラウザがキャッシュを参照した場合,XML
を更新しても,その更新がFlash内に反映されないので,
kousin.xml というファイル名の後に ?=○○○○
という適当にでたらめな引数を加えてロードさせています。
○○○○
の部分はいつも変わるので,以前に表示させたファイルとは違うファイルだと認識されて,ブラウザは以前の kousin.xml のキャッシュを参照しなくなります。
キャッシュを防止するという策ではありません。キャッシュを参照させない策です。
なお,この策のため,SWFを直接開いても XML はロードされないと思います。
SWF を貼り付けた HTML をブラウザで開くと,XML はロードされると思います。
動作検証などは,ZIPファイル内の 「sample」フォルダ内のサンプルで行ってみてください。
また,SWF 内に埋めこまれていないテキストには,レイヤーのマスク機能ではマスクがかかりません。
したがって,
//
スクロール文字にマスクをかける
_root.mojiMC.setMask("_root.my_mask");
という ActionScript
によってテキストフィールド入りスプライトインスタンスにマスクをかけています。
テキストフィールドをスプライトの中に入れているのは,ActionScript でマスクをかけるためです。
setMask はMovieClipクラスのメソッドなので,テキストをMovieClip(スプライトインスタンス)の中に入れる必要があります。
フレーム2 には次のように書いています。
if(cnt<total-1){
cnt++;
}else{
cnt=0;
}
// 文字を表示
_root.mojiMC.mojiTXT.text =
myXML.childNodes[0].childNodes[cnt].firstChild.nodeValue;
// ボタンにリンクを設定
_root.link_btn.onRelease = function(){
getURL(myXML.childNodes[0].childNodes[cnt].attributes.kousinURL);
};
|
これで,myXMLインスタンス内の XML
データから,
順次表示データをテキストフィールドに表示させたり,ボタンのリンクするURLを変えています。
そして最終フレームには次のように書いています。
これで,フレーム1 には戻らず,フレーム2-最終フレーム間の再生がループされ,XML のデータが順次 Flash に反映され続けます。
|