Upload
angelliya00
View
916
Download
4
Embed Size (px)
Citation preview
用JSFL玩Flash IDE 2012/05/22 EIA
EIA 洪毓翔https://www.facebook.com/angelliya00
- 簡介
- Demo、安裝、快速鍵
- 撰寫
- Tips- 發佈
- 開發經驗
Agenda
Flash JavaScript 應用程式程式設計介面
(JavaScript API)
JSFL:
Demo 幾個我喜歡用的JSFL
執行命令、快速鍵
安裝-1
安裝-2
- 英文版Flash 安裝在非英文語系的系統中,安裝後沒有出現- 不同版本Flash 安裝同一個XMP
(Flash IDE) Help > Manage Extensions
Enable
撰寫JSFL
JSFL 架構 DOM 結構摘要
fl.getDocumentDOM().getTimeline().layers[0].frames[0];
Ex: 選擇影格
結構大約是這樣
fl.closeAll()fl.addEventListener()fl.saveAll()...
flash 物件 (fl)
document.close()document.publish()document.save()//document.selectAll()document.selectNone()...
Document 物件
layer.frameCountlayer.frameslayer.layerType 導引線、遮罩
...
Layer 物件
Frame 物件
frame.actionScriptframe.duration...
for(var f in layer.frames){ if (f==layer.frames[f].startFrame){ keyframes.push({ frame:layer.frames[f], index:f }); } }
Tips
1. 步驟記錄 / History
2. Git kaede / jsfllib
https://github.com/kaede/jsfllibJSFLではじめるFlash制作自動化入門 [単行本]
3. 安裝的MXP
安裝路徑可由fl.configURI 取得
fl.trace("Hello World!!!");fl.outputPanel.trace("Hello World!!!");
alert("Hello World!!!");
第一個 Hello World
Flash IDE裡看得到的各種視窗
Alert()、confirm()、prompt()
alert("Hello World!!!");
confirm("Hello World ?");
prompt("Hello _____ ?","World");
document.xmlPanel()
fl.swfPanels
Pakage MXP Extension
.xmi
Pakage MXP Extension
<macromedia-extensionname=""version="0.2.3"requires-restart="true"type="suite">
<author name="EIA" /><products>
<product name="Flash" version="7" /></products><description>
<![CDATA[]]></description><ui-access>
<![CDATA[]]></ui-access>
<files>
<file source="FrameRate_Transform.jsfl" destination="$flash/Commands" /></files>
</macromedia-extension>
<files><file source="callSample.jsfl" destination="$flash/Javascript" /><file source="05_01.swf" destination="$flash/WindowSWF" />
</files>
file
$flash (fl.configURI)/Users/apple/Library/Application Support/Adobe/Flash CS5.5/en_US/Configuration/
JSFL <-> SWFPanel
MMExecute("fl.runScript(fl.configURI+'Javascript/code.jsfl');
");
*: fl.runScript();
if(fl.swfPanels[x].name == panelName){fl.swfPanels[x].call("callMySWF",arg);break;
} *: swfPanel
開發心得
1. FrameRate_Transform不小心做錯影格數,或是Resize需求時
Frame
ex: FPS 30<->18
Timeline
fl.getDocumentDOM().exitEditMode();modifyTimelineFrameDuration(); var itemNum = fl.getDocumentDOM().library.items.length;for(var i = 0;i<itemNum;i++){
var libraryItem = fl.getDocumentDOM().library.items[i];if(libraryItem.itemType=="movie clip"){
fl.getDocumentDOM().library.selectItem(libraryItem.name);fl.getDocumentDOM().library.editItem();
}modifyTimelineFrameDuration();
}
2. BitmapQuailtyManager調整點陣圖K數用的
有沒有一個面板可以方便調整圖片的品質?
做出來了,但是...
3. E_ColorPicker檢色器
function jsflSetFillColor($color){var rect = fl.getDocumentDOM().getSelectionRect();if(rect != 0){
document.setSelectionRect(rect);fl.getDocumentDOM().setFillColor($color);
}}function jsflStrokeColor($color){
fl.getDocumentDOM().setStrokeColor($color);}
心得
Links
擴充 Adobe Flash CS4 Professionalhttp://help.adobe.com/zh_TW/Flash/10.0_ExtendingFlash/
DOM 結構摘要
http://help.adobe.com/zh_TW/Flash/10.0_ExtendingFlash/WS359E0FA7-1DA9-4c9b-8AE3-CFED6B6B11CE.html
Git- kaede / jsfllibhttps://github.com/kaede/jsfllib
Thanks
photoshop 又是另一個故事了