外部有6個圖檔,依亂數載入。同一輪已載入過的就不再載入。第1輪播完再播第2輪......
//991228從991130_randomPhoto_1.fla修改
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFormat;
//載入Tweener、ColorShortcuts類別
//請至以下URL下載tweener類別程式庫與說明文件
//http://code.google.com/p/tweener/
import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
//初始化ColorShortcuts
ColorShortcuts.init();
//****** photo陣列 - push() 加入外部圖檔檔名
var photo:Array = new Array();
photo.push("991130_p1.jpg");
photo.push("991130_p2.jpg");
photo.push("991130_p3.jpg");
photo.push("991130_p4.jpg");
photo.push("991130_p5.jpg");
photo.push("991130_p6.jpg");
//
var pNum:uint = photo.length;
//****** intervalDuration - 換圖秒數(毫秒)
//目前設為 5000豪秒,即 5 秒
var intervalDuration:Number = 5000;
//TextFormat物件設定文字格式
var aTextFormat:TextFormat = new TextFormat();
aTextFormat.size = 18;
aTextFormat.color = 0xffffff;
aTextFormat.leftMargin = 5;
aTextFormat.rightMargin = 5;
//宣告TextField文字欄位類別實體infoTextField
var infoTextField:TextField = new TextField();
infoTextField.x = 15;
infoTextField.y = 15;
infoTextField.background = true;
infoTextField.backgroundColor = 0xff2200;
infoTextField.autoSize = TextFieldAutoSize.LEFT;
//將 infoTextField 加入顯示清單
addChild(infoTextField);
//建構Loader類別實體ldr
var ldr:Loader = new Loader();
//
ini();
//
function ini():void
{
loadPhoto();
}
//
function loadPhoto()
{
//如果photo陣列元素都被移除掉了
//以for迴圈重新加入各元素,即外部檔名,同初始值
if(photo.length == 0){
for (var i:uint=0; i < pNum; i++) { // pNum
photo[i] = "991130_p" + String(i+1) + ".jpg";
}
trace("------------------------------------------");
}
//Math.random() 亂數產生0(含)~1(不含)之浮點數,
//乘以圖檔張數(即photo陣列長度 photo.length),會得到 0(含)~6(不含) 之符點數
//Math.floor - 去掉小數 - 會得到0~5之正整數
var photoRandom:uint = Math.floor(Math.random() * photo.length);
//photo[photoRandom] - 因應亂數,做為陣列索引,指向陣列元素
var photoURL:String = photo[photoRandom];
//splice(起始索引, 刪除數量) - 刪除被選定的陣列元素
//如此在每一循環載入圖檔,才不會重覆
photo.splice(photoRandom, 1);
trace(photoURL);
//將photoURL所存的圖檔檔名字串指定給 infoTextField 文字欄位顯示
infoTextField.text = photoURL;
//setTextFormat()方法,將aTextFormat格式化物件與infoTextField文字欄位關聯
infoTextField.setTextFormat(aTextFormat);
//
//Loader類別實體ldr,以load()方法載入new URLRequest()的相對網址(即圖檔檔名)
ldr.load(new URLRequest(photoURL));
//將Event.COMPLETE事件的偵聽程式onLoaderComplete,附加到Loader類別實體ldr的contentLoaderInfo屬性
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
}
//
function onLoaderComplete(e:Event):void
{
addChild(ldr);
//將ldr可視物件實體,以x,y座標控制在舞台中央
ldr.x = (stage.stageWidth - ldr.width) / 2;
ldr.y = (stage.stageHeight - ldr.height) / 2;
//呼叫漸變屬性設定函式tweenPhoto1()
tweenPhoto1();
//setTimeout(closure:Function, delay:Number, ... arguments):uint
//在指定的延遲時間 (以毫秒為單位) 之後執行指定的函數
var intervalId:uint = setTimeout(ini, intervalDuration);
}
//
function tweenPhoto1():void{
Tweener.addTween(ldr, {alpha:0, scaleX:0.9, scaleY:0.9, time:0, onComplete:tweenPhoto2});
}
function tweenPhoto2():void{
Tweener.addTween(ldr, {alpha:1, scaleX:1, scaleY:1, time:1.5});
}
◎另需參閱
指定類別檔路徑 - 以下載及設置Tweener類別庫為例
http://flash.twgogo.org/2010/12/blog-post.html
沒有留言:
張貼留言