スキップメニュー:コンテンツへナビゲーションへ

乱雑モックアップ   らんざつ[乱雑] (名・形動)[文]ナリ 入り乱れていること。乱れていて秩序がないこと。また、そのさま。

xmlでスライドショウ、その後 ( 20100701修正あり )

2009年 8月 4日 |

as3, flash |

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリーのブックマーク数

表示されるかな
追記|20100701
swfobjでswfを出力してるんだけど、それのせいでswfobj以降の文章がすべて表示されなくなってた
とりあえず削除した、いつからだろう?

追記|20090804_04:02
あーれー絶対パスでも相対パスでも表示されないぞ

追記|20090804_04:22
fla内のxmlまでのパスを絶対パスにしたら読み込んだ。
wpが吐き出すhtmlはどの階層にあるんだろうか

というより絶対パスでしかちゃんと動作しないとなると
汎用性が全くなくなるんで意味がない。

[追記 / 20100519]
そういえばソースも何も書いてなかった。
コメントやtrace文そのまま貼りつけてみます。
xmlなどの入ったファイルもアップしておきます、参考になれば。

//tweener設定
import caurina.transitions.Tweener;

//画像関係のパス、xmlに切り替え時間表示時間を書き込めるようにする?
var pathXml:String = "photo-local.xml";

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

//tweener関係ロード
var motion_list:Array = [];
var transSpan:Number = 1;//(切り替え間隔、単位:秒)
var transTime:Number = 1;//(切り替えに要する時間、単位:秒)
var transType:String = "easeOutSine";

//画像関係のカウント
var maxNum:int;//読み込んだ画像数
var bitNum:int;//bitmapに変換した画像数
//var nowPhoto:int;//現在表示されてる画像

const startimg:int = 0;
var nowimg:int = 0;
var nextimg:int = startimg + 1;
trace("●startimg : "+startimg);

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

// xml読み込み完了時に呼び出されるイベント
url_loader.addEventListener(Event.COMPLETE,loadComplete);
function loadComplete(event : Event) {
	var xml:XML = new XML(url_loader.data);
	//xmlからターゲットのパスを指定する|画像データ関係ロード
	for each (var element:Object in xml.photo) {
		url_list.push(element.photourl);
		caption_list.push(element.photocaption);
		//画像の枚数
		maxNum++;
		trace("maxNum : "+maxNum);
		//_txt.text=url_list.toString();
	}
	//xmlからターゲットのパスを指定する|モーション関係ロード
	for each (var elementM:Object in xml.defaultMotion) {
	transSpan = elementM.transSpan;
	transTime = elementM.transTime;
	transType = elementM.transType;
	}
	loadphoto();
}

//画像読み込み
function loadphoto() {
	trace("loadphoto / "+loadphoto);
	var maxNum:int = url_list.length;
	for(var i:Number=0;i<maxNum;i++){;
	photoloader[i]=new Loader();
	photoloader[i].load(new URLRequest(url_list[i]));
	//読み込んだらbitmapにキャストする
	photoloader[i].contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
	addChildAt(photoloader[i],i);
	//読み込んだ画像のプロパティ(動作確認用)
	//photoloader[i].x += 10 + i * 25;
	//photoloader[i].y+=10;
	//photoloader[i].scaleX=photoloader[i].scaleY=0.25;
	photoloader[i].alpha = 0;
	//画像にボタン処理(動作確認用)
	//photoloader[i].addEventListener(MouseEvent.CLICK,onClick_func);
}
}
//画像毎の名前取得テスト用のfunction
function onClick_func(e:MouseEvent) {
trace("e.target.name"+e.target.name);
if (e.target.alpha == 1) {
	e.target.alpha = 0.2;
} else {
	e.target.alpha = 1;
}
}
//bitmap化してスムージングをtrueにするよ
function onComplete(e:Event):void {
var image:Bitmap = Bitmap(e.target.content);
trace("e.target.content :"+e.target.content);
image.smoothing = true;
bitNum++;//変換済みの枚数
if (bitNum == maxNum) {
	trace("//初期セット完了bigin実行");
	loopbegin();
	//begin();
	//初期セット完了
}
}

function setindex(nextName) {
var nummax:Number = numChildren;
var owner = nextName;//e.currentTarget;
trace("-nummax / "+nummax,"|-owner / "+owner);
trace("-getChildIndex(owner) / "+getChildIndex(owner));
setChildIndex(owner,nummax-1);
trace("-getChildIndex(owner) after / "+getChildIndex(owner));
}

//スライドショウ設定
function begin() {
trace("");
trace("■begin()開始今の画像 / "+nowimg,"maxNum / "+maxNum);
if (nowimg < maxNum - 1) {//小さいうちは
	trace("■側");
	loop2loop();
} else {//同じになったら
	trace("●else側");
	loop2loop2();
}
}

function loop2loop() {
trace("   通常ループ");
photoloader[nextimg].alpha = 0;//次の画像を透明にして
setindex(photoloader[nextimg]);//nextimgを最前面に移動
Tweener.addTween(photoloader[nowimg],{delay:transSpan,time:transTime,alpha:1,transition:transType,onComplete: begin});
nowimg++;
nextimg++;
}
function loop2loop2() {
trace("   最後だけ|loop2loop2()");
nextimg = 0;
photoloader[nextimg].alpha = 0;//次の画像を透明にして
setindex(photoloader[nextimg]);//nextimgを最前面に移動
Tweener.addTween(photoloader[nowimg],{delay:transSpan,time:transTime,alpha:1,transition:transType,onComplete: begin});
nowimg = startimg;
nextimg++;
}

function loopbegin() {
trace("一回だけのつもりloopbegin()");
photoloader[nextimg].alpha = 0;//次の画像を透明にして
setindex(photoloader[nextimg]);//nextimgを最前面に移動
Tweener.addTween(photoloader[nowimg],{delay:0,time:transTime,alpha:1,transition:transType,onComplete: begin});
nowimg++;
nextimg++;
}

いやーしかし一年ぶりくらいにみたら、意味が全くわからない。
悲しいなぁ。


コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URL

コメントする

You can add images to your comment by clicking here.




Back to Top↑

あわせて読みたい

Back to Top↑

RSS 乱雑モックアップのフィード

Copyright © 乱雑モックアップ. All Rights Reserved.