TransitionManager Blinds
♥0 |
Line 136 |
Modified 2010-09-27 23:43:47 |
MIT License
archived:2017-03-20 13:25:20
ActionScript3 source code
/**
* Copyright hacker_szoe51ih ( http://wonderfl.net/user/hacker_szoe51ih )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/guD2
*/
package {
import flash.utils.*
import com.flashdynamix.motion.plugins.MovieClipTween;
import flash.display.*;
import flash.events.*;
import flash.filters.DisplacementMapFilter;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.net.*;
import flash.system.*;
import fl.transitions.*;
import fl.transitions.easing.*;
[SWF(width=465,height=465,backgroundColor=0xffffff,frameRate=45)]
public class Main extends Sprite {
public var photoBoxMC:MovieClip;
public var lo:Loader;
public var urlReq:URLRequest;
public var pass0:String = "http://farm5.static.flickr.com/4146/5017161033_2a85566fde.jpg";
public var pass1:String = "http://farm5.static.flickr.com/4087/5017767668_301dcd4985.jpg";
public var pass2:String = "http://farm5.static.flickr.com/4090/5017767720_1f04f48074.jpg";
public var passArray:Array;
public var bmdArray:Array;
public var photoArray:Array;
public var photoNum:Number = 3;
public var currentNum:Number = 0;
public var W:Number = stage.stageWidth;
public var H:Number = stage.stageHeight;
public var button:MyButton;
public function Main() {
init();
}
public function init():void {
button = new MyButton();
button.x = 215;
button.y = 400;
addChild(button);
passArray = new Array();
photoArray = new Array();
bmdArray = new Array();
passArray = [pass0, pass1, pass2];
urlReq = new URLRequest(passArray[0]);
lo = new Loader();
lo.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
var mc:MovieClip = new MovieClip();
mc.addChild(lo);
photoArray.push(mc);
var myLoaderContext:LoaderContext = new LoaderContext(true);
lo.load(urlReq,myLoaderContext);
}
public function onComplete(e:Event):void {
init2();
}
public function init2():void {
bmdArray = null;//回数を図り終えたので破棄
photoBoxMC = new MovieClip();
photoBoxMC.addChild(photoArray[currentNum]);
addChild(photoBoxMC);
photoBoxMC.x = W / 2 - photoArray[currentNum].width / 2;
photoBoxMC.y = H / 2 - photoArray[currentNum].height / 2;
button.addEventListener(MouseEvent.CLICK, onClick);
currentNum += 1;
}
public function onClick(e:MouseEvent):void {
button.removeEventListener(MouseEvent.CLICK, onClick);
urlReq = new URLRequest(passArray[currentNum]);
lo = new Loader();
lo.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete2);
var mc:MovieClip = new MovieClip();
mc.addChild(lo);
photoArray.push(mc);
lo.load(urlReq);
}
public function onComplete2(e:Event):void {
//次に表示する画像を先に挿入しておく
photoBoxMC.addChild(photoArray[photoArray.length-1]);
photoBoxMC.addChildAt(photoArray[photoArray.length-1], 0);
transitFunc();
}
public function transitFunc():void {
var transitionManager :TransitionManager = new TransitionManager(photoArray[photoArray.length-2]);
transitionManager.startTransition({ type:Blinds, direction:Transition.OUT, duration:1, easing:Bounce.easeOut, numStrips:20, dimension:0 } );
transitionManager.addEventListener("allTransitionsOutDone", timerComplete);
}
public function timerComplete(e:Event):void {
//トランジションが完了したら一個前のMCを表示リストから外す
photoBoxMC.removeChildAt(1);
if (photoArray.length>photoNum-1) {//配列に写真が三枚以上になったら一番古いのを削除
photoArray.shift();
}
setFunc();
}
public function setFunc():void {
if (currentNum == photoNum - 1) {
currentNum = 0;
}else if(currentNum<photoNum){
currentNum += 1;
}
button.addEventListener(MouseEvent.CLICK, onClick);
}
}
}
import flash.display.*;
import flash.events.*;
import flash.text.TextField;
import flash.text.TextFormat;
class MyButton extends Sprite {
public var box:Sprite;
public var textField:TextField;
public var textFormat:TextFormat;
public var textSprite:Sprite;
public function MyButton() {
init();
}
public function init():void {
textSprite = new Sprite();
textField = new TextField();
textFormat = new TextFormat();
textFormat.font = "MS ゴシック";
textFormat.size = 14;
textFormat.color = 0x666666;
textFormat.letterSpacing = 1;
textField.defaultTextFormat = textFormat;
textField.text = "click";
box = new Sprite();
box.graphics.beginFill(0xcccccc);
box.graphics.drawRoundRect(0, 0, 45, 21,3,3);
box.graphics.endFill();
box.buttonMode = true;
box.mouseEnabled;
box.mouseChildren = false;
addChild(box);
box.x = 0;
box.y = 0;
box.addChild(textField);
textField.x = 2;
textField.y = 2;
}
}