Main.as=============================================================================================
package src
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
public class Main extends Sprite
{
private var books:Array;
private var book:MovieClip;
private var bookLoader:Loader;
private var viewSec:int;
private var clock:Timer;
public function Main()
{
books = ["Book01.swf", "Book02.swf", "Book03.swf"];
viewSec = 5;
loadBook(1);
setTimer();
setButtons();
}
private function setTimer():void
{
if(clock==null)
{
clock = new Timer(viewSec*1000);
clock.addEventListener(TimerEvent.TIMER, onTimerHandler);
clock.start();
}
}
private function onTimerHandler(e:TimerEvent):void
{
if(book!=null)
{
book.nextPage();
}
}
private function destroyTimer():void
{
if(clock!=null)
{
clock.stop();
clock.removeEventListener(TimerEvent.TIMER, onTimerHandler);
clock = null;
}
}
private function loadBook(bookNum:int):void
{
if(bookNum>books.length)
{
trace("잘못된 입력입니다.");
return;
}
var book_url:String = books[(bookNum-1)];
bookLoader = new Loader();
bookLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
bookLoader.load(new URLRequest(book_url));
}
private function setButtons():void
{
book01_btn.buttonMode = true;
book02_btn.buttonMode = true;
book03_btn.buttonMode = true;
prevPage_btn.buttonMode = true;
stopPage_btn.buttonMode = true;
nextPage_btn.buttonMode = true;
book01_btn.addEventListener(MouseEvent.CLICK, onReleaseHandler);
book02_btn.addEventListener(MouseEvent.CLICK, onReleaseHandler);
book03_btn.addEventListener(MouseEvent.CLICK, onReleaseHandler);
prevPage_btn.addEventListener(MouseEvent.CLICK, onReleaseHandler);
stopPage_btn.addEventListener(MouseEvent.CLICK, onReleaseHandler);
nextPage_btn.addEventListener(MouseEvent.CLICK, onReleaseHandler);
}
private function onCompleteHandler(e:Event):void
{
book = MovieClip(bookLoader.content);
var i:int = bookContainer_mc.numChildren;
while(i>0)
{
bookContainer_mc.removeChildAt(0);
i = bookContainer_mc.numChildren;
}
bookContainer_mc.addChild(book);
}
private function onReleaseHandler(e:MouseEvent):void
{
if(book==null)
{
return;
}
destroyTimer();
switch(e.currentTarget)
{
case book01_btn :
loadBook(1);
break;
case book02_btn :
loadBook(2);
break;
case book03_btn :
loadBook(3);
break;
case prevPage_btn :
book.prevPage();
break;
case nextPage_btn :
book.nextPage();
break;
}
if(e.currentTarget!=stopPage_btn)
{
setTimer();
}
}
}
}
=====================================================================================================
Book02.as, Book03.as는 Book01.as와 동일
Book01.as===========================================================================================
package src
{
import flash.display.*;
import flash.events.*;
import src.util.*;
public class Book01 extends PageUtil
{
public function Book01()
{
totalPageNum = this.totalFrames;
}
}
}
=====================================================================================================
PageUtil.as==========================================================================================
package src.util
{
import flash.display.*;
import flash.events.*;
public class PageUtil extends MovieClip
{
public var totalPageNum:int;
public var pageNum:int = 1;
public function PageUtil()
{
this.gotoAndStop(pageNum);
}
public function nextPage():void
{
if(pageNum<totalPageNum)
{
pageNum += 1;
}
this.gotoAndStop(pageNum);
}
public function prevPage():void
{
if(pageNum>1)
{
pageNum -= 1;
}
this.gotoAndStop(pageNum);
}
}
}
=====================================================================================================
'OM' 카테고리의 다른 글
Flash Player 9의 보안 변경 사항 (0) | 2008.07.23 |
---|---|
Fire Fox Flash Tracer 설정 (5) | 2008.07.18 |
마우스를 따라 다니는 원 (0) | 2008.06.03 |
에어 배포 (badge.swf) (0) | 2008.06.03 |
에어 디스크립터 파일 (0) | 2008.06.03 |
외부에서 load된 swf가 MouseEvent를 가릴때 (4) | 2008.05.18 |
캐릭터 이동 (2) | 2008.05.11 |
Yahoo WebAPI를 이용한 날씨 위젯 2 (0) | 2008.05.11 |
Yahoo WebAPI를 이용한 날씨 위젯 1 (1) | 2008.05.10 |