我們可以將一個(gè) FlashPaper 文檔插入到 Flash的 FLA 源文件中。當(dāng)把 FLA 文件導(dǎo)出為
SWF 文件時(shí),F(xiàn)lashPaper SWF文件就會嵌入到導(dǎo)出的SWF 文件中。
下面的代碼顯示了一個(gè)普通的Flash FLA 文件是如何使用 loadFlashPaper() 函數(shù)載
入一個(gè) 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
}
intervalID = setInterval(loadFunc, 100);
dest_mc.loadMovie(path_s);
}
下面的代碼顯示已經(jīng)嵌入一個(gè)FlashPaper SWF文檔后如何使用 loadFlashPaper() 函
數(shù)。
function on
{
// 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 值被設(shè)置為 50,fp.setCurrentZoom 值被設(shè)置為 33,當(dāng) FLA
文件被導(dǎo)出時(shí),嵌入的 FlashPaper SWF文件以 33%的放大倍率在導(dǎo)出的 SWF 文件中出現(xiàn)。
Flash Paper 2 生成的SWF可以通過AS載入到Flash影片中使用API進(jìn)行控制,如下:
createEmptyMovieClip("fPaper", 0);
var my_mcl = new MovieClipLoader();
myListener = new Object();
my_mcl.addListener(myListener);
my_mcl.loadClip("FlashPaper.swf", fPaper);
myListener.on
{
on
{
fPaper.showZoomUI(false);
fPaper.showPrintUI(false);
fPaper.setCurrentZoom("width");
fPaper.setCurrentPage(2);
delete on
}
}
Flash Paper 2 API:
FlashPaper組件- -完整的APi
2009年02 月04日 星期三 14:18
它可以載入由FlashPaper2.0生成的SWF文件, 而且提供了一系列設(shè)置的函
數(shù),實(shí)在是不可多得的好東西!現(xiàn)在推薦下!
下載包含組件說明(英文)
組件說明(英文)
下面是我翻譯的部分組件說明(Flash Paper類)可用性:
ActionScript 1.0; Flash Player 6
屬性摘要
屬性 說明
documentPath:String FlashPaper文件的路徑.
borderThickness:Number 邊框?qū)挾?
borderColor:String 邊框顏色.
UIElements:Object 外觀元素的可見性.
currentZoom:Object 默認(rèn)縮放比例.
width:Number FlashPaper文件的寬度.
height:Number FlashPaper文件的高度.
UIElements屬性的圖示
事件摘要
事件 說明
on
文件已開始下載文件時(shí)調(diào)用.
on
bytesLoaded:Number, bytesTotal:Number) {} 每當(dāng)FlashPape文件寫入硬盤時(shí)
調(diào)用.
on
FlashPape文件完全下載時(shí)調(diào)用.
on
FlashPape文件第一幀上的動作時(shí)調(diào)用.
on
errorCode:String) {} 當(dāng)FlashPape文件未能加載時(shí)調(diào)用.
on
文件已經(jīng)顯示時(shí)調(diào)用.
on
文件時(shí)調(diào)用.
on
newPageNumber:Number) {} 當(dāng)FlashPape文件翻頁時(shí)調(diào)用.
on
percent:Number) {} 當(dāng)FlashPape文件縮放時(shí)調(diào)用.
on
文件的文字被選擇時(shí)調(diào)用.
on
newTool:String) {} 當(dāng)更換FlashPape文件的 工具時(shí)調(diào)用.
on
enable:Boolean) {} 當(dāng)FlashPape文件滾動時(shí)調(diào)用.
on
FlashPape文件的哭件區(qū)域變化時(shí)調(diào)用.
方法摘要
方法 說明
load(path:String) : Void 載入一個(gè)FlashPape文件.
destroy() : Void 卸載FlashPape文件.
move(x:Number, y:Number) : Void 移動FlashPape組件).
toString() : String 返回組件的名稱.
getIFlashPaper() : FlashPaper.IFlashPaper 返回一個(gè)實(shí)現(xiàn)IFlashPaper接口
的對象.
如果這個(gè)函數(shù)未定義,那么載入的SWF文件不是一個(gè)FlashPaper 2.0文件.
如果這個(gè)函數(shù)存在,但是返回null或undefined,那么載入的SWF文件是一個(gè)
FlashPaper 2.0文件,但是還沒有載入足夠的內(nèi)容去實(shí)現(xiàn)這個(gè)API;你必須等待載
入足夠的內(nèi)容并且再次調(diào)用它.
getViewerType() : String 返回一個(gè)描述包含 SWF文件的接口的類型的字符串.
這個(gè)Macromedia FlashPaper標(biāo)準(zhǔn)閱讀器總是返回Macromedia FlashPaper
Default Viewer.
getViewerVersion() : Number 返回一個(gè)標(biāo)識這個(gè)文件接口版本代號整數(shù).
返回的整數(shù)不是連續(xù)的,但是這個(gè)整數(shù)顯示閱讀器最近的版本 ,而且可以顯示除
錯(cuò)或增強(qiáng)的功能.
比如FlashPaper 2.01返回 218.
getCurrentPage() : Number 返回當(dāng)前頁數(shù)(與工具欄顯示的相同).第一頁是
1.
setCurrentPage(pageNumber:Number) : Void 設(shè)置當(dāng)前頁數(shù).需要保證此頁是可
顯示的,但不必調(diào)節(jié)縮放.
getNumberOfPages() : Number 返回文件總頁數(shù).
注意: 也許不是所有的頁都是可顯示的, 屈就于連接速度.
getLoadedPages() : Number 返回當(dāng)前載入的頁數(shù)(可顯示的).
這個(gè)數(shù)值一定在0到getNumberOfPages()之間.
當(dāng)
getLoadedPages() == getNumberOfPages()
時(shí),這個(gè)文件便完全載入.
showUIElement(part:String, flag:Boolean) : Void 應(yīng)藏或者顯示FlashPaper
文件外觀的部件.區(qū)分大小寫:
"PrevNext" 前一頁和后一頁按鈕的隱藏或顯示.
注意: 如果這些按鈕是隱藏的,當(dāng)前頁文字框回失效,但不會隱藏.
"Print" 打印按鈕的隱藏或顯示.
"Tool"所有工具選擇按鈕的隱藏或顯示.
"Zoom" 所有所放控制按鈕的隱藏或顯示.
"Find"文字搜索框的隱藏或顯示.
"Pop" 在瀏覽器中打開文件按鈕的隱藏或顯示.
"Sidebar"邊框 (顯示文件邊框)按鈕的隱藏或顯示.
注意: 這個(gè)變量無論這個(gè)文件是否包括邊框i; 沒有邊框的文件從不顯示邊框
按鈕.
"Page" 當(dāng)前頁和總頁數(shù)按鈕的隱藏或顯示
"Overflow" 超出菜單的隱藏或顯示.
注意:這個(gè)菜單僅在工具條太狹窄而不能顯示時(shí);你不能用這個(gè)變量強(qiáng)制顯示超
出菜單.
"ZoomKeys" 這個(gè)參數(shù)不影響外觀;他控制是否能用快捷鍵所放文件(例如,
+, -, p, w).
"Brand" 品牌按鈕的隱藏或顯示.
"Close" 關(guān)閉按鈕的隱藏或顯示.
traceUIElements() : Void 輸出UI Elements的可見性.
printTheDocument() : Boolean 模仿用戶單擊答應(yīng)按鈕. 在調(diào)用函數(shù)前,文件必
須完全載入.
getCurrentZoom() : Number 返回當(dāng)前縮放水平.
注意: 縮放水平總是返回一個(gè)數(shù)值r;不會返回頁面寬度.
setCurrentZoom(percent:Object) : Void 設(shè)置當(dāng)前縮放水平.你可以傳入一個(gè)
數(shù)值指示所放百分比 (例如, 100表示100%)..你也可以傳入一個(gè)字符串
"width"適合頁面寬度,或者傳入字符串 "page"適合到頁.
setSize(w:Number, h:Number) : Boolean 設(shè)置組件的顯示排列,單位是象素.
如果成功設(shè)置則返回true,不成功則返回false.
goToLinkTarget(linktarget:String, window:Object) : Void 觸發(fā)錨點(diǎn)或URL
連接請求.
如果傳入的字符串是錨點(diǎn)名稱:foo,當(dāng)前視圖會移動到那個(gè)錨點(diǎn).window參數(shù)
會被忽視.如果foo不是一個(gè)有效的錨點(diǎn)名稱,則不會執(zhí)行動作.對于其它的字符
串,會執(zhí)行g(shù)etURL(linktarget, window) (想了解更多的信息,請見
ActionScript文檔).
enableScrolling(flag:Boolean) : Boolean 阻止用戶滾動文件.當(dāng)滾動被禁止
時(shí):
滾動條不可用,但是可見.
滾動按鈕不可用.
使用鼠標(biāo)滾輪滾動不可用.
getCurrentTool() : String 返回當(dāng)前活動的工具.如果沒有活動的工具,則返回
空字符串.以下是現(xiàn)在支持的值:
"" (沒有工具)
"pan" (手形工具)
"select" (文字選擇工具)
setCurrentTool(tool:String) : Boolean 設(shè)置活動工具.如果參數(shù)錯(cuò)誤或者該
工具不可用則返回false.以下是現(xiàn)在支持的值:
"" (沒有工具)
"pan" (手形工具)
"select" (文字選擇工具)
getTextSelectionRange() : FlashPaper.SelectionRange 返回一個(gè)描述當(dāng)前選
擇文字的對象.如果沒有選擇文字,則返回null.
注意:與getVisibleArea()返回的對象不同,這個(gè)函數(shù)總是返回一個(gè)
FlashPaper.SelectionRange,這是一個(gè)明確定義的對象, 你可以檢查,分解或者
構(gòu)造一個(gè)新的對象.
setTextSelectionRange(sel:FlashPaper.SelectionRange,
skipBroadcast:Boolean) : Void 選擇特定的文字.你可以傳入null,從而取消
選定所有的文字.無效的范圍(沒有頁面)會被省略(它允許你設(shè)定范圍 從0到一
個(gè)很大的數(shù),例如999999,從而選定所有文檔).如果skipBroadcast是false (或
未定義), 會廣播on
會廣播on
注意:與getVisibleArea()返回的對象不同,這個(gè)函數(shù)總是返回一個(gè)
FlashPaper.SelectionRange,這是一個(gè)明確定義的對象, 你可以檢查,分解或者
構(gòu)造一個(gè)新的對象.
getSelectedText() : String 以Unicode編碼的字符串返回選擇的文字.如果每
有被選擇的文字,會返回空字符串.
getSidebarWidth() : Number 返回其他按鈕的寬度.
沒有邊框的文件會返回0.
setSidebarWidth(w:Number) : Void 設(shè)置其他按鈕的寬度.
傳入0從而完全隱藏其他按鈕.
沒有邊框的文件會忽視調(diào)用.
getFindText() : String 以Unicode編碼的字符串返回查找的文字.
setFindText(s:String) : Void 設(shè)置文字查找框的文字.
這個(gè)函數(shù)不會執(zhí)行查找操作或改變當(dāng)前選擇.
findNext() : Boolean 查找文字查找框中輸入的文字.
從當(dāng)前選擇文字的后面開始查找.
要從文檔的開頭查找,請先調(diào)用setSelectionRange(null).
如果找到了文字,調(diào)用getTextSelectionRange()返回詳細(xì)的范圍.
getVisibleArea() : Object 返回描述文檔當(dāng)前可見區(qū)域的對象.返回的對象有
如下作用:
傳入setVisibleArea().
這個(gè)可以用來在不同的計(jì)算機(jī)上觀看同一文檔,而且可以保持同步.
與先前getVisibleArea()返回的對象進(jìn)行比較,測試可見區(qū)域是否改變.
返回的對象應(yīng)該被認(rèn)為是封閉的數(shù)據(jù)結(jié)構(gòu).不要試圖分解返回的對象,因?yàn)樵趯?
來的版本中內(nèi)容的格式可能不同.
這個(gè)對象唯一不變的方法是:
function equals(that:Object):Boolean;
我們可以用它比較兩個(gè)可見區(qū)域是否相同.
setVisibleArea(area:Object, skipBroadcast:Boolean) : Void 調(diào)節(jié)當(dāng)前可見
的頁/縮放/滾動從而 匹配給定的區(qū)域?qū)ο?
如果skipBroadcast是false (或未定義), 會廣播on
如果skipBroadcast是true, 則不會廣播on
傳入的對象必須是先前由getVisibleArea返回的對象.
不要試圖創(chuàng)建你自己的對象,因?yàn)樵趯淼陌姹局袃?nèi)容的格式可能不同.