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 閱讀(1768)
評論(0) 編輯 收藏 所屬分類:
flash