posts - 495,comments - 227,trackbacks - 0
http://hi.baidu.com/gacmotor/blog/item/3877d63c7371240bbba1670e.html

我们可以将一个 FlashPaper 文档插入到 Flash的 FLA 源文件中。当把 FLA 文件导出为
SWF 文件时,FlashPaper SWF文件就会嵌入到导出的SWF 文件中。
下面的代码显示了一个普通的Flash FLA 文件是如何使用 loadFlashPaper() 函数载
入一个 FlashPaper SWF 文档的。
function loadFlashPaper(
path_s, // path of SWF to load
dest_mc, // MC which we should replace with the SWF
width_i, // new size of the dest MC
height_i, // new size of the dest MC
loaded_o) // optional: object to be notified that loading is complete
{
var intervalID = 0;
var loadFunc = function()
{
dest_mc._visible = false;
var fp = dest_mc.getIFlashPaper();
if (!fp)
return;
if (fp.setSize(width_i, height_i) == false)
return;
dest_mc._visible = true;
clearInterval(intervalID);
loaded_o.on
Loaded(fp);
}
intervalID = setInterval(loadFunc, 100);
dest_mc.loadMovie(path_s);
}
下面的代码显示已经嵌入一个FlashPaper SWF文档后如何使用 loadFlashPaper() 函
数。
function onLoaded(fp)
{
// loading is complete, so we can now adjust the current page, zoom, etc.
// go to page 50.
fp.setCurrentPage(50);
// change magnification to 33%
fp.setCurrentZoom(33);
}
loadFlashPaper("FlashPaper.swf", theDocMC, theDocMC._width, theDocMC._height, this);
其中 fp.setCurrentPage 值被设置为 50,fp.setCurrentZoom 值被设置为 33,当 FLA
文件被导出时,嵌入的 FlashPaper SWF文件以 33%的放大倍率在导出的 SWF 文件中出现。
Flash Paper 2 生成的SWF可以通过AS载入到Flash影片中使用API进行控制,如下:
createEmptyMovieClip("fPaper", 0);
var my_mcl = new MovieClipLoader();
myListener = new Object();
my_mcl.addListener(myListener);
my_mcl.loadClip("FlashPaper.swf", fPaper);
myListener.onLoadInit = function (target_mc)
{
onEnterFrame = function()
{
fPaper.showZoomUI(false);
fPaper.showPrintUI(false);
fPaper.setCurrentZoom("width");
fPaper.setCurrentPage(2);
delete onEnterFrame;
}
}
Flash Paper 2 API:
FlashPaper组件- -完整的APi
2009年02 月04日 星期三 14:18
它可以载入由FlashPaper2.0生成的SWF文件, 而且提供了一系列设置的函
数,实在是不可多得的好东西!现在推荐下!
下载包含组件说明(英文)
组件说明(英文)
下面是我翻译的部分组件说明(Flash Paper类)可用性:
ActionScript 1.0; Flash Player 6
属性摘要
属性 说明
documentPath:String FlashPaper文件的路径.
borderThickness:Number 边框宽度.
borderColor:String 边框颜色.
UIElements:Object 外观元素的可见性.
currentZoom:Object 默认缩放比例.
width:Number FlashPaper文件的宽度.
height:Number FlashPaper文件的高度.
UIElements属性的图示
事件摘要
事件 说明
onLoadStart = function(target:FlashPaper, type:String) {} 当FlashPape
文件已开始下载文件时调用.
onLoadProgress = function(target:FlashPaper, type:String,
bytesLoaded:Number, bytesTotal:Number) {} 每当FlashPape文件写入硬盘时
调用.
onLoadComplete = function(target:FlashPaper, type:String) {} 当
FlashPape文件完全下载时调用.
onLoadInit = function(target:FlashPaper, type:String) {} 当执行
FlashPape文件第一帧上的动作时调用.
onLoadError = function(target:FlashPaper, type:String,
errorCode:String) {} 当FlashPape文件未能加载时调用.
onDisplay = function(target:FlashPaper, type:String) {} 当FlashPape
文件已经显示时调用.
onUnload = function(target:FlashPaper, type:String) {} 当卸载FlashPape
文件时调用.
onPageChanged = function(target:FlashPaper, type:String,
newPageNumber:Number) {} 当FlashPape文件翻页时调用.
onZoomChanged = function(target:FlashPaper, type:String,
percent:Number) {} 当FlashPape文件缩放时调用.
onSelection = function(target:FlashPaper, type:String) {} 当FlashPape
文件的文字被选择时调用.
onToolChanged = function(target:FlashPaper, type:String,
newTool:String) {} 当更换FlashPape文件的 工具时调用.
onEnableScrolling = function(target:FlashPaper, type:String,
enable:Boolean) {} 当FlashPape文件滚动时调用.
onVisibleAreaChanged = function(target:FlashPaper, type:String) {} 当
FlashPape文件的哭件区域变化时调用.
方法摘要
方法 说明
load(path:String) : Void 载入一个FlashPape文件.
destroy() : Void 卸载FlashPape文件.
move(x:Number, y:Number) : Void 移动FlashPape组件).
toString() : String 返回组件的名称.
getIFlashPaper() : FlashPaper.IFlashPaper 返回一个实现IFlashPaper接口
的对象.
如果这个函数未定义,那么载入的SWF文件不是一个FlashPaper 2.0文件.
如果这个函数存在,但是返回null或undefined,那么载入的SWF文件是一个
FlashPaper 2.0文件,但是还没有载入足够的内容去实现这个API;你必须等待载
入足够的内容并且再次调用它.
getViewerType() : String 返回一个描述包含 SWF文件的接口的类型的字符串.
这个Macromedia FlashPaper标准阅读器总是返回Macromedia FlashPaper
Default Viewer.
getViewerVersion() : Number 返回一个标识这个文件接口版本代号整数.
返回的整数不是连续的,但是这个整数显示阅读器最近的版本 ,而且可以显示除
错或增强的功能.
比如FlashPaper 2.01返回 218.
getCurrentPage() : Number 返回当前页数(与工具栏显示的相同).第一页是
1.
setCurrentPage(pageNumber:Number) : Void 设置当前页数.需要保证此页是可
显示的,但不必调节缩放.
getNumberOfPages() : Number 返回文件总页数.
注意: 也许不是所有的页都是可显示的, 屈就于连接速度.
getLoadedPages() : Number 返回当前载入的页数(可显示的).
这个数值一定在0到getNumberOfPages()之间.

