電話は呼出し音が終わって、相手が出てからしゃべりましょうということです。

簡単に画像を更新できるslideshowをflashで作ろうと思い、仕様を考える。

  • 外部から画像を読み込む
  • 読み込む画像の枚数をflaを開かずに変更できる

as1時代に作ったのは、外部テキストに画像のurlと最大枚数を書いておいて表示させるといったモノ。
今回はせっかくなのでxmlを使ってみよう、xml有名だもんね、xml使うメリットとかデメリットとかそもそもxmlて何なの?って全くわかってないけど。

以下のxmlを用意した

asはカヤックの記事を参考に書いてみる。
[as3]
var pathXml:String="photo.xml";

var url_list:Array=[];
var caption_list:Array=[];

var url:URLRequest=new URLRequest(pathXml);
var url_loader:URLLoader=new URLLoader(url);

// 読み込み完了時に呼び出されるイベント
url_loader.addEventListener(Event.COMPLETE,loadComplete);
function loadComplete(event : Event) {
trace("電話の相手が出ました");
var xml:XML=new XML(url_loader.data);
//trace(xml);
//xmlからターゲットのパスを指定する
for each (var element:Object in xml.photo) {
url_list.push(element.photourl);
caption_list.push(element.photocaption);
//_txt.text=url_list.toString();
}
slideshowplay();
}
trace("受話器に向かってしゃべりました");
function slideshowplay() {
trace("もう一度受話器に向かってしゃべりました");
_txt.text=url_list.toString();
}
[/as3]

ここで躓いたのが
loadComplete内からしか配列を参照できなかった、ってこと。
(よく考えたら当たり前だし、以前の外部テキストを読み込む時も読み込みが完了した時に処理用の関数を呼び出してたのにすっかり忘れてる)
検索してみると、mixiで同じように躓いてる人の質問を発見
http://mixi.jp/view_bbs.pl?id=42643514&comm_id=580&page=all
11-16あたりの流れ

電話は呼出し音が終わって、相手が出てからしゃべりましょうということです。

FLASH-japan「外部XMLを配列化したときにonLoadの外で変数が反映されません」
http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=3946&forum=6

今回はフレーム移動ではなく、function oadComplete内からfunction slideshowplayを呼び出してみる事にします。


コメントを残す

メールアドレスが公開されることはありません。

You can add images to your comment by clicking here.