Im made updates for page flip, now I can insert a video in this one. Video how it look like. I show how-to by the code. It's free and open sourse.
You can get rar archive on free and open page flip here.
package
{
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*
import flash.text.*;
import away3d.materials.utils.SimpleVideoPlayer;
import lex.*;
import lex.book.contento.*;
import lex.book.*;
/**
* ...
* @author Lexcuk
*/
public class NoDynamicDoc extends MovieClip
{
private var pageFlip:PageFlip;
private var curPage:int = 1;
private var maxPage:int = 7;
private var soundDone:Sound;
private var pauseParam:int = 40;
private var frameCount:int;
private var nav:Cs3Nav;
private var pageXml:PageXml = new PageXml();
private var simpleVideoPlayer:SimpleVideoPlayer;
private var pageSizeX:int = 200;
private var pageSizeY:int = 260;
private var simpleVideoPlayerArr:Vector.<SimpleVideoPlayer> = new Vector.<SimpleVideoPlayer>();
private var volumeCount:Number = 0;
public function NoDynamicDoc(){
nav = new Cs3Nav();
addChild(nav);
trace('hello');
//?????? ??????????? ????????????? ????????
MovieContent.pageSizeX = pageSizeX;
MovieContent.pageSizeY = pageSizeY;
MovieContent.spriteArrTr = true;
//?????? ?????? ????????
var i:int;
var mc:MovieClip;
for (i = 0; i < maxPage+1; i++) {
mc = new ContentMc();
mc.gotoAndStop(i);
var sp:Sprite = new Sprite();
MovieContent.spritePageArr[i] = sp;
var mask:Sprite = new Sprite();
mask.graphics.beginFill(0);
mask.graphics.drawRect( -pageSizeX, 0, pageSizeX * 2, pageSizeY);
sp.addChild(mask);
sp.addChild(mc);
mc.mask = mask;
mc.scaleX = mc.scaleY = 1.3;
mc.cacheAsBitmap = mask.cacheAsBitmap = true;
PageFlip.gotoButtonMode(mc);
}
var videoUrlArr:Array = ['0.flv', '1.flv'/*, '2.flv', '3.flv','4.flv'*/];
for (i = 0; i < videoUrlArr.length; i++) {
simpleVideoPlayer = getSimpleVideoPlayer(videoUrlArr[i]);
MovieContent.spritePageArr[i+2].addChild(simpleVideoPlayer.container);
simpleVideoPlayer.container.x = -pageSizeX;
}
addChild(pageFlip = new PageFlip(MovieContent, pageSizeX, pageSizeY));
//????? ??????????? ????????????? ????????
nav.autoMc.stop();
mc = new ContentMc();
MovieContent.totalFrames = mc.totalFrames;
MovieContent.docSp = pageFlip;
pageFlip.addEventListener(Event.CHANGE, pageFlipChangeHandler);
pageFlip.x = 90;
pageFlip.y = 70;
soundDone = new SoundDone();
trace('hello Doc');
pageFlip.onNavRestoreContent = onNavRestoreContent;
addEventListener(Event.ENTER_FRAME, enterFrameHandler,false,0,false);
nav.autoMc.buttonMode = true;
nav.autoMc.stop();
nav.autoMc.addEventListener(MouseEvent.CLICK, autoMcClickHandler);
nav.menu.one.addEventListener(MouseEvent.CLICK, menuClickHandler);
nav.menu.prev.addEventListener(MouseEvent.CLICK, menuClickHandler);
nav.menu.next.addEventListener(MouseEvent.CLICK, menuClickHandler);
nav.menu.seven.addEventListener(MouseEvent.CLICK, menuClickHandler);
nav.curPageTraceTxt.text = ''+pageFlip.currentPage;
//conerNoSleep = new ConerNoSleep(pageSizeX, pageSizeY);
//addChild(conerNoSleep.forwardSprite);
addEventListener(Event.ENTER_FRAME, simpleVideoPlayerVolumControlHandler);
}
private function getSimpleVideoPlayer(source:String):SimpleVideoPlayer {
var _simpleVideoPlayer:SimpleVideoPlayer = new SimpleVideoPlayer();
//sprite.addChild(simpleVideoPlayer.container);
_simpleVideoPlayer.source = source;
_simpleVideoPlayer.width = pageSizeX*2;
_simpleVideoPlayer.height = pageSizeY;
_simpleVideoPlayer.loop = true;
_simpleVideoPlayer.volume = 0;
_simpleVideoPlayer.play();
simpleVideoPlayerArr.push(_simpleVideoPlayer);
return _simpleVideoPlayer;
}
private function menuClickHandler(e:MouseEvent):void {
var nameStr:String = e.currentTarget.name;
trace('e.target.name ' + e.target.name);
trace('e.target.parent.name ' + e.target.parent.name);
trace('e.target.parent.parent.name ' + e.target.parent.name);
try { nameStr = e.target.target.name; } catch (e:* ) { };
trace(nameStr);
// one prev next seven
if (nameStr == 'one') pageFlip.animateTo(1);
if (nameStr == 'seven') pageFlip.animateTo(7);
if (nameStr == 'next') {
pageFlip.animateTo(pageFlip.currentPage + 1);
}
if (nameStr == 'prev') {
if (pageFlip.currentPage>1) pageFlip.animateTo(pageFlip.currentPage - 1);
}
}
private function autoMcClickHandler(e:MouseEvent):void {
if (nav.autoMc.currentFrame == 1) nav.autoMc.gotoAndStop(2); else nav.autoMc.gotoAndStop(1);
}
private function enterFrameHandler(e:Event):void {
if (nav.autoMc.currentFrame == 2){
frameCount++;
if (frameCount > pauseParam) {
frameCount = 0;
if (pageFlip.currentPage==MovieContent.totalFrames) pageFlip.animateTo(1); else
pageFlip.animateTo(pageFlip.currentPage + 1);
trace('animateTo');
}
}
//conerNoSleep.update(pageFlip.bottomContent,pageFlip.dropContent);
}
private function onNavRestoreContent():void {
//trace('page changed '+pageFlip.currentPage);
//if (curPage != pageFlip.currentPage) {
trace('page changed '+pageFlip.currentPage);
nav.curPageTraceTxt.text = ''+pageFlip.currentPage;
//}
if (curPage != pageFlip.currentPage) {
volumeCount = 0;
soundDone.play();
}
curPage = pageFlip.currentPage;
}
private function simpleVideoPlayerVolumControlHandler(e:Event):void {
for (var i:int = 0; i < simpleVideoPlayerArr.length; i++)
simpleVideoPlayerArr[i].volume = 0;
volumeCount += 0.01;
if (volumeCount > 1) volumeCount = 1;
var curPlayer:int = pageFlip.currentPage-2;
if (curPlayer >= 0) if (curPlayer < simpleVideoPlayerArr.length)
simpleVideoPlayerArr[curPlayer].volume = volumeCount;
}
private function pageFlipChangeHandler(e:Event):void {
trace('pageFlip.eventComment '+pageFlip.eventComment);
if (pageFlip.eventComment == 'kirupa') navigateToURL(new URLRequest("http://www.kirupa.com"), "_blank");
if (pageFlip.eventComment == 'game') navigateToURL(new URLRequest("http://www.kongregate.com/games/Lexcuk/rat-rods-ralli"), "_blank");
if (pageFlip.eventComment == 'next') {
if (pageFlip.currentPage<MovieContent.totalFrames) pageFlip.animateTo(pageFlip.currentPage + 1);
}
}
}
}
I made an update and implement a sound button on the pages, video you can download ZIP pageFlip + sound buttons + flash swf files on the pages with sound.
Update Contact :
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email : Fajarudinsidik@gmail.com
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email: Fajarudinsidik@gmail.com
atau Kirimkan Private messanger melalui email dengan klik tombol order dibawah ini :