getLoadedPages() == getNumberOfPages()
时,这个文件便完全载入.
showUIElement(part:String, flag:Boolean) : Void 应藏或者显示FlashPaper
文件外观的部件.区分大小写:
"PrevNext" 前一页和后一页按钮的隐藏或显示.
注意: 如果这些按钮是隐藏的,当前页文字框回失效,但不会隐藏.
"Print" 打印按钮的隐藏或显示.
"Tool"所有工具选择按钮的隐藏或显示.
"Zoom" 所有所放控制按钮的隐藏或显示.
"Find"文字搜索框的隐藏或显示.
"Pop" 在浏览器中打开文件按钮的隐藏或显示.
"Sidebar"边框 (显示文件边框)按钮的隐藏或显示.
注意: 这个变量无论这个文件是否包括边框i; 没有边框的文件从不显示边框
按钮.
"Page" 当前页和总页数按钮的隐藏或显示
"Overflow" 超出菜单的隐藏或显示.
注意:这个菜单仅在工具条太狭窄而不能显示时;你不能用这个变量强制显示超
出菜单.
"ZoomKeys" 这个参数不影响外观;他控制是否能用快捷键所放文件(例如,
+, -, p, w).
"Brand" 品牌按钮的隐藏或显示.
"Close" 关闭按钮的隐藏或显示.
traceUIElements() : Void 输出UI Elements的可见性.
printTheDocument() : Boolean 模仿用户单击答应按钮. 在调用函数前,文件必
须完全载入.
getCurrentZoom() : Number 返回当前缩放水平.
注意: 缩放水平总是返回一个数值r;不会返回页面宽度.
setCurrentZoom(percent:Object) : Void 设置当前缩放水平.你可以传入一个
数值指示所放百分比 (例如, 100表示100%)..你也可以传入一个字符串
"width"适合页面宽度,或者传入字符串 "page"适合到页.
setSize(w:Number, h:Number) : Boolean 设置组件的显示排列,单位是象素.
如果成功设置则返回true,不成功则返回false.
goToLinkTarget(linktarget:String, window:Object) : Void 触发锚点或URL
连接请求.
如果传入的字符串是锚点名称:foo,当前视图会移动到那个锚点.window参数
会被忽视.如果foo不是一个有效的锚点名称,则不会执行动作.对于其它的字符
串,会执行getURL(linktarget, window) (想了解更多的信息,请见
ActionScript文档).
enableScrolling(flag:Boolean) : Boolean 阻止用户滚动文件.当滚动被禁止
时:
滚动条不可用,但是可见.
滚动按钮不可用.
使用鼠标滚轮滚动不可用.
getCurrentTool() : String 返回当前活动的工具.如果没有活动的工具,则返回
空字符串.以下是现在支持的值:
"" (没有工具)
"pan" (手形工具)
"select" (文字选择工具)
setCurrentTool(tool:String) : Boolean 设置活动工具.如果参数错误或者该
工具不可用则返回false.以下是现在支持的值:
"" (没有工具)
"pan" (手形工具)
"select" (文字选择工具)
getTextSelectionRange() : FlashPaper.SelectionRange 返回一个描述当前选
择文字的对象.如果没有选择文字,则返回null.
注意:与getVisibleArea()返回的对象不同,这个函数总是返回一个
FlashPaper.SelectionRange,这是一个明确定义的对象, 你可以检查,分解或者
构造一个新的对象.
setTextSelectionRange(sel:FlashPaper.SelectionRange,
skipBroadcast:Boolean) : Void 选择特定的文字.你可以传入null,从而取消
选定所有的文字.无效的范围(没有页面)会被省略(它允许你设定范围 从0到一
个很大的数,例如999999,从而选定所有文档).如果skipBroadcast是false (或
未定义), 会广播onVisibleAreaChanged(). 如果skipBroadcast是true, 则不
会广播onVisibleAreaChanged().
注意:与getVisibleArea()返回的对象不同,这个函数总是返回一个
FlashPaper.SelectionRange,这是一个明确定义的对象, 你可以检查,分解或者
构造一个新的对象.
getSelectedText() : String 以Unicode编码的字符串返回选择的文字.如果每
有被选择的文字,会返回空字符串.
getSidebarWidth() : Number 返回其他按钮的宽度.
没有边框的文件会返回0.
setSidebarWidth(w:Number) : Void 设置其他按钮的宽度.
传入0从而完全隐藏其他按钮.
没有边框的文件会忽视调用.
getFindText() : String 以Unicode编码的字符串返回查找的文字.
setFindText(s:String) : Void 设置文字查找框的文字.
这个函数不会执行查找操作或改变当前选择.
findNext() : Boolean 查找文字查找框中输入的文字.
从当前选择文字的后面开始查找.
要从文档的开头查找,请先调用setSelectionRange(null).
如果找到了文字,调用getTextSelectionRange()返回详细的范围.
getVisibleArea() : Object 返回描述文档当前可见区域的对象.返回的对象有
如下作用:
传入setVisibleArea().
这个可以用来在不同的计算机上观看同一文档,而且可以保持同步.
与先前getVisibleArea()返回的对象进行比较,测试可见区域是否改变.
返回的对象应该被认为是封闭的数据结构.不要试图分解返回的对象,因为在将
来的版本中内容的格式可能不同.
这个对象唯一不变的方法是:
function equals(that:Object):Boolean;
我们可以用它比较两个可见区域是否相同.
setVisibleArea(area:Object, skipBroadcast:Boolean) : Void 调节当前可见
的页/缩放/滚动从而 匹配给定的区域对象.
如果skipBroadcast是false (或未定义), 会广播onVisibleAreaChanged().
如果skipBroadcast是true, 则不会广播onVisibleAreaChanged().
传入的对象必须是先前由getVisibleArea返回的对象.
不要试图创建你自己的对象,因为在将来的版本中内容的格式可能不同.
posted on 2010-04-03 23:35 SIMONE 阅读(1759) 评论(0)  编辑  收藏 所属分类: flash

只有注册用户登录后才能发表评论。


网站导航: