以前在Jsp中使用Flexpaper觉得很不错,使用的时候没有什么过多的问题。现在做了一个Flex的开发,里面要嵌入文档,本以为Flexpaper在Flex中会更好用,但是里面的全屏却不能用。原来只用的官方文档中的一段代码嵌入,发现点击全屏的时候整个页面都花了。<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%" xmlns:fp="com.devaldi.controls.flexpaper.*"> 
<fp:FlexPaperViewer width="520" height="450" Scale="0.6" SwfFile="{escape('Paper.swf')}" /> 
</mx:Application>  后来用了下面这种方法。有一个全屏是可以了,不过不是当前窗口的变化,而是父窗口,那也flex也页面全屏了。<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"
   xmlns:s="library://ns.adobe.com/flex/spark"
   xmlns:mx="library://ns.adobe.com/flex/mx"
   xmlns:fp="com.devaldi.controls.flexpaper.*"
   x="300" y="0" width="699" height="564" close="titlewindow_closeHandler(event)"
   creationComplete="initApp()"
   title="文档查看">
<fx:Script>
<![CDATA[
import mx.core.Application;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;


protected function titlewindow_closeHandler(event:CloseEvent):void
{
PopUpManager.removePopUp(this);
}

protected function btnClose_clickHandler(event:MouseEvent):void
{
PopUpManager.removePopUp(this);
}
import mx.controls.Alert;
[Bindable]
public var SwfPath:String;

public var _aid = 0;//文档ID

[Bindable]
public var _Scale:Number = 1;//缩放比例

[Bindable]
public var _EncodeURI:Boolean = true;

[Bindable]
public var _SwfFile:String = "";//SWF文件路径

[Bindable]
public var _ZoomTransition:String = "easeOut";

[Bindable]
public var _ZoomTime:Number = 0.6;

[Bindable]
public var _ZoomInterval:Number = 0.1;

[Bindable]
public var _MinZoomSize:Number = 0.3;

[Bindable]
public var _MaxZoomSize:Number = 5;

[Bindable]
public var _FitPageOnLoad:Boolean = false;//加载后适合高度

[Bindable]
public var _FitWidthOnLoad:Boolean = false;//加载后适合宽度

[Bindable]
public var _PrintEnabled:Boolean = true;//是否支持打印

[Bindable]
public var _FullScreenAsMaxWindow:Boolean = false;//是否支付全屏

[Bindable]
public var _ProgressiveLoading:Boolean = false;//是否延迟加载

[Bindable]
public var _localeChain:String = "zh_CN";//语言

private var isFocus:Boolean = false;

//初始化参数
private function initApp():void{

var params:Object = Application.application.parameters;
_Scale = getNumber(params, "Scale", 1);
_SwfFile = getString(params, "SwfFile", SwfPath);
_EncodeURI = getNumber(params, "EncodeURI", 1);
_ZoomTransition = getString(params, "ZoomTransition", "easeOut");
_ZoomTime = getNumber(params, "ZoomTime", 0.6);
_MinZoomSize = getNumber(params, "MinZoomSize", 0.2);
_MaxZoomSize = getNumber(params, "MaxZoomSize", 5);
_ZoomInterval = getNumber(params, "ZoomInterval", 0.1);
_FitPageOnLoad = getBoolean(params, "FitPageOnLoad", false);
_FitWidthOnLoad = getBoolean(params, "FitWidthOnLoad", false);
_PrintEnabled = getBoolean(params, "PrintEnabled", true);
_FullScreenAsMaxWindow = getBoolean(params, "FullScreenAsMaxWindow", false);
_ProgressiveLoading = getBoolean(params, "ProgressiveLoading", true);
_localeChain = params["localeChain"];
//注册事件监听
this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);

//开放给外部(javascript)调用
ExternalInterface.addCallback("hasFocus", hasFocus);
//ExternalInterface.addCallback("focus", focus);
ExternalInterface.addCallback("setViewerFocus", setViewerFocus); 
}

private function onMouseOver(event:MouseEvent):void{
this.isFocus = true;
}

private function onMouseOut(event:MouseEvent):void{
this.isFocus = false;
}

public function hasFocus():Boolean{
return isFocus;
}

public function setViewerFocus(isFocus:Boolean):void{
this.FlexPaper.setViewerFocus();
}

/**

* 获取String类型参数
* 如果没有,则返回默认值
**/
private function getString(params:Object, name:String, def:String):String{
if(params[name] != null){
return params[name];
}
return def;
}

private function getNumber(params:Object, name:String, def:Number):Number{
if(params[name] != null){
return params[name];
}
return def;
}

private function getBoolean(params:Object, name:String, def:Boolean):Boolean{
if(params[name] != null){
return params[name] == "true";
}
return def;
}
/* public function download(){
var fileRef:FileReference;
var urlReq:URLRequest;
urlReq = new URLRequest("D:\workspace\tempOffice\2012081503322555579497373889.doc");
fileRef.download(urlReq);
} */
]]>
</fx:Script>
<fp:FlexPaperViewer id="FlexPaper"
width="100%" 
height="100%" 
Scale="{_Scale}" 
SwfFile="{_SwfFile}" 
ZoomTransition="{_ZoomTransition}" 
ZoomTime="{_ZoomTime}" 
MinZoomSize="{_MinZoomSize}"
MaxZoomSize="{_MaxZoomSize}"
ZoomInterval="{_ZoomInterval}"
FitPageOnLoad="{_FitPageOnLoad}"
FitWidthOnLoad="{_FitWidthOnLoad}"
EncodeURI="{_EncodeURI}"
FullScreenAsMaxWindow="{_FullScreenAsMaxWindow}"
ProgressiveLoading="{_ProgressiveLoading}" />
</s:TitleWindow>