桜は散り際がいちばんいいです。ツノッチです。
Flashのスライドショーみたいなので、
サムネイルをクリックしたら大きい画像を読み込んで表示する
作品をよく見かけるので、簡単なサンプルを作ってみました。
写真素材がなかったので、サンプル画像になってますけど、
XMLで管理してるので、写真に切り替えたりするのは
簡単にできるようにしてます。
画像の管理はXMLが便利
最近はFlashとXMLの連携を中心に勉強することがおおいです。
実際サイトを運営したりすると、更新の手間など汎用性があるものが
求められると思うので、そんなときXMLは便利です。
| 今回のFlashの概要 | XML | thumb.xml |
|---|
<?xml version="1.0" encoding="utf-8"?>img/sample01.png img/thumb01.png img/sample02.png img/thumb02.png img/sample03.png img/thumb03.png img/sample04.png img/thumb04.png
AcrionScriptは以下のような感じです。
/*************************************
基本情報
*************************************/
import fl.transitions.Tween;
import fl.transitions.easing.*;
var myXML:XML;
var xmlPath:String = "thumb.xml";
var xmlLoader:URLLoader = new URLLoader(new URLRequest(xmlPath));
var loader:Loader;
var imgNum:uint = 4;
/*************************************
配列
*************************************/
var mainFld:Array = new Array();
var thumbFld:Array = new Array();
xmlLoader.addEventListener(Event.COMPLETE, setXmlLoad);
function setXmlLoad(event:Event):void{
myXML = new XML(event.target.data);
startThumb();
startMain();
}
function startThumb():void{
for(var i:uint = 0; i <= imgNum - 1; i++){
loader = new Loader();
thumbFld.push(loader);
thumbFld[i].load(new URLRequest(myXML.item[i].thumb));
}
setThumbImg();
}
function startMain():void{
for(var i:uint = 0; i <= imgNum - 1; i++){
loader = new Loader();
mainFld.push(loader);
}
}
function setThumbImg():void{
for(var i:uint = 0; i <= imgNum - 1; i++){
this["thumb" + (i + 1)].addChild(thumbFld[i]);
this["thumb" + (i + 1)].buttonMode = true;
this["thumb" + (i + 1)].mouseChildren = false;
this["thumb" + (i + 1)].addEventListener(MouseEvent.CLICK, setThumbClick);
}
}
function setThumbClick(event:MouseEvent):void{
setAction(event.target);
}
function setAction(obj:Object):void{
var targetNum:uint = obj.name.substr(-1, 1) ;
var targetMain:String = "load0" + targetNum;
mainFld[targetNum - 1].load(new URLRequest(myXML.item[targetNum - 1].main));
var myTween:Tween = new Tween(load_mc.getChildByName(targetMain), "alpha", None.easeOut, 0, 1, 0.3, true);
load_mc.setChildIndex(load_mc.getChildByName(targetMain), (load_mc.numChildren - 1));
this["load_mc"]["load0" + targetNum].addChild(mainFld[targetNum - 1]);
}












