flashiroha

(89) TransitionManagerクラスを使ったスライドショー(as3.0&2.0)   2009/7/1

as3.0
as2.0

import fl.transitions.*;
import fl.transitions.easing.*;
import flash.utils.setInterval;
//写真総枚数
var picTotal:Number=7;
//transitioタイプ、イージングクラスを配列で定義
var transition:Array=new Array(Blinds,Iris,Photo,PixelDissolve,Zoom,Fly,Squeeze,Wipe);
var easetype:Array=new Array(Back,Bounce,Elastic,Regular,Strong);
//写真表示用ムービークリップ
var load_mc:MovieClip = new MovieClip();
addChild(load_mc);
load_mc.x=load_mc.y=20;
//間隔intervalで表示写真の番号を発生させ、loadPic関数に渡す
var n:Number=0;
var interval:Number=3000;
setPic();
function setPic():void {
  if (n>picTotal-1) {
    n=1;
  } else {
    n++;
  }
  loadPic(n);
}
var ID=setInterval(setPic,interval);
//ムービークリップload_mcに画像を読み込み、読み込み完了したら
//transPic関数でトランジション効果を付与する
function loadPic(n):void {
  var mcLoader:Loader = new Loader();
  load_mc.addChild(mcLoader);
  var url:String="img/p"+n+".jpg";
  var urlReq:URLRequest=new URLRequest(url);
  mcLoader.load(urlReq);
  mcLoader.contentLoaderInfo.addEventListener( Event.COMPLETE , transPic);
  function transPic():void {
    var transType:Class=transition[Math.floor(Math.random()*transition.length)];
    var easeType:Class=easetype[Math.floor(Math.random()*easetype.length)];
    var myTransition:TransitionManager=new TransitionManager(load_mc);
    myTransition.startTransition({type:transType, direction:0, duration:2, shape:"CIRCLE", startPoint:2, xSections:20, ySections:20, dimension:1,     easing:easeType.easeOut});
  }
}

import mx.transitions.*;
import mx.transitions.easing.*;


var picTotal = 7;

var transition:Array = new Array(Blinds, Iris, Photo, PixelDissolve, Zoom, Fly, Squeeze, Wipe);
var easetype:Array = new Array(Back, Bounce, Elastic, Regular, Strong);

this.createEmptyMovieClip("load_mc", 1);
load_mc._x = load_mc._y = 20;


var n = 0;
var interval = 3000;
setPic();
function setPic() {
  if (n>picTotal-1) {
    n = 1;
  } else {
    n++;
  }
  loadPic(n);
}
ID = setInterval(setPic, interval);


function loadPic(n) {
  var mcLoader:MovieClipLoader = new MovieClipLoader();
  jpg = "img/p"+n+".jpg";
  mcLoader.loadClip(jpg,load_mc);
  var oListener:Object = new Object();
  oListener.onLoadInit = function() {
    transPic();
  };
  mcLoader.addListener(oListener);
}
function transPic() {
  var transType:Function = transition[Math.floor(Math.random()*transition.length)];
  var easeType:Function = easetype[Math.floor(Math.random()*easetype.length)];
  var myTransition:TransitionManager = new TransitionManager(load_mc);
  myTransition.startTransition({type:transType, direction:0, duration:2, shape:"CIRCLE", startPoint:2, xSections:20, ySections:20, dimension:1, easing:easeType.easeOut});
}

注)transType、easeTypeはそれぞれの総数内で乱整数を発生させ、その数に相当する配列のタイプを使うようにしている。
  Transitionはパラメーターを各タイプ共通に定義しているため、タイプによっては違和感の生ずるものがあるかもしれない。
 これらのパラメーターの値は、もちろん好みで設定することができる。
 
flashirohaサイト内  Web全体