/FlexPaper_SDK4/src/com/devaldi/controls/flexpaper/Viewer.as
ActionScript | 1893 lines | 1480 code | 356 blank | 57 comment | 457 complexity | 2ecc6e35ac2bd5d5f9276482a85dc632 MD5 | raw file
Large files files are truncated, but you can click here to view the full file
- /*
- Copyright 2009 Erik Engstr??m
-
- This file is part of FlexPaper.
-
- FlexPaper is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, version 3 of the License.
-
- FlexPaper is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with FlexPaper. If not, see <http://www.gnu.org/licenses/>.
- */
-
- package com.devaldi.controls.flexpaper
- {
- import caurina.transitions.Tweener;
-
- import com.devaldi.controls.FlowBox;
- import com.devaldi.controls.FlowVBox;
- import com.devaldi.controls.MatrixTransformer;
- import com.devaldi.controls.Spinner;
- import com.devaldi.controls.ZoomCanvas;
- import com.devaldi.controls.flexpaper.resources.MenuIcons;
- import com.devaldi.controls.flexpaper.utils.StreamUtil;
- import com.devaldi.controls.flexpaper.utils.TextMapUtil;
- import com.devaldi.events.CurrentPageChangedEvent;
- import com.devaldi.events.CursorModeChangedEvent;
- import com.devaldi.events.DocumentLoadedEvent;
- import com.devaldi.events.DocumentPrintedEvent;
- import com.devaldi.events.ErrorLoadingPageEvent;
- import com.devaldi.events.ExternalLinkClickedEvent;
- import com.devaldi.events.FitModeChangedEvent;
- import com.devaldi.events.PageLoadedEvent;
- import com.devaldi.events.PageLoadingEvent;
- import com.devaldi.events.ScaleChangedEvent;
- import com.devaldi.events.SelectionCreatedEvent;
- import com.devaldi.events.SwfLoadedEvent;
- import com.devaldi.events.ViewModeChangedEvent;
- import com.devaldi.streaming.DupImage;
- import com.devaldi.streaming.DupLoader;
- import com.devaldi.streaming.IDocumentLoader;
- import com.devaldi.streaming.IGenericDocument;
- import com.devaldi.streaming.SwfDocument;
-
- import flash.display.AVM1Movie;
- import flash.display.Bitmap;
- import flash.display.BitmapData;
- import flash.display.DisplayObject;
- import flash.display.InteractiveObject;
- import flash.display.Loader;
- import flash.display.MovieClip;
- import flash.display.Shape;
- import flash.display.SimpleButton;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.IOErrorEvent;
- import flash.events.KeyboardEvent;
- import flash.events.MouseEvent;
- import flash.events.ProgressEvent;
- import flash.external.ExternalInterface;
- import flash.filters.DropShadowFilter;
- import flash.geom.Matrix;
- import flash.geom.Point;
- import flash.net.URLRequest;
- import flash.printing.PrintJob;
- import flash.printing.PrintJobOptions;
- import flash.system.ApplicationDomain;
- import flash.system.LoaderContext;
- import flash.system.System;
- import flash.text.TextSnapshot;
- import flash.ui.Keyboard;
- import flash.utils.ByteArray;
- import flash.utils.Timer;
- import flash.utils.escapeMultiByte;
- import flash.utils.setTimeout;
-
- import mx.containers.Box;
- import mx.containers.Canvas;
- import mx.containers.HBox;
- import mx.containers.VBox;
- import mx.controls.Alert;
- import mx.controls.Image;
- import mx.core.Container;
- import mx.core.SpriteAsset;
- import mx.core.UIComponent;
- import mx.events.FlexEvent;
- import mx.events.IndexChangedEvent;
- import mx.managers.CursorManager;
- import mx.resources.ResourceManager;
- import mx.rpc.events.FaultEvent;
- import mx.rpc.events.ResultEvent;
- import mx.rpc.http.HTTPService;
- import mx.managers.PopUpManager;
-
- [Event(name="onDocumentLoaded", type="com.devaldi.events.DocumentLoadedEvent")]
- [Event(name="onPageLoaded", type="com.devaldi.events.PageLoadedEvent")]
- [Event(name="onPageLoading", type="com.devaldi.events.PageLoadingEvent")]
- [Event(name="onDocumentLoading", type="flash.events.Event")]
- [Event(name="onNoMoreSearchResults", type="flash.events.Event")]
- [Event(name="onLoadingProgress", type="flash.events.ProgressEvent")]
- [Event(name="onScaleChanged", type="com.devaldi.events.ScaleChangedEvent")]
- [Event(name="onExternalLinkClicked", type="com.devaldi.events.ExternalLinkClickedEvent")]
- [Event(name="onCurrPageChanged", type="com.devaldi.events.CurrentPageChangedEvent")]
- [Event(name="onViewModeChanged", type="com.devaldi.events.ViewModeChangedEvent")]
- [Event(name="onFitModeChanged", type="com.devaldi.events.FitModeChangedEvent")]
- [Event(name="onCursorModeChanged", type="com.devaldi.events.CursorModeChangedEvent")]
- [Event(name="onDocumentLoadedError", type="flash.events.ErrorEvent")]
- [Event(name="onLogoClicked", type="flash.events.Event")]
- [Event(name="onSelectionCreated", type="com.devaldi.events.SelectionCreatedEvent")]
- [Event(name="onDocumentPrinted", type="com.devaldi.events.DocumentPrintedEvent")]
- [Event(name="onErrorLoadingPage", type="com.devaldi.events.ErrorLoadingPageEvent")]
-
- public class Viewer extends Canvas
- {
- private var _swfFile:String = "";
- private var _swfFileChanged:Boolean = false;
- private var _initialized:Boolean = false;
- private var _loaderptr:Loader;
- private var _libMC:IGenericDocument;
- private var _displayContainer:Container;
- private var _paperContainer:ZoomCanvas;
- private var _swfContainer:Canvas;
- private var _scale:Number = 1;
- private var _pscale:Number = 1;
- private var _swfLoaded:Boolean = false;
- private var _pageList:Array;
- private var _viewMode:String = Viewer.InitViewMode;
- private var _fitMode:String = FitModeEnum.FITNONE;
- public static var InitViewMode:String = ViewModeEnum.PORTRAIT;
- private var _scrollToPage:Number = 0;
- private var _numPages:Number = 0;
- private var _currPage:Number = 0;
- private var _tweencount:Number = 0;
- private var _bbusyloading:Boolean = true;
- private var _zoomtransition:String = "easeOut";
- private var _zoomtime:Number = 0.6;
- private var _fitPageOnLoad:Boolean = false;
- private var _fitWidthOnLoad:Boolean = false;
- private var _dupImageClicked:Boolean = false;
- private var _docLoader:IDocumentLoader;
- private var _progressiveLoading:Boolean = false;
- private var _repaintTimer:Timer;
- private var _loadTimer:Timer;
- private var _frameLoadCount:int = 0;
- private var _adjGotoPage:int = 0;
- private var _zoomInterval:Number = 0;
- private var _inputBytes:ByteArray;
- private var _textSelectEnabled:Boolean = false;
- private var _cursorsEnabled:Boolean = true;
- private var _grabCursorID:Number = 0;
- private var _grabbingCursorID:Number = 0;
- private var _pluginList:Array;
- public static var ViewModeExtList:Array;
- private var _currentExtViewMode:IFlexPaperViewModePlugin;
- private var _minZoomSize:Number = 0.3;
- private var _maxZoomSize:Number = 5;
- private var _searchMatchAll:Boolean = false;
- private var _searchServiceUrl:String = "";
- private var _performSearchOnPageLoad:Boolean = false;
- private var _pendingSearchPage:int = -1;
- private var _skinImg:Bitmap = new MenuIcons.SMALL_TRANSPARENT();
- private var _skinImgc:Bitmap = new MenuIcons.SMALL_TRANSPARENT_COLOR();
- private var _skinImgDo:Image;
-
- public function Viewer(){
- super();
- }
-
- public function get BusyLoading():Boolean {
- return _bbusyloading;
- }
-
- public function set BusyLoading(b:Boolean):void {
- _bbusyloading = b;
- }
-
- public function get libMC():IGenericDocument {
- return _libMC;
- }
-
- public function get IsInitialized():Boolean{
- return _initialized;
- }
-
- public function get SwfLoaded():Boolean{
- return _swfLoaded;
- }
-
- public function get DisplayContainer():Container{
- return _displayContainer;
- }
-
- public function set DisplayContainer(c:Container):void{
- _displayContainer = c;
- }
-
- public function get PaperContainer():ZoomCanvas{
- return _paperContainer;
- }
-
- public function get PageList():Array {
- return _pageList;
- }
-
- public function get DocLoader():IDocumentLoader{
- return _docLoader;
- }
-
- public function set DocLoader(d:IDocumentLoader):void{
- _docLoader = d;
- }
-
- [Bindable]
- public function get ViewMode():String {
- return _viewMode;
- }
-
- [Bindable]
- public function get FitMode():String {
- return _fitMode;
- }
-
- public function set ViewMode(s:String):void {
- if(s!=_viewMode){
- for each (var vme:IFlexPaperViewModePlugin in ViewModeExtList){
- if(s == vme.Name){
- _currentExtViewMode = vme;
- }
- }
-
- if(s == ViewModeEnum.TILE&&ViewMode==ViewModeEnum.PORTRAIT){_pscale = _scale; _scale = 0.23;_paperContainer.verticalScrollPosition = 0;_fitMode = FitModeEnum.FITNONE;}else{_scale = _pscale;}
- _paperContainer.x = (s==ViewModeEnum.PORTRAIT||s==ViewModeEnum.TILE)?2.5:0;
-
- _viewMode = s;
- if(_initialized && _swfLoaded){createDisplayContainer();if(this._progressiveLoading){this.addInLoadedPages(true);}else{reCreateAllPages();}_displayContainer.visible = true;}
- FitMode = FitModeEnum.FITNONE;
-
- if(UsingExtViewMode){
- CurrExtViewMode.setViewMode(s);
- _viewMode = s;
- }
-
- dispatchEvent(new ViewModeChangedEvent(ViewModeChangedEvent.VIEWMODE_CHANGED,_viewMode));
- dispatchEvent(new ScaleChangedEvent(ScaleChangedEvent.SCALE_CHANGED,_scale));
- dispatchEvent(new FitModeChangedEvent(FitModeChangedEvent.FITMODE_CHANGED,_fitMode));
- }
- }
-
- public function set FitMode(s:String):void {
- if(_viewMode == ViewModeEnum.TILE){_fitMode = FitModeEnum.FITNONE;return}
-
- if(s!=_fitMode){
- _fitMode = s;
-
- switch(s){
- case FitModeEnum.FITWIDTH:
- fitWidth();
- break;
-
- case FitModeEnum.FITHEIGHT:
- fitHeight();
- break;
- }
-
- dispatchEvent(new FitModeChangedEvent(FitModeChangedEvent.FITMODE_CHANGED,_fitMode));
- }
- }
-
- public function set ProgressiveLoading(b1:Boolean):void {
- _progressiveLoading = b1;
- }
-
- [Bindable]
- public function get ProgressiveLoading():Boolean {
- return _progressiveLoading;
- }
-
- public function set TextSelectEnabled(b1:Boolean):void {
- _textSelectEnabled = b1;
-
- if(_textSelectEnabled && CursorsEnabled)
- dispatchEvent(new CursorModeChangedEvent(CursorModeChangedEvent.CURSORMODE_CHANGED,"TextSelectorCursor"));
- else
- dispatchEvent(new CursorModeChangedEvent(CursorModeChangedEvent.CURSORMODE_CHANGED,"ArrowCursor"));
- }
-
- [Bindable]
- public function get TextSelectEnabled():Boolean {
- return _textSelectEnabled;
- }
-
- [Bindable]
- public function get CursorsEnabled():Boolean {
- return _cursorsEnabled;
- }
-
- public function set CursorsEnabled(b:Boolean):void {
- _cursorsEnabled = b;
- }
-
- public function setPaperFocus():void{
- _paperContainer.setFocus();
- }
-
- public function get ZoomTransition():String {
- return _zoomtransition;
- }
-
- public function set ZoomTransition(s:String):void {
- _zoomtransition = s;
- }
-
- public function get ZoomTime():Number {
- return _zoomtime;
- }
-
- public function set ZoomTime(n:Number):void {
- _zoomtime = n;
- }
-
- public function get MinZoomSize():Number {
- return _minZoomSize;
- }
-
- public function set MinZoomSize(n:Number):void {
- _minZoomSize = n;
- }
-
- public function get MaxZoomSize():Number {
- return _maxZoomSize;
- }
-
- public function set MaxZoomSize(n:Number):void {
- _maxZoomSize = n;
- }
-
- public function get PluginList():Array{
- return _pluginList;
- }
-
- public function set PluginList(p:Array):void{
- _pluginList = p;
- }
-
- public function get CurrExtViewMode():IFlexPaperViewModePlugin{
- if(_currentExtViewMode != null && _currentExtViewMode.Name == ViewMode)
- return _currentExtViewMode;
- else{
- for each (var vme:IFlexPaperViewModePlugin in ViewModeExtList){
- if(ViewMode == vme.Name){
- _currentExtViewMode = vme;
- }
- }
- }
-
- return _currentExtViewMode;
- }
-
- public function get UsingExtViewMode():Boolean{
- if(ViewMode == ViewModeEnum.PORTRAIT || ViewMode == ViewModeEnum.TILE)
- return false;
- else
- return (CurrExtViewMode!=null && ViewMode == CurrExtViewMode.Name);
- }
-
- public function get ZoomInterval():Number {
- return _zoomInterval;
- }
-
- public function set ZoomInterval(n:Number):void {
- _zoomInterval = n;
- }
-
- [Bindable]
- public function get numPages():Number {
- return _numPages;
- }
-
- private function set numPages(n:Number):void {
- _numPages = n;
- }
-
- [Bindable]
- public function get numPagesLoaded():Number {
- return (_libMC!=null)?_libMC.framesLoaded:0;
- }
-
- private function set numPagesLoaded(n:Number):void {
-
- }
-
- [Bindable]
- public function get currPage():Number {
- return _currPage;
- }
-
- private function set currPage(n:Number):void {
- _currPage = n;
- }
-
- [Bindable]
- public function get SearchMatchAll():Boolean {
- if(SearchServiceUrl!=null && SearchServiceUrl.length>0)
- return false;
- else
- return _searchMatchAll;
- }
-
- public function set SearchMatchAll(b1:Boolean):void {
- _searchMatchAll = b1;
- }
-
- [Bindable]
- public function get SearchServiceUrl():String {
- return _searchServiceUrl;
- }
-
- public function set SearchServiceUrl(s1:String):void {
- _searchServiceUrl = unescape(s1);
- }
-
- public function get FitWidthOnLoad():Boolean {
- return _fitWidthOnLoad;
- }
-
- public function set FitWidthOnLoad(b1:Boolean):void {
- _fitWidthOnLoad = b1;
- }
-
- public function get FitPageOnLoad():Boolean {
- return _fitPageOnLoad;
- }
-
- public function set FitPageOnLoad(b2:Boolean):void {
- _fitPageOnLoad = b2;
- }
-
- public function gotoPage(p:Number, adjGotoPage:int=0):void{
- if(adjGotoPage!=0){_adjGotoPage=adjGotoPage;}
-
- if(p<1 || p-1 >_pageList.length)
- return;
- else{
- if(ViewMode == ViewModeEnum.PORTRAIT){
- _paperContainer.verticalScrollPosition = _pageList[p-1].y+3 + _adjGotoPage;
- }
-
- if(UsingExtViewMode)
- CurrExtViewMode.gotoPage(p,adjGotoPage);
-
- // retry if y is not set
- if(!UsingExtViewMode && p>1 && _pageList[p-1].y ==0)
- {
- flash.utils.setTimeout(gotoPage,200,p);
- }
- else
- _adjGotoPage = 0;
-
- repositionPapers();
- }
- }
-
- public function mvNext():void{
- if(UsingExtViewMode)
- CurrExtViewMode.mvNext();
- else
- if(currPage<numPages){gotoPage(currPage+1);}
- }
-
- public function mvPrev():void{
- if(UsingExtViewMode)
- CurrExtViewMode.mvPrev();
- else
- {
- if(currPage>1){gotoPage(currPage-1);}
- }
- }
-
- public function switchMode(mode:String=null):void{
- if(mode==null){ // no mode passed, just
- if(ViewMode == ViewModeEnum.PORTRAIT){ViewMode = ViewModeEnum.TILE;}
- else if(ViewMode == ViewModeEnum.TILE){_scale = _pscale; ViewMode = ViewModeEnum.PORTRAIT;}
- }else{
- if(ViewMode == mode && ViewMode != ViewModeEnum.PORTRAIT){
- ViewMode = ViewModeEnum.PORTRAIT;
- }
- else
- ViewMode = mode;
- }
- }
-
- public function get PaperVisible():Boolean {
- return _paperContainer.visible;
- }
-
- public function set PaperVisible(b:Boolean):void {
- _paperContainer.visible = b;
- }
-
- public function get SwfFile():String {
- return _swfFile;
- }
-
- public function getSwfFilePerPage(swfFile:String, page:int):String{
- var fileName:String = swfFile;
- var map:String = (fileName.substr(fileName.indexOf("[*,"),fileName.indexOf("]")-fileName.indexOf("[*,")+1));
- var padding:int = parseInt(map.substr(map.indexOf(",")+1,map.indexOf("]")-2));
- fileName = TextMapUtil.StringReplaceAll(fileName,map,padString(page.toString(),padding,"0"));
-
- return encodeURI(fileName);
- }
-
- public function set SwfFile(s:String):void {
- var pagesSplit:Boolean = false;
- s = unescape(s);
-
- if(s.length!=0){
-
- if(s.indexOf("{")>=0 && s.indexOf("}")>0){
- numPages = parseInt(s.substr(s.lastIndexOf(",")+1,s.indexOf("}")-s.lastIndexOf(",")-1));
- s = TextMapUtil.StringReplaceAll(s,"{","");
- s = TextMapUtil.StringReplaceAll(s,","+numPages.toString()+"}","");
- pagesSplit = true;
- }
-
- clearPlugins();
- deleteDisplayContainer();
- deletePageList();
- deleteLoaderPtr();
- deleteLoaderList();
- deleteFLoader();
- deleteSelectionMarker();
- TextMapUtil.totalFragments = "";
-
- if(s!=_swfFile)
- deleteLibMC();
-
- _swfFileChanged = true;
- _frameLoadCount = 0;
-
- if(!pagesSplit)
- _swfFile = encodeURI(s);
- else
- _swfFile = s;
-
- ViewMode = Viewer.InitViewMode;
-
- try{
- new flash.net.LocalConnection().connect('devaldiGCdummy');
- new flash.net.LocalConnection().connect('devaldiGCdummy');
- } catch (e:*) {}
-
- try{flash.system.System.gc();} catch (e:*) {}
-
- if(_docLoader!=null && !_docLoader.hasEventListener(SwfLoadedEvent.SWFLOADED)){
- _docLoader.PagesSplit = pagesSplit;
- _docLoader.addEventListener("onDocumentLoadedError", onDocumentLoadedErrorHandler,false,0,true);
- _docLoader.addEventListener(SwfLoadedEvent.SWFLOADED, swfComplete,false,0,true);
- }
-
- if(_docLoader!=null){
- _docLoader.stream.removeEventListener(ProgressEvent.PROGRESS, onLoadProgress);
- _docLoader.stream.addEventListener(ProgressEvent.PROGRESS, onLoadProgress,false,0,true);
- }
-
- if(_swfFile.length>0 && pagesSplit){
- _loadTimer = new Timer(100);
- _loadTimer.addEventListener("timer",loadtimer);
-
- _docLoader.load(new URLRequest(getSwfFilePerPage(_swfFile,1)),StreamUtil.getExecutionContext()); //new URLRequest(decodeURI(_swfFile))
- }
- else if(_swfFile.length > 0 && !pagesSplit)
- _docLoader.load(new URLRequest(_swfFile),StreamUtil.getExecutionContext());
-
- _paperContainer.verticalScrollPosition = 0;
- createDisplayContainer();
-
- // Changing the SWF file causes the component to invalidate.
- invalidateProperties();
- invalidateSize();
- invalidateDisplayList();
- }
- }
-
- [Bindable]
- public function get Scale():String {
- return _scale.toString();
- }
-
- public function get CurrentlySelectedText():String {
- return _currentlySelectedText;
- }
-
- public function Zoom(factor:Number):void{
- if(factor<_minZoomSize || factor>_maxZoomSize || factor == _scale)
- return;
-
- if((!UsingExtViewMode && _viewMode != ViewModeEnum.PORTRAIT) || (UsingExtViewMode && !CurrExtViewMode.doZoom)){return;}
-
- var _target:DisplayObject;
- _paperContainer.CenteringEnabled = (_paperContainer.width>0);
-
- _tweencount = _displayContainer.numChildren;
-
- for(var i:int=0;i<_displayContainer.numChildren;i++){
- _target = _displayContainer.getChildAt(i);
- _target.filters = null;
- Tweener.addTween(_target, {scaleX: factor, scaleY: factor, time: _zoomtime, transition: _zoomtransition, onComplete: tweenComplete});
- }
-
- FitMode = FitModeEnum.FITNONE;
- _scale = factor;
-
- dispatchEvent(new ScaleChangedEvent(ScaleChangedEvent.SCALE_CHANGED,_scale));
- }
-
- // rotate not finished.
- public function rotate():void{
- var counter:int=0;
- //Tweener.addTween(_displayContainer.getChildAt(currPage-1), {x:_displayContainer.getChildAt(currPage-1).parent.width/2+_displayContainer.getChildAt(currPage-1).height/2, y:((_displayContainer.getChildAt(currPage-1).height/2)-_displayContainer.getChildAt(currPage-1).width/2),rotation:90, time: 0.3, transition: 'easenone', onComplete: tweenComplete});
- }
-
- public function getFitWidthFactor():Number{
- _libMC.gotoAndStop(1);
- return (_paperContainer.width / _libMC.width) - 0.032; //- 0.03;
- }
-
- public function getFitHeightFactor():Number{
- _libMC.gotoAndStop(1);
- return (_paperContainer.height / _libMC.height);
- }
-
- public function fitWidth():void{
- if(_displayContainer.numChildren == 0){return;}
-
- var _target:DisplayObject;
- _paperContainer.CenteringEnabled = (_paperContainer.width>0);
- var factor:Number = getFitWidthFactor();
- _scale = factor;
- _tweencount = _displayContainer.numChildren;
-
- for(var i:int=0;i<_displayContainer.numChildren;i++){
- _target = _displayContainer.getChildAt(i);
- _target.filters = null;
- Tweener.addTween(_target, {scaleX:factor, scaleY:factor,time: 0, transition: 'easenone', onComplete: tweenComplete});
- }
-
- FitMode = FitModeEnum.FITWIDTH;
- dispatchEvent(new ScaleChangedEvent(ScaleChangedEvent.SCALE_CHANGED,_scale));
- }
-
- public function fitHeight():void{
- if(_displayContainer.numChildren == 0){return;}
-
- var _target:DisplayObject;
- _paperContainer.CenteringEnabled = (_paperContainer.height>0);
- var factor:Number = getFitHeightFactor();
- _scale = factor;
- _tweencount = _displayContainer.numChildren;
-
- for(var i:int=0;i<_displayContainer.numChildren;i++){
- _target = _displayContainer.getChildAt(i);
- _target.filters = null;
- Tweener.addTween(_target, {scaleX:factor, scaleY:factor,time: 0, transition: 'easenone', onComplete: tweenComplete});
- }
-
- FitMode = FitModeEnum.FITHEIGHT;
- dispatchEvent(new ScaleChangedEvent(ScaleChangedEvent.SCALE_CHANGED,_scale));
- }
-
- private function tweenComplete():void{
- _tweencount--;
-
- if(_tweencount==0){
-
- if(_loadTimer!=null)
- _loadTimer.start();
-
- repositionPapers();
- }
-
- if(_tweencount < numPagesLoaded - 2 || _tweencount == 0){
- PaperVisible = true;
- }
- }
-
- private function reScaleComplete():void{
- _tweencount--;
-
- if(_tweencount==0){
- if(_displayContainer.numChildren>0){
- _paperContainer.verticalScrollPosition = 0;
-
- if(_loadTimer!=null)
- _loadTimer.start();
-
- repositionPapers();
- }
-
- if(_tweencount < numPagesLoaded - 2 || _tweencount == 0){
- PaperVisible = true;
- }
- }
- }
-
- public function set Scale(s:String):void {
- var diff:Number = _scale - new Number(s);
- _scale = new Number(s);
- }
-
- override protected function createChildren():void {
- // Call the createChildren() method of the superclass.
- super.createChildren();
- this.styleName = "viewerBackground";
-
- // Bind events
- //_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfComplete);
- addEventListener(Event.RESIZE, sizeChanged,false,0,true);
- systemManager.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyboardHandler,false,0,true);
-
- // Create a visible container for the swf
- _swfContainer = new Canvas();
- _swfContainer.visible = false;
- this.addChild(_swfContainer);
-
- // Create a timer to use for repainting
- _repaintTimer = new Timer(5,0);
- _repaintTimer.addEventListener("timer", repaintHandler);
-
- createDisplayContainer();
- }
-
- private function onframeenter(event:Event):void{
- if(!_dupImageClicked){return;}
-
- if(_docLoader!=null && _docLoader.PagesSplit) //todo:links not fixed yet for split up approach
- return;
-
- if(event.target.content != null){
- if (event.target.parent is DupImage &&
- event.target.content.currentFrame!=(event.target.parent as DupImage).dupIndex
- && _dupImageClicked){
- var np:int = event.target.content.currentFrame;
- event.target.content.gotoAndStop((event.target.parent as DupImage).dupIndex);
- gotoPage(np);
- }
- }
- }
-
- private function updComplete(event:Event):void {
- if(_scrollToPage>0){
- _paperContainer.verticalScrollPosition = _pageList[_scrollToPage-1].y;
- _paperContainer.horizontalScrollPosition = 0;
- _scrollToPage = 0;
- }
-
- repaint();
- //repositionPapers();
- }
-
- private function repaintHandler(e:Event):void {
- if(_loadTimer!=null){
- _loadTimer.reset();
- _loadTimer.start();
- }
-
- repositionPapers();
- _repaintTimer.stop();
- _repaintTimer.delay = 5;
- }
-
- private function loadtimer(e:Event):void {
- if(_loadTimer!=null)
- _loadTimer.stop();
-
- repositionPapers();
- }
-
- private function bytesLoaded(event:Event):void{
- event.target.loader.loaded = true;
-
- var bFound:Boolean=false;
-
- // Split up approach
- if(_docLoader!=null && _docLoader.PagesSplit){
- event.target.loader.loading = false;
-
- if(event.target.loader.content!=null && event.target.loader.content is MovieClip){event.target.loader.content.stop();}
-
- for(var i:int=0;i<_docLoader.LoaderList.length;i++){
- if(_docLoader.LoaderList[i].loading){
- bFound = true;
- break;
- }
- }
-
- _frameLoadCount = numPages;
- _bbusyloading = false;
- _displayContainer.visible = true;
- repaint();
-
- if(!bFound){
- dispatchEvent(new PageLoadedEvent(PageLoadedEvent.PAGE_LOADED,event.target.loader.pageStartIndex));
-
- if(_fitPageOnLoad){FitMode = FitModeEnum.FITHEIGHT;_fitPageOnLoad=false;_scrollToPage=1;_pscale=_scale;}
- if(_fitWidthOnLoad){FitMode = FitModeEnum.FITWIDTH;_fitWidthOnLoad=false;_scrollToPage=1;_pscale=_scale;}
-
- }
- }else{ // normal file approach
- if(event.target.loader.content!=null){event.target.loader.content.stop();}
-
- if(!ProgressiveLoading || (ProgressiveLoading && _libMC.framesLoaded == _libMC.totalFrames)){
- for(var i:int=0;i<_docLoader.LoaderList.length;i++){
- if(!_docLoader.LoaderList[i].loaded && !(_docLoader.LoaderList[i].parent is DupImage)){
- _docLoader.LoaderList[i].unloadAndStop(true);
- _docLoader.LoaderList[i].loadBytes(_inputBytes,StreamUtil.getExecutionContext());
- bFound = true;
- break;
- }
- }
- }
-
- if(!bFound){
- _bbusyloading = false;
- if(_fitPageOnLoad){FitMode = FitModeEnum.FITHEIGHT;_fitPageOnLoad=false;_scrollToPage=1;_pscale=_scale;}
- if(_fitWidthOnLoad){FitMode = FitModeEnum.FITWIDTH;_fitWidthOnLoad=false;_scrollToPage=1;_pscale=_scale;}
- _displayContainer.visible = true;
-
- if( _libMC.framesLoaded == _libMC.totalFrames && _frameLoadCount != _libMC.framesLoaded){
- dispatchEvent(new DocumentLoadedEvent(DocumentLoadedEvent.DOCUMENT_LOADED,numPages));
- _frameLoadCount = _libMC.framesLoaded;
- }
- }
- }
- }
-
- public function repositionPapers():void{
- if(_docLoader==null){return;}
- if(_docLoader!=null&&_docLoader.LoaderList==null||numPagesLoaded==0){return;}
-
- {
- var loaderidx:int=0;
- var bFoundFirst:Boolean = false;
- var _thumb:Bitmap;
- var _thumbData:BitmapData;
- var uloaderidx:int=0;
- var p:int=-1;
- var pl:int=0;
-
- for(var i:int=0;i<_pageList.length;i++){
- if(ViewMode == ViewModeEnum.TILE){
- if(!bFoundFirst && ((i) * (_pageList[i].height + 6)) >= _paperContainer.verticalScrollPosition){
- bFoundFirst = true;
- p = i + 1;
- }
- }
- else if(ViewMode == ViewModeEnum.PORTRAIT){
- if(!bFoundFirst)
- {
- var perH:int=0;
- if(_pageList.length>1)
- {
- perH=_pageList[1].y-_pageList[0].y;
- var nowP:Number=_paperContainer.verticalScrollPosition/(perH);
- if(0<nowP<0.5)
- p = 1;
- else if(nowP>=(_pageList.length-0.5)&&nowP<=_pageList.length)
- p = _pageList.length;
- else{
- p = Math.round(nowP)+1;
- if(_pageList.length>p-1&&_paperContainer.verticalScrollPosition<_pageList[p-1].y && p!=_pageList.length){
- p-=1;
- }
- }
- bFoundFirst = true;
- }
- else
- {
- bFoundFirst = true;
- p = 1;
- }
- }
- }
-
- if(p>numPages)
- return;
-
- if(UsingExtViewMode){
- if(currPage != CurrExtViewMode.currentPage)
- dispatchEvent(new CurrentPageChangedEvent(CurrentPageChangedEvent.PAGE_CHANGED,CurrExtViewMode.currentPage));
-
- p = CurrExtViewMode.currentPage;
- currPage = p;
- }
-
- if(p>0&&p!=_currPage){
- currPage = p;
- dispatchEvent(new CurrentPageChangedEvent(CurrentPageChangedEvent.PAGE_CHANGED,p));
- }
-
- if(_libMC!=null&&checkIsVisible(i)){
- if(_pageList[i].numChildren<4){
- if(ViewMode == ViewModeEnum.PORTRAIT){
-
- if(_docLoader.PagesSplit)
- uloaderidx = finduloaderIdx(_pageList[i].dupIndex);
-
- if(!_docLoader.PagesSplit || uloaderidx == -1)
- uloaderidx = (i==_pageList.length-1&&loaderidx+3<_docLoader.LoaderList.length)?loaderidx+3:(loaderidx<_docLoader.LoaderList.length)?loaderidx:0;
-
- if(!_docLoader.PagesSplit){
- if(!_bbusyloading && _docLoader.LoaderList!=null && _docLoader.LoaderList.length>0){
- if(numPagesLoaded>=_pageList[i].dupIndex && _docLoader.LoaderList[uloaderidx] != null && _docLoader.LoaderList[uloaderidx].content==null||(_docLoader.LoaderList[uloaderidx].content!=null&&_docLoader.LoaderList[uloaderidx].content.framesLoaded<_pageList[i].dupIndex)){
- _bbusyloading = true;
- _docLoader.LoaderList[uloaderidx].unloadAndStop(true);
- _docLoader.LoaderList[uloaderidx].loadBytes(_inputBytes,StreamUtil.getExecutionContext());
- flash.utils.setTimeout(repositionPapers,200);
- }
- }
-
- if((i<2||_pageList[i].numChildren==0||(_pageList[i]!=null&&_docLoader.LoaderList[uloaderidx]!=null&&_docLoader.LoaderList[uloaderidx].content!=null&&_docLoader.LoaderList[uloaderidx].content.currentFrame!=_pageList[i].dupIndex)) && _docLoader.LoaderList[uloaderidx] != null && _docLoader.LoaderList[uloaderidx].content != null){
- if(numPagesLoaded >= _pageList[i].dupIndex){
- _docLoader.LoaderList[uloaderidx].content.gotoAndStop(_pageList[i].dupIndex);
- _pageList[i].addChild(_docLoader.LoaderList[uloaderidx]);
- _pageList[i].loadedIndex = _pageList[i].dupIndex;
- /*
- if(_libMC.width*_scale>0&&_libMC.height*_scale>0){
- _libMC.gotoAndStop(_pageList[i].dupIndex);
- _thumbData = new BitmapData(_libMC.width*_scale, _libMC.height*_scale, false, 0xFFFFFF);
- _thumb = new Bitmap(_thumbData);
- _pageList[i].source = _thumb;
- _thumbData.draw(_libMC,new Matrix(_scale, 0, 0, _scale),null,null,null,true);
- } */
- }
- }
- }
-
- if(_docLoader.PagesSplit){
- if(!_bbusyloading && _docLoader.LoaderList!=null && _docLoader.LoaderList.length>0){
- if(_docLoader.LoaderList[uloaderidx] != null && _docLoader.LoaderList[uloaderidx].pageStartIndex != _pageList[i].dupIndex && !_loadTimer.running && !_docLoader.LoaderList[uloaderidx].loading){
- dispatchEvent(new PageLoadingEvent(PageLoadingEvent.PAGE_LOADING,_pageList[i].dupIndex));
- try{
- _pageList[i].resetPage(_libMC.width,_libMC.height,_scale,true);
- _docLoader.LoaderList[uloaderidx].unloadAndStop(true);
- _docLoader.LoaderList[uloaderidx].loaded = false;
- _docLoader.LoaderList[uloaderidx].loading = true;
- _docLoader.LoaderList[uloaderidx].load(new URLRequest(getSwfFilePerPage(_swfFile,_pageList[i].dupIndex)),StreamUtil.getExecutionContext());
- _docLoader.LoaderList[uloaderidx].pageStartIndex = _pageList[i].dupIndex;
- }catch(err:IOErrorEvent){}
-
- repaint();
-
- }
- }
-
- if((_pageList[i].numChildren==0||(_pageList[i]!=null&&_docLoader.LoaderList[uloaderidx]!=null&&_docLoader.LoaderList[uloaderidx].content!=null)) && _docLoader.LoaderList[uloaderidx] != null && _docLoader.LoaderList[uloaderidx].content != null && _docLoader.LoaderList[uloaderidx].loaded && _docLoader.LoaderList[uloaderidx].pageStartIndex == _pageList[i].dupIndex){
- if(numPagesLoaded >= _pageList[i].dupIndex||true){
- if(_docLoader.LoaderList[uloaderidx].parent != null)
- _docLoader.LoaderList[uloaderidx].parent.removeChild(_docLoader.LoaderList[uloaderidx]);
-
- _pageList[i].addChild(_docLoader.LoaderList[uloaderidx]);
- _pageList[i].loadedIndex = _pageList[i].dupIndex;
-
- if(_performSearchOnPageLoad && _pendingSearchPage == _pageList[i].dupIndex){
- _performSearchOnPageLoad = false;
- searchTextByService(prevSearchText)
- }
- }
- }
- }
-
- }else if(ViewMode == ViewModeEnum.TILE && _pageList[i].source == null && (numPagesLoaded >= _pageList[i].dupIndex||_docLoader.PagesSplit)){
- if(!_docLoader.PagesSplit){
- _libMC.gotoAndStop(_pageList[i].dupIndex);
- _thumbData = new BitmapData(_libMC.width*_scale, _libMC.height*_scale, false, 0xFFFFFF);
- _thumb = new Bitmap(_thumbData);
- _pageList[i].source = _thumb;
- _thumbData.draw(_libMC.getDocument(),new Matrix(_scale, 0, 0, _scale),null,null,null,true);
- }else{
-
- if(!_bbusyloading && !_loadTimer.running && _docLoader.LoaderList!=null && _docLoader.LoaderList.length>0 && !_docLoader.LoaderList[uloaderidx].loading){
- dispatchEvent(new PageLoadingEvent(PageLoadingEvent.PAGE_LOADING,_pageList[i].dupIndex));
-
- try{
- _pageList[i].resetPage(_libMC.width,_libMC.height,_scale,true);
- _docLoader.LoaderList[uloaderidx].loaded = false;
- _docLoader.LoaderList[uloaderidx].loading = true;
- _docLoader.LoaderList[uloaderidx].load(new URLRequest(getSwfFilePerPage(_swfFile,_pageList[i].dupIndex)),StreamUtil.getExecutionContext());
- _docLoader.LoaderList[uloaderidx].pageStartIndex = _pageList[i].dupIndex;
- }catch(err:IOErrorEvent){}
-
- repaint();
- }
-
- if(_docLoader.LoaderList[uloaderidx].pageStartIndex == _pageList[i].dupIndex && _pageList[i].loadedIndex != _pageList[i].dupIndex && _docLoader.LoaderList[uloaderidx].content!=null){
- _thumbData = new BitmapData(_docLoader.LoaderList[uloaderidx].width*_scale, _docLoader.LoaderList[uloaderidx].height*_scale, false, 0xFFFFFF);
- _thumb = new Bitmap(_thumbData);
- _pageList[i].source = _thumb;
- _pageList[i].loadedIndex = _pageList[i].dupIndex;
- _thumbData.draw(_docLoader.LoaderList[uloaderidx],new Matrix(_scale, 0, 0, _scale),null,null,null,true);
- }
- }
-
- if(_pluginList!=null){
- for(pl=0;pl<_pluginList.length;pl++){
- _pluginList[pl].drawSelf(i,_thumbData,_scale);
- }
- }
- }
- }
-
- if(UsingExtViewMode){
- CurrExtViewMode.renderPage(i);
- CurrExtViewMode.renderSelection(i,_selectionMarker);
- }
-
- if((_viewMode == ViewModeEnum.PORTRAIT) && _selectionMarker != null){
- if(i+1 == searchPageIndex && _selectionMarker.parent != _pageList[i]){
- _pageList[i].addChildAt(_selectionMarker,_pageList[i].numChildren);
- }else if(i+1 == searchPageIndex && _selectionMarker.parent == _pageList[i]){
- _pageList[i].setChildIndex(_selectionMarker,_pageList[i].numChildren -1);
- }
- }
-
- if(_viewMode != ViewModeEnum.TILE){
- if(_pluginList!=null){
- for(pl=0;pl<_pluginList.length;pl++){
- _pluginList[pl].drawSelf(i,_pageList[i],_scale);
- }
- }
- }
-
- if(_viewMode != ViewModeEnum.TILE && !UsingExtViewMode && _markList[i] != null){
- if(_markList[i].parent != _pageList[i]){
- _pageList[i].addChildAt(_markList[i],_pageList[i].numChildren);
- }else{
- _pageList[i].setChildIndex(_markList[i],_pageList[i].numChildren -1);
- }
- }
-
- if(UsingExtViewMode && _markList[i] != null){
- CurrExtViewMode.renderMark(_markList[i],i);
- }
-
- loaderidx++;
- }else{
- if(_pageList[i].numChildren>0 || _pageList[i].source != null){
- _pageList[i].source = null;
-
- if(_tweencount == 0)
- _pageList[i].resetPage(_libMC.width,_libMC.height,_scale);
- else
- _pageList[i].removeAllChildren();
-
- _pageList[i].loadedIndex = -1;
- }
- }
- }
- }
- }
-
- private function padString(_str:String, _n:Number, _pStr:String):String
- {
- var _rtn:String = _str;
- if ((_pStr == null) || (_pStr.length < 1))
- {
- _pStr = " ";
- }
-
- if (_str.length < _n)
- {
- var _s:String = "";
- for (var i:Number = 0 ; i < (_n - _str.length) ; i++)
- {
- _s += _pStr;
- }
- _rtn = _s + _str;
- }
-
- return _rtn;
- }
-
- private function finduloaderIdx(idx:int):int{
- for(var i:int=0;i<_docLoader.LoaderList.length;i++){
- if(_docLoader.LoaderList[i].pageStartIndex == idx)
- return i;
- }
- for(var i:int=0;i<_docLoader.LoaderList.length;i++){
- if(!checkIsVisible(_docLoader.LoaderList[i].pageStartIndex))
- return i;
- }
- return -1;
- }
-
- public function repaint():void{
- _repaintTimer.reset();_repaintTimer.start();
- }
-
- private function checkIsVisible(pageIndex:int):Boolean{
- try{
- if(ViewMode == ViewModeEnum.TILE){
- return _pageList[pageIndex].parent.y + _pageList[pageIndex].height >= _paperContainer.verticalScrollPosition &&
- (_pageList[pageIndex].parent.y - _pageList[pageIndex].height) < (_paperContainer.verticalScrollPosition + _paperContainer.height);
- }
- else if(!UsingExtViewMode){
- if(_paperContainer.height <= 0)
- return false;
-
- return (_pageList[pageIndex].y + (_pageList[pageIndex].getScaledHeight() + 6)) >= _paperContainer.verticalScrollPosition &&
- (_pageList[pageIndex].y - (_pageList[pageIndex].getScaledHeight() + 6)) < (_paperContainer.verticalScrollPosition + _paperContainer.height);
- }
-
- if(UsingExtViewMode)
- return CurrExtViewMode.checkIsVisible(pageIndex);
-
- }catch(e:Error){
- return false;
- }
- return false;
- }
-
- public function createDisplayContainer():void{
-
-
- if(_skinImgDo != null && _skinImgDo.parent == this){
- removeChild(_skinImgDo);
- _skinImgDo.removeEventListener(MouseEvent.MOUSE_OVER,skinMouseOver);
- _skinImgDo.removeEventListener(MouseEvent.MOUSE_OUT,skinMouseOut);
- _skinImgDo.removeEventListener(MouseEvent.MOUSE_DOWN,skinMouseDown);
- }
-
- _skinImgDo = new Image();
- _skinImgDo.source = _skinImg;
- _skinImgDo.x = this.width-_skinImg.width - 27; _skinImgDo.y = this.height-_skinImg.height - 10;
- _skinImgDo.addEventListener(MouseEvent.MOUSE_OVER,skinMouseOver,false,0,true);
- _skinImgDo.addEventListener(MouseEvent.MOUSE_OUT,skinMouseOut,false,0,true);
- _skinImgDo.addEventListener(MouseEvent.MOUSE_DOWN,skinMouseDown,false,0,true);
- _skinImgDo.buttonMode = true;
- addChild(_skinImgDo);
-
- // Add the swf to the invisible container.
- _swfContainer.removeAllChildren();
- var uic:UIComponent = new UIComponent();
- _swfContainer.addChild(uic);
-
- if(_docLoader!=null && _docLoader.DocumentContainer != null)
- uic.addChild(_docLoader.DocumentContainer);
-
- if(_paperContainer !=null && _paperContainer.parent == this){
- removeChild(_paperContainer);
- _paperContainer.removeEventListener(FlexEvent.UPDATE_COMPLETE,updComplete);
-
- _paperContainer.removeEventListener(MouseEvent.MOUSE_WHEEL, wheelHandler);
- }
-
- _paperContainer = new ZoomCanvas();
- _paperContainer.percentHeight = 100;
- _paperContainer.percentWidth = 100;
- _paperContainer.addEventListener(FlexEvent.UPDATE_COMPLETE,updComplete,false,0,true);
- _paperContainer.x = (ViewMode==ViewModeEnum.PORTRAIT||ViewMode==ViewModeEnum.TILE)?2.5:0;
- _paperContainer.addEventListener(MouseEvent.MOUSE_WHEEL, wheelHandler,false,0,true);
- _paperContainer.setStyle("horizontalGap",1);
- _paperContainer.setStyle("verticalGap",0);
-
- addChildAt(_paperContainer,getChildIndex(_skinImgDo)-1);
-
- try{
- new flash.net.LocalConnection().connect('devaldiGCdummy');
- new flash.net.LocalConnection().connect('devaldiGCdummy');
- } catch (e:*) {}
-
- try{flash.system.System.gc();} catch (e:*) {}
-
- if(_paperContainer.numChildren>0){_paperContainer.removeAllChildren();}
-
- deleteDisplayContainer();
-
- if(_viewMode == ViewModeEnum.TILE){
- _displayContainer = new FlowBox();
- _displayContainer.setStyle("horizontalAlign", "left");
- _paperContainer.horizontalScrollPolicy = "off";
- _scale = 0.243;
- _paperContainer.addChild(_displayContainer);
- _paperContainer.childrenDoDrag = true;
- _initialized=true;
- }
- else if(UsingExtViewMode){
- _initialized = CurrExtViewMode.initComponent(this);
- }
- else{
- _displayContainer = new FlowVBox();
- _displayContainer.setStyle("horizontalAlign", "center");
- _paperContainer.addChild(_displayContainer);
- _paperContainer.childrenDoDrag = true;
- _initialized=true;
- }
-
- _displayContainer.verticalScrollPolicy = "off";
- _displayContainer.horizontalScrollPolicy = "off";
- _displayContainer.setStyle("verticalAlign", "center");
- _displayContainer.percentHeight = 100;
- _displayContainer.percentWidth = (ViewMode==ViewModeEnum.PORTRAIT)?96:100;
- _displayContainer.useHandCursor = true;
- _displayContainer.addEventListener(MouseEvent.ROLL_OVER,displayContainerrolloverHandler,false,0,true);
- _displayContainer.addEventListener(MouseEvent.ROLL_OUT,displayContainerrolloutHandler,false,0,true);
- _displayContainer.addEventListener(MouseEvent.MOUSE_DOWN,displayContainerMouseDownHandler,false,0,true);
- _displayContainer.addEventListener(MouseEvent.MOUSE_UP,displayContainerMouseUpHandler,false,0,true);
- _displayContainer.addEventListener(MouseEvent.DOUBLE_CLICK,displayContainerDoubleClickHandler,false,0,true);
- //_displayContainer.mouseChildren = false;
- _displayContainer.doubleClickEnabled = true;
- }
-
- private function displayContainerrolloverHandler(event:MouseEvent):void{
-
- if(_viewMode==ViewModeEnum.PORTRAIT||(UsingExtViewMode && CurrExtViewMode.supportsTextSelect)){
- if(TextSelectEnabled && CursorsEnabled){
- _grabCursorID = CursorManager.setCursor(MenuIcons.TEXT_SELECT_CURSOR);
- }else if(CursorsEnabled){
- resetCursor();
- }
- }
- }
-
- private function displayContainerMouseUpHandler(event:MouseEvent):void{
- if(_viewMode==ViewModeEnum.PORTRAIT||(UsingExtViewMode && CurrExtViewMode.supportsTextSelect)){
-
- if(CursorsEnabled)
- CursorManager.removeCursor(_grabbingCursorID);
-
- if(TextSelectEnabled && CursorsEnabled){
- _grabCursorID = CursorManager.setCursor(MenuIcons.TEXT_SELECT_CURSOR);
- }else if(CursorsEnabled && !(event.target is IFlexPaperPluginControl) || (event.target.parent !=null && event.target.parent.parent !=null && event.target.parent.parent is IFlexPaperPluginControl)){
- resetCursor();
- }
- }
- }
-
- private function displayContainerDoubleClickHandler(event:MouseEvent):void{
- if(TextSelectEnabled){return;}
- if(ViewMode == ViewModeEnum.PORTRAIT)
- FitMode = (FitMode == FitModeEnum.FITWIDTH)?FitModeEnum.FITHEIGHT:FitModeEnum.FITWIDTH;
-
- if(UsingExtViewMode)
- CurrExtViewMode.handleDoubleClick(event);
- }
-
- private function displayContainerMouseDownHandler(event:MouseEvent):void{
- if(_viewMode==ViewModeEnum.PORTRAIT||(UsingExtViewMode && CurrExtViewMode.supportsTextSelect)){
-
- if(CursorsEnabled)
- CursorManager.removeCursor(_grabCursorID);
-
- if(TextSelectEnabled && CursorsEnabled){
- _grabbingCursorID = CursorManager.setCursor(MenuIcons.TEXT_SELECT_CURSOR);
- }else if(CursorsEnabled){
- _grabbingCursorID = CursorManager.setCursor(MenuIcons.GRABBING);
- }
- }
-
- if(UsingExtViewMode)
- CurrExtViewMode.handleMouseDown(event);
- }
-
- private function displayContainerrolloutHandler(event:Event):void{
- if(CursorsEnabled)
- CursorManager.removeAllCursors();
- }
-
- private function wheelHandler(evt:MouseEvent):void {
- _paperContainer.removeEventListener(MouseEvent.MOUSE_WHEEL, wheelHandler);
-
- var t:Timer = new Timer(1,1);
- t.addEventListener("timer", addMouseScrollListener,false,0,true);
- t.start();
-
- _paperContainer.dispatchEvent(evt.clone());
- }
-
- private function addMouseScrollListener(e:Event):void {
- _paperContainer.addEventListener(MouseEvent.MOUSE_WHEEL, wheelHandler,false,0,true);
- }
-
- private function keyboardHandler(event:KeyboardEvent):void{
- if(event.keyCode == Keyboard.DOWN){
- _paperContainer.verticalScrollPosition = _paperContainer.verticalScrollPosition + 10;
- }
- if(event.keyCode == Keyboard.UP){
- _paperContainer.verticalScrollPosition = _paperContainer.verticalScrollPosition - 10;
- }
- if(event.keyCode == Keyboard.PAGE_DOWN){
- _paperContainer.verticalScrollPosition = _paperContainer.verticalScrollPosition + 300;
- }
- if(event.keyCode == Keyboard.PAGE_UP){
- _paperContainer.verticalScrollPosition = _paperContainer.verticalScrollPosition - 300;
- }
- if(event.keyCode == Keyboard.HOME){
- _paperContainer.verticalScrollPosition = 0;
- }
- if(event.keyCode == Keyboard.END){
- _paperContainer.verticalScrollPosition = _paperContainer.maxVerticalScrollPosition;
- }
- }
-
- private function sizeChanged(evt:Event):void{
- _skinImgDo.source = _skinImg;
- _skinImgDo.x = this.width-_skinImg.width - 27; _skinImgDo.y = this.height-_skinImg.height - 10;
- }
-
- private function skinMouseOver(evt:MouseEvent):void{
- _skinImgDo.addChild(_skinImgc);
- }
-
- private function skinMouseOut(evt:MouseEvent):void{
- if(_skinImgc.parent==_skinImgDo){_skinImgDo.removeChild(_skinImgc);}
- }
-
- private function skinMouseDown(evt:MouseEvent):void{
- dispatchEvent(new Event("onLogoClicked"));
- }
-
- override protected function commitProperties():void {
- super.commitProperties();
-
- if(_swfFileChanged && _swfFile != null && _swfFile.length > 0){ // handler for when the Swf file has changed.
-
- dispatchEvent(new Event("onDocumentLoading"));
-
- _swfFileChanged = false;
- }
- }
-
- private function resizeMc(mc:MovieClip, maxW:Number, maxH:Number=0, constrainProportions:Boolean=true):void{
- maxH = maxH == 0 ? maxW : maxH;
- mc.width = maxW;
- mc.height = maxH;
- if (constrainProportions) {
- mc.scaleX < mc.scaleY ? mc.scaleY = mc.scaleX : mc.scaleX = mc.scaleY;
- }
- }
-
- private function onLoadProgress(event:ProgressEvent):void{
- var e:ProgressEvent = new ProgressEvent("onLoadingProgress")
- e.bytesTotal = event.bytesTotal;
- e.bytesLoaded = event.bytesLoaded;
- dispatchEvent(e);
- }
-
- private function onDocumentLoadedErrorHandler(event:Event):void{
- dispatchEvent(event);
- }
-
- private function swfComplete(event:SwfLoadedEvent):void{
- if(!ProgressiveLoading){
- try{
- if(event.swfObject.content != null && (event.swfObject.content is MovieClip || event.swfObject.content is Bitmap))
- _libMC = new SwfDocument(event.swfObject.content as DisplayObject);
- DupImage.paperSource = _libMC.getDocument();
- }catch(e:Error){
- if(!_docLoader.Resigned){_docLoader.signFileHeader(_docLoader.InputBytes);return;}
- }
-
- if((_libMC == null || (event.swfObject!=null && event.swfObject.content != null && event.swfObject.content is AVM1Movie)) && !_docLoader.Resigned){_docLoader.signFileHeader(_docLoader.InputBytes);return;}
-
- _inputBytes = _docLoader.InputBytes;
-
- if(_libMC.height>0&&_docLoader.LoaderList==null){createLoaderList();}
-
- if(!_docLoader.PagesSplit)
- numPages = _libMC.totalFrames;
-
- _swfLoaded = true
- _libMC.getDocument().cacheAsBitmap = true;
- _libMC.getDocument().opaqueBackground = 0xFFFFFF;
- reCreateAllPages();
-
- _bbusyloading = false;
- repositionPapers();
- //dispatchEvent(new DocumentLoadedEvent(DocumentLoadedEvent.DOCUMENT_LOADED,numPages));
- }else{
- if(event.swfObject.content != null){
- var mobj:Object = event.swfObject.content;
- var firstLoad:Boolean = false;
-
- if(mobj is AVM1Movie || _loaderptr != null){
- _inputBytes = _docLoader.InputBytes;
-
- if(_loaderptr==null){
- _docLoader.postProcessBytes(_inputBytes);
- _loaderptr = new Loader();
- _loaderptr.contentLoaderInfo.addEventListener(Event.COMPLETE, swfComplete,false,0,true);
- }
-
- _docLoader.signFileHeader(_inputBytes,_loaderptr);
- _loaderptr.unloadAndStop(true);
- _loaderptr.loadBytes(_inputBytes,StreamUtil.getExecutionContext());
- }
-
- if(mobj is MovieClip){
- _libMC = new SwfDocument(mobj as MovieClip);
- _libMC.getDocument().cacheAsBitmap = true;
- _libMC.getDocument().opaqueBackground = 0xFFFFFF;
-
- if(_libMC.height>0&&_docLoader.LoaderList==null){createLoaderList();}
- DupImage.paperSource = _libMC.getDocument();
-
- if(!_docLoader.PagesSplit)
- numPages = _libMC.totalFrames;
-
- firstLoad = _pageList == null || (_pageList.length == 0 && numPages > 0);
-
- if(_loaderptr==null){_inputBytes = _docLoader.InputBytes;}else{_inputBytes = _loaderptr.contentLoaderInfo.bytes;}
-
- if(_libMC.framesLoaded > 0)
- addInLoadedPages();
-
- flash.utils.setTimeout(function():void{
- try{
- var bDocLoaded:Boolean=(_libMC.framesLoaded == _…
Large files files are truncated, but you can click here to view the full file