锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲日韩精品无码专区,国精无码欧精品亚洲一区,亚洲欧美日韩一区二区三区 http://www.tkk7.com/gembin/category/33693.html<font color="red">OSGi, Flex, GraniteDS, JSF, Eclipse RCP,XML<br/> There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.</font> zh-cnSat, 13 Nov 2010 22:22:16 GMTSat, 13 Nov 2010 22:22:16 GMT60Flex and Deep Linkinghttp://www.tkk7.com/gembin/archive/2010/11/12/337913.htmlgembingembinFri, 12 Nov 2010 07:06:00 GMThttp://www.tkk7.com/gembin/archive/2010/11/12/337913.htmlhttp://www.tkk7.com/gembin/comments/337913.htmlhttp://www.tkk7.com/gembin/archive/2010/11/12/337913.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/337913.htmlhttp://www.tkk7.com/gembin/services/trackbacks/337913.html闃呰鍏ㄦ枃

gembin 2010-11-12 15:06 鍙戣〃璇勮
]]>
Using Flex with Scalahttp://www.tkk7.com/gembin/archive/2010/06/25/324394.htmlgembingembinFri, 25 Jun 2010 01:51:00 GMThttp://www.tkk7.com/gembin/archive/2010/06/25/324394.htmlhttp://www.tkk7.com/gembin/comments/324394.htmlhttp://www.tkk7.com/gembin/archive/2010/06/25/324394.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/324394.htmlhttp://www.tkk7.com/gembin/services/trackbacks/324394.html闃呰鍏ㄦ枃

gembin 2010-06-25 09:51 鍙戣〃璇勮
]]>
Flex 4: change baseColor to chromeColor and useChromeColor=truehttp://www.tkk7.com/gembin/archive/2010/06/18/323834.htmlgembingembinFri, 18 Jun 2010 09:30:00 GMThttp://www.tkk7.com/gembin/archive/2010/06/18/323834.htmlhttp://www.tkk7.com/gembin/comments/323834.htmlhttp://www.tkk7.com/gembin/archive/2010/06/18/323834.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/323834.htmlhttp://www.tkk7.com/gembin/services/trackbacks/323834.html闃呰鍏ㄦ枃

gembin 2010-06-18 17:30 鍙戣〃璇勮
]]>
瑙嗛: 鍋風2 Adobe ROME Adobe Max 2009(COOL!)http://www.tkk7.com/gembin/archive/2009/10/12/297992.htmlgembingembinMon, 12 Oct 2009 14:26:00 GMThttp://www.tkk7.com/gembin/archive/2009/10/12/297992.htmlhttp://www.tkk7.com/gembin/comments/297992.htmlhttp://www.tkk7.com/gembin/archive/2009/10/12/297992.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/297992.htmlhttp://www.tkk7.com/gembin/services/trackbacks/297992.html闃呰鍏ㄦ枃

gembin 2009-10-12 22:26 鍙戣〃璇勮
]]>
Adobe ROME Preview(COOL!)http://www.tkk7.com/gembin/archive/2009/10/12/297989.htmlgembingembinMon, 12 Oct 2009 14:20:00 GMThttp://www.tkk7.com/gembin/archive/2009/10/12/297989.htmlhttp://www.tkk7.com/gembin/comments/297989.htmlhttp://www.tkk7.com/gembin/archive/2009/10/12/297989.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/297989.htmlhttp://www.tkk7.com/gembin/services/trackbacks/297989.html闃呰鍏ㄦ枃

gembin 2009-10-12 22:20 鍙戣〃璇勮
]]>
Adobe labs寮鏀綟C鍜孎B4鐨刾ublic beta涓嬭澆http://www.tkk7.com/gembin/archive/2009/06/10/281035.htmlgembingembinTue, 09 Jun 2009 17:17:00 GMThttp://www.tkk7.com/gembin/archive/2009/06/10/281035.htmlhttp://www.tkk7.com/gembin/comments/281035.htmlhttp://www.tkk7.com/gembin/archive/2009/06/10/281035.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/281035.htmlhttp://www.tkk7.com/gembin/services/trackbacks/281035.html
http://labs.adobe.com

Flash Builder 4瀹夎鍖呭皢浼氭牴鎹綘鎿嶄綔緋葷粺鐨勮璦閰嶇疆涓鴻嫳鏂囧拰綆浣撲腑鏂囩殑閫夋嫨銆備笅闈㈡槸閮ㄥ垎鏉ヨ嚜Release Notes鐨勭炕璇戙?br /> 鏂板鍔熻兘錛?br /> Flex SDK

* 寮曞叆涓涓叏鏂扮殑鍔熻兘寮哄ぇ鐨勭粍浠剁毊鑲ゆ鏋訛紝鍙仛Spark銆?br /> * 鍩轟簬Spark妗嗘灦榪涜鍒濆鍖栫殑緇勪歡鍙互涓嶧lex3涓殑Halo緇勪歡闆嗗悎娣峰悎鍜屽尮閰嶄嬌鐢ㄣ?br /> * 鏀寔澹版槑鍖栫殑錛屽姩鎬佺殑MXML鍥懼艦錛屼互鍙奆XG鏍煎紡鐨勫浘褰€?br /> * 鍏ㄦ柊鐨凷park榛樿澶栬錛屾敮鎸佸叏鏂扮殑鏍峰紡闆嗗悎銆?br /> * 鏇村己澶х殑甯冨眬鏀寔錛屽寘鎷敮鎸丮XML鍥懼艦鍏冪礌錛屽寮哄浜庣炕杞拰鍏朵粬鍙樺艦鐨勬敮鎸侊紝鏀寔鎸囧畾鑷畾涔夌殑甯冨眬錛屽寮簔杞寸鐞嗐?br /> * 涓浜涙柊鐨勫拰澧炲己鐨勭壒鏁堬紝鍖呮嫭鏀寔MXML鍥懼艦鍏冪礌鐨勫姩鐢伙紝閫氳繃鑷畾涔夌殑鍔ㄧ敾淇敼錛屾洿澶氭槗鐢ㄧ殑API璋冪敤鏂瑰紡錛屾洿澶氱殑鑷姩鍖栫殑浜や簰琛屼負銆?br /> * 3D鐗規晥鏀寔
* Flash鍔ㄧ敾婊ら暅錛屽寘鎷琍ixel Bender銆?br /> * 鏇村楂樼駭瀛椾綋鏀寔銆傚熀浜嶧lash Text 寮曟搸鍜孴ext甯冨眬妗嗘灦錛屼篃鏀寔CFF錛圕ompact Font Format錛夈?br /> * 緙栬瘧鍣ㄦц兘鎻愬崌銆?br /> * 鏂扮殑MXML璇█鍔熻兘錛屽寘鎷琈XML 2009鍛藉悕絀洪棿錛屽0鏄庯紝搴撳拰鏍囩瀹氫箟銆?br /> * CSS澧炲己錛屽寘鎷敮鎸佸懡鍚嶇┖闂達紝緇ф壙閫夋嫨鍣紝ID閫夋嫨鍣紝鏇村鐨勭被閫夋嫨鍣ㄥ拰閽堝緇勪歡鐘舵佺殑浼夋嫨鍣ㄦ敮鎸併?br /> * 璇硶澧炲己鍜岀姸鎬乻tates澧炲己銆?br /> * 鏂逛究鐨勬暟鎹弻鍚戠粦瀹氳娉曘?br /> * ASDoc鏀寔鍦╩xml鏂囦歡閲岀殑緇勪歡銆?br /> * 澧炲己鐨凥TML妯℃澘錛屽熀浜嶴WFObject銆?br /> * adobe.com瀛樻斁 SDK榪愯鏃跺叡浜簱RSL銆?br /> * 棰濆鐨勬湰鍦板寲鏀寔錛屾洿濂界殑寮鍙戞湰鍦板寲搴旂敤銆?br />
Flash Builder鏂板姛鑳?br />
* 涓涓潰鍚戝垱寤烘暟鎹湇鍔″簲鐢ㄧ殑鏂板伐浣滄祦錛堝寘鎷珻F,PHP,Java,WebServices錛夈?br /> * 鏀寔鐢盕lash Catalyst鍒涘緩鐨凢XG欏圭洰
* 涓涓叏鏂扮殑Network鐩戞帶錛屽府鍔╄瘖鏂鎴風鍜屾湇鍔″櫒孌電殑閫氳闂
* Flex 鍗曞厓嫻嬭瘯鏁村悎銆?br /> * 鑷姩鐢熸垚getter鍜宻etter銆?br /> * ASDoc鏀寔鍦∕XML鍜孉S涓樉紺篈SDoc娉ㄩ噴
* 鑷畾涔夋枃浠舵ā鏉挎敮鎸丮XML錛孉S鍜孋SS鏂囦歡銆?br /> * 鑷姩鐢熸垚浜嬩歡澶勭悊鍑芥暟緇撴瀯銆?br /> * 璋冭瘯鍣ㄥ寮恒?br /> * Profiler澧炲己銆?br /> * Refactoring澧炲己
* 鏂扮殑Component kit for Flash CS4
* 鏂版敮鎸佸懡浠よ鏋勫緩鎵ц鏂瑰紡銆?br /> * 瀵煎叆鍜屽簲鐢‵lex涓婚鏂扮敤鎴風晫闈€?br /> * 鏂扮殑Flex綾誨寘嫻忚鍣ㄦ浛浠lex Navigator闈㈡澘銆?

gembin 2009-06-10 01:17 鍙戣〃璇勮
]]>
Google閲囩敤FLEX鏋勫緩铏氭嫙紺懼尯Lively [zhuan]http://www.tkk7.com/gembin/archive/2008/12/19/247320.htmlgembingembinFri, 19 Dec 2008 05:30:00 GMThttp://www.tkk7.com/gembin/archive/2008/12/19/247320.htmlhttp://www.tkk7.com/gembin/comments/247320.htmlhttp://www.tkk7.com/gembin/archive/2008/12/19/247320.html#Feedback1http://www.tkk7.com/gembin/comments/commentRss/247320.htmlhttp://www.tkk7.com/gembin/services/trackbacks/247320.html闃呰鍏ㄦ枃

gembin 2008-12-19 13:30 鍙戣〃璇勮
]]>
[鍘熷垱]Example for GraniteDS v1.2.0 OSGi bundle http://www.tkk7.com/gembin/archive/2008/12/10/245388.htmlgembingembinTue, 09 Dec 2008 18:21:00 GMThttp://www.tkk7.com/gembin/archive/2008/12/10/245388.htmlhttp://www.tkk7.com/gembin/comments/245388.htmlhttp://www.tkk7.com/gembin/archive/2008/12/10/245388.html#Feedback7http://www.tkk7.com/gembin/comments/commentRss/245388.htmlhttp://www.tkk7.com/gembin/services/trackbacks/245388.html闃呰鍏ㄦ枃

gembin 2008-12-10 02:21 鍙戣〃璇勮
]]>
[鍘熷垱] Dynamic DataService registration in OSGi Container for Graniteds v1.1.0http://www.tkk7.com/gembin/archive/2008/12/04/244374.htmlgembingembinThu, 04 Dec 2008 06:51:00 GMThttp://www.tkk7.com/gembin/archive/2008/12/04/244374.htmlhttp://www.tkk7.com/gembin/comments/244374.htmlhttp://www.tkk7.com/gembin/archive/2008/12/04/244374.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/244374.htmlhttp://www.tkk7.com/gembin/services/trackbacks/244374.html闃呰鍏ㄦ枃

gembin 2008-12-04 14:51 鍙戣〃璇勮
]]>
[鍘熷垱] Adding OSGi support to graniteds v1.1.0http://www.tkk7.com/gembin/archive/2008/12/03/244230.htmlgembingembinWed, 03 Dec 2008 15:18:00 GMThttp://www.tkk7.com/gembin/archive/2008/12/03/244230.htmlhttp://www.tkk7.com/gembin/comments/244230.htmlhttp://www.tkk7.com/gembin/archive/2008/12/03/244230.html#Feedback2http://www.tkk7.com/gembin/comments/commentRss/244230.htmlhttp://www.tkk7.com/gembin/services/trackbacks/244230.html闃呰鍏ㄦ枃

gembin 2008-12-03 23:18 鍙戣〃璇勮
]]>
Thermo From Adobe Labs http://www.tkk7.com/gembin/archive/2008/09/24/230873.htmlgembingembinWed, 24 Sep 2008 06:33:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/24/230873.htmlhttp://www.tkk7.com/gembin/comments/230873.htmlhttp://www.tkk7.com/gembin/archive/2008/09/24/230873.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/230873.htmlhttp://www.tkk7.com/gembin/services/trackbacks/230873.html Thermo

From Adobe Labs

Product Codename: "Thermo"

"Thermo" is an upcoming Adobe product that makes it easy for designers to create rich Internet application UIs. Thermo allows designers to build on familiar workflows to visually create working applications that easily flow into production and development.

Features

  • Use drawing tools to create original graphics, wireframe an application design, or manipulate artwork imported from Adobe Creative Suite tools.
  • Turn artwork from Adobe Photoshop, Illustrator, or Fireworks directly into functional components that use the original artwork as a “skin”.
  • Define and wire up interactive behavior, such as what to do when a user clicks on something, without having to write code.
  • Easily design UIs that work with dynamic data, such as a list of contacts or product information, without having access to the actual data source. Design-time sample data can be used as a realistic placeholder when laying out an application, testing interactivity, and choreographing motion.

Applications created in Thermo are Flex applications that can be loaded directly into Flex Builder, providing a great roundtrip workflow for designers collaborating with developers. The designer's work can be incorporated directly into the production application with no loss of fidelity, and designers can continue to refine the design throughout the iterative development process.

Check back for more details on Thermo soon!

Thermo
Enlarge
Thermo


Converting Artwork to Functional Components
Enlarge
Converting Artwork to Functional Components


Working with Design Time Sample Data
Enlarge
Working with Design Time Sample Data


Visually Wiring Up Events and Bindings
Enlarge
Visually Wiring Up Events and Bindings


Drawing Tools to Create Original Artwork or to Manipulate Graphics
Enlarge
Drawing Tools to Create Original Artwork or to Manipulate Graphics
Retrieved from "

gembin 2008-09-24 14:33 鍙戣〃璇勮
]]>MAX2007騫翠細鎬葷粨鍗侀」鎶鏈?杞?http://www.tkk7.com/gembin/archive/2008/09/24/230871.htmlgembingembinWed, 24 Sep 2008 06:21:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/24/230871.htmlhttp://www.tkk7.com/gembin/comments/230871.htmlhttp://www.tkk7.com/gembin/archive/2008/09/24/230871.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/230871.htmlhttp://www.tkk7.com/gembin/services/trackbacks/230871.html鍏抽敭瀛? flex max

1. Flex Builder 3/AIR beta2 on lab

榪欎袱鏍蜂笢瑗夸細鍦?span> max 鏈熼棿鏀懼嚭 beta 2 (M5) 搴旇綆楁槸鏃ч椈錛岃繕鏈変漢浜嬪厛涓嶇煡閬撴墠鏄瘮杈冨鎬?/span>beta2 鏈韓鐨勬柊鍔熻兘鍦?wiki 涓婃湁璇︾粏浠嬬粛錛屼絾閲嶇偣涓嶅涔庡湪 IDE 鏈韓鐨勫己鍖栥?span>AIR 鏁村悎銆?span>CSS 璁捐涓?span> Profiler絳夈?/span>姣旇緝閲嶈鐨勬槸澶ф鏈変笁鐐?/span>-鏂板敭浠峰嚭鏉ヤ簡錛屽皢鏉?span> FB 鍒嗕袱縐嶇増鏈?/span>
Standard: $299
Pro: $699
Standard 姣旂幇鍦?span> $499 榪橀檷200鍏冿紝鎵浠ョ幇鍦ㄦ槸嫻佽鏂扮増鏈兘瑕侀檷涓ょ櫨鍚?/span>錛熶笉榪囨病鏈?span> charting component, 榪欎簺鐜╂剰(鍖呭惈鍍?span> AdvancedDataGrid 榪欑 visual data component絳?span>)
閮界Щ鍒?span> Pro 鐗堛?/span>榪欐牱鍋氱殑鎰忎箟寰堟槑鏄撅紝涓昏灝辨槸瑕佸ぇ騫呴檷浣?span> flex 鐨勮繘鍏ラ棬鍧庯紝鍘熸湰瑕?span>$499 鎵嶈兘鏈夋嫢鏈?span> IDE錛岀幇鍦ㄥ彧瑕?span> $299 鍑犱箮鏄漢浜轟拱鐨勮搗錛屽彟涓鏂歸潰錛屽姣忓ぉ闈犲紑鍙?span> flex 涓虹敓鐨勪漢鏉ヨ錛屽皢濂芥枡鐨勪竴嬈″叏濉炲叆pro鐗堬紝鑰屼笖姣旂幇鍦?span> $799 浣庝簡 100鍏冿紝涔熺畻鏄柟渚胯澶氾紝鑷沖皯浠樹竴嬈¢挶灝卞彲浠ヤ拱鍒板叏閮ㄧ殑涓滆タ(鑰屼笉鐢ㄥ啀涓鏍鋒牱鍘諱粯璐圭劧鍚庢嫾璧鋒潵)錛岃繖涓競鍦虹瓥鐣ヤ笉閿欍?/span>-Linux 鐗堥棶甯?/span>
榪欎笘鐣屼笂浼間箮鏈夊緢澶氫漢涓鐩存兂鍦?span> linux 涓婂紑鍙?span> flex錛岃屼笖鍙敤 text editor + sdk 榪樹笉澶燂紝涓瀹氳鏈?span> IDE
鎵嶈繃鐦撅紝鐜板湪鍙О蹇冨鎰忎簡錛?span>beta
鐗堝凡鍙湪 lab 涓婁笅杞姐?/span>-flex testing framework 鏀逛負鍏嶈垂
浠ュ線瑕佺敤 Mercury Quicktest Pro 鏉ュ仛 UI testing 鏃訛紝蹇呴渶瑕佸厛瑁?span> testing framework, 浣嗗畠闇瑕佷竴緇?span> FDS 鐨勫簭鍙鋒墠鑳戒嬌鐢紝鑰屽嚑涔庢病浜轟細鎰挎剰鑺?span> $6,000-$12,000
鐨勪環閽卞幓涔拌繖鐜╂剰銆?/span>涓や釜鏈堝墠鎴戝湪鐜╂煇涓?span>fb3 beta 鐗堟湰鏃訛紝鎰忓鍦ㄥ畨瑁呯洰褰曚笅鍙戠幇灞呯劧鍐呭緩浜嗚繖涓?span> installer錛岃屼笖榪樼湡鐨勫彲浠ヨ涔熷彲浠ョ敤錛岄偅鏃舵垜浠ヤ負鏄彧鏄崟綰殑鎰忓涓嶅皬蹇冨寘浜嗚繘鍘?span>(鎴栨槸 adobe 蹇冩兂鍙嶆鍗栦笉鎺夊共鑴嗘涔愬ぇ鏀鵑?span>)錛岀幇鍦ㄦ墠鐭ラ亾鍘熸潵榪欎簺鏄晠鎰忕殑鍟?span>~

2. Thermo

綺楃暐綆浠嬬湅榪欓噷

Max 鏈熼棿鍙︿竴涓噸澶存垙灝辨槸 Thermo 鍒濅寒鐩革紝緗戠粶涓婂凡緇忔湁涓浜涘獎鐗囧彲鐪嬨?/span>

鐩墠鐪嬫潵瀹冪殑鎿嶄綔鏂瑰紡寰堝儚 adobe 浜у搧鐨勫ぇ鍚堜綋錛屾垜瑙傚療鍒扮殑鍖呭惈-鍙洿鎺ヨ鍏?span> Photoshop PSD 妗o紝騫朵笖褰撶劧淇濈暀鎵鏈夌殑 layer 淇℃伅涓?span> meta info-璇誨叆鐨?span> psd 妗d細浠?span> tracing image 鐨勬柟寮忔樉紺哄湪搴曞眰(榪欐槸璺?span> dreamweaver 涓?span> golive 鍊熸潵鐨勬蹇?span>)-鍙敤綾諱技 edit in place (榪欐槸 fireworks, image ready, golive 鏃朵唬灝辨湁鐨勪笢瑗?span>)灝嗙敾闈㈠厓绱犺漿鎹負 mxml 緇勪歡錛岃屼笖浼氫繚鐣?span> style info-杞崲鎴?span> mxml 鍚庝細浣跨敤鏂扮殑 tag 鏉ユ爣璇嗭紝渚嬪 mx:bitmapGraphic 涓?/span>
mx:borderSkinFactory
-鍙埗浣滃涓?span> state 騫跺湪鍏墮棿鍒囨崲(榪欒窡 fireworks cs3 閲屾柊鍑虹幇鐨?span> page 闈㈡澘姒傚康瀹屽叏涓鑷?span>)-鎷ユ湁 timeline 鍙埗浣?span> transition/effect錛屼緥濡?span> mouseover 鏃舵煇涓璞¤娓愬ぇ鎴栨笎灝忕瓑鍙樺寲錛屼箥鐪嬩箣涓嬪緢鍍忔槸 flash 闄勮韓 XD鏁存褰辯墖鐪嬪畬鍒濇鐨勬劅瑙夊涓嬶細1銆佹垜鑷沖皯鍦?span> thermo 閲岀湅鍒?span> photoshop, flash, fireworks, dreamweaver, image ready, golive 絳夎蔣浠剁殑鍔熻兘涓庡獎瀛愶紝榪欏簲璇ュ彲璇存槸鍚堝茍鍚?span> 1+1 > 2 鐨勪緥瀛愪箣涓鍚?/span>2銆佺洰鍓嶇湅鏉ュ伐浣滄祦紼嬩細鏄繖鏍?/span>Photoshop -> Thermo < -> Flex涔熷氨鏄瑙夌殑涓滆タ 70% 閮藉湪 photoshop/illustrator 閲屽仛濂斤紝鐒跺悗灝?span> psd 涓㈢粰 thermo 鍋?span> interaction design錛屼絾瀹冧篃鍚屾椂鎻愪緵浜?span> mxml 浜х敓鍣紝璁╄璁″笀鍙互灝嗚繘涓姝ヨ法鐣屽皢瑙嗚鍏冪礌杞垚鍙紪紼嬬殑 mxml 緇勪歡錛屾渶鍚庝氦緇欏伐紼嬪笀鍘?span> coding銆?/span>3銆佽嚦浜?span> thermo 瀹炰笉瀹炵敤鍛紵鍡紝榪欒鐪嬩綘鎬庝箞瀹氫綅瀹冦?/span>浠庡巻鍙蹭笂鏉ョ湅錛岀被浼?span> fireworks/image ready 榪欑 psd to html 浜х敓鍣ㄧ殑宸ヤ綔嫻佺▼鍩烘湰涓婁粠鏉ユ病鎴愬姛榪囷紝鍥犱負 one-way 寮忕殑浠?span> psd 鍒?span> html 鎴栬寰堝鏄擄紝浣嗗綋 html 瑕佸洖鍒?span> psd 鏃訛紝鍥伴毦搴﹀氨寰堥珮錛屽埌鏈鍚庨兘鏄庡伐浜烘櫤鎱с忔潵瑙e喅銆?/span>浣嗗鏋滀粠 quick-prototyping or Proof of Concept(POC)鐨勮搴︽潵鐪嬶紝thermo 鍙兘浼氭槸寰堝ソ鐨勫府鎵嬶紝鍥犱負璁捐甯堝彲浠ュ敖鎯呯殑鍙戞尌瑙嗚璁捐灝嗙編緹庣殑鐗堥潰鍋氬嚭鏉ワ紝鐒跺悗閫忚繃 thermo 浜х敓鍙疄闄呮搷浣滅殑 flex 鎺ュ彛錛岃繖鏍峰鎴峰彲浠ョ湅鐨勫埌涔熸懜鐨勫埌灝嗘潵瀹為檯鎴愬搧鍙兘鐨勬牱璨岋紝鍒朵綔鍥㈤槦涔熻兘姣旇緝瀹屾暣鐨勬帉鎻″鎴鋒兂瑕佺殑涓滆タ銆?/span>鑷充簬鐪熸瑕佸紑濮嬪埗浣?span> flex app鏃訛紝鎴戞兂 thermo 鐨勫府鍔╁氨涓嶅ぇ錛屽洜涓鴻涓嶆噦紼嬪簭鐨勮璁″笀鏉ュ府蹇欏垏 ui 緇勪歡錛熷喅瀹氭瘡涓?span> module 璇ュ浣曠敾鍒嗭紵榪欐牱鍐掔殑椋庨櫓瀹炲湪澶ぇ錛屽垏鍑烘潵鐨?span>mxml 澶ф涔熸病娉曠敤錛屾渶鍚庤繕鏄閲嶆柊鏉ャ?/span>浣嗚繖鍙堝甫鍒板彟涓涓浮鐢熻泲銆佽泲鐢熼浮鐨勮侀棶棰樸?/span>Thermo 涔? 鎵浠ヤ細鍑虹幇錛屾槸涓轟簡瑙e喅宸ョ▼甯堜笉鎳傚浣曞皢瑙嗚鐢婚潰杞崲涓烘垚鍝侊紝鍥犳甯屾湜鐢辮璁″笀鏉ュ府蹇欒繖浠朵簨錛屼絾鐢辮璁″笀鏉ュ仛榪欎歡浜嬬己鐐逛篃寰堝錛屼笂闈篃宸茬◢寰В閲婏紝鎵浠ヨ繖 浠嶇劧鏄竴涓袱闅劇殑闂錛屼篃灝辨槸璁捐甯堝府蹇欏垏鐢婚潰錛屽垏鍑烘潵鐨勪笢瑗垮彲鑳藉伐紼嬪笀瑙夊緱涓嶅ソ鐢ㄦ垨鏃犳硶鐢紝浣嗙敱宸ョ▼甯堝幓鍒囩敾闈紝鍙兘鏁存敮紼嬪簭鐢婚潰涔熷氨姣佷簡錛屾墍浠ユ渶緇堜笅 鍦哄樊涓嶅銆?/span>渚濇垜榪欏嚑騫村叏鑱屽紑鍙?span> flash/flex 鐨勭粡楠屾潵鐪嬶紝浠ュ線璁稿浜烘彁鍑虹殑
graphic designer - interaction designer - developer
涓夌駭鍒嗗伐鍒跺彧鑳界畻鏄涓姝ワ紝thermo 鐨勫嚭鐜板彲鑳藉彲浠ュ疄璐ㄥ府鍒?span> interaction designer 鐨勫繖錛屼絾 interaction designer 鍒?span> developer 榪欐浠嶇劧浼氭槸鏂眰錛岃岃В鍐充箣閬擄紝鍒欐槸瑕佹壘鍒頒竴涓柟寮忓皢榪?span> missing link
緇欒ˉ璧鋒潵錛岃繖涔熷皢鏄?span> thermo
鎴愯觸鐨勬渶澶у叧閿?span>(鐩墠鐪嬫潵錛?span>blend/expression/xaml 鐨勫皾璇曚笉鐢氭垚鍔燂紝甯屾湜 adobe鍙互鍙﹁瀹冮旇浜虹溂鐫涗竴浜晩)

3. Flash Player 10 (codename Astro)

FP9 浠?span> as2 鍙戝睍鍒?span> as3 鍙鏄?span> flash 鍗佸勾鏉ユ渶鎯婁漢鐨勫ぇ璺冭繘錛屽嚑涔庡畬鍏ㄦ敼鍐欎簡 RIA 鐨勫巻鍙詫紝鍘熸湰浠ヤ負澶ф寰堥毦鍐嶇湅鍒板悓鏍?span> level 鐨勬敼鐗堬紝浣嗗緢鏄劇劧鎴戦敊浜嗐?/span>FP10 鏂板鐨勫嚑涓噸鐐瑰姛鑳藉ぇ鐣ュ寘鍚?/span>-綆鏄撶殑 hardware 3D support錛氱湅鏉ュ師鏈墦姝諱笉鎰挎剰涓?span> fp 鍔犲叆3d鍔熻兘鐨?span> engineering team 榪樻槸寰堥『搴旀皯鎯呭晩錛屽綋鐒剁洰鍓嶇湅鍒扮殑 3d 鍔熻兘榪橀潪甯告湁闄愶紝鏈変漢縐板畠涓?span> 2.5D錛屼篃鏈変漢縐頒負 card-game style 3D錛屼笉榪囧氨鎴戝 flash player team 鐨勪簡瑙o紝灝嗘潵鍐呭緩鐨?span> 3D 鍔熻兘榪戒笂 Papervision3D 搴旇鏄病闂鐨勩?/span>-advanced text layout: 榪欏寘鍚簡 multi-column 鐨勮蛋鏂囨柟寮忥紝涔熷寘鍚簡 right-to-left layout(RTL)錛岃繖涓や歡浜嬪湪榪囧幓鎴戜滑閮介亣榪囷紝鍘誨勾鍒朵綔鐨勪竴涓ぇ鍨?span>app鍦ㄥ鍥借璦鍖栨椂錛屽鎴峰眳鐒墮棶錛氥庡笇浼潵鏂囩増鐨勬帴鍙f枃瀛楀簲璇ユ槸浠庡彸鍒板乏鍟婏紝鍙互鏀逛竴涓嬪悧錛熴忓綋鏃跺績閲岀殑鍥炵瓟錛氥庡綋鐒跺彲浠ワ紝浣犲厛涔頒笅 flash player team 浜ょ粰鎴戞寚鎸ワ紝鎴戜繚璇佸崐騫村唴鐢熷嚭鏉ョ粰浣?span>…銆忕幇鍦ㄨ繖浠朵簨鍙畝鍗曞浜嗭紝鍙槸 UI Component 閮ㄤ喚瑕佹敼鍐欑殑涓滆タ榪樻槸寰堣垂鍔涘晩銆?/span>-custom filter/effect with “Hydra” image processing language:
榪欑畻鏄潪甯告湁瓚g殑鏂扮帺鎰忥紝Hydra 鏄竴縐嶇被浼?span> C 鐨勮璦錛?span>user
鍙敤瀹冪紪杈戣嚜宸茬嫭闂ㄧ殑 filter/effect錛屼箣鍓嶆湁 Vector/Bitmap API 澶у灝卞凡緇忕帺鍑轟竴鍫嗙柉鐙傜殑鎶婃垙錛岀幇鍦ㄦ湁浜嗘洿 low-level 鐨勫伐鍏鳳紝鍛靛懙鍛碉紝綺懼僵鍙湡錛屽彧鏄互鍚庢暀 flash 鐨勮甯堟槸涓嶆槸涔熻榪涗慨涓涓?span> C/C++
浜?span>? Orz

4. Flash Lite 3 鎺ㄥ嚭

鍔熻兘浠嬬粛鐪?span>榪欓噷閲嶇偣鏈?/span>
-flash home:
榪欎釜綆楁槸鐪熸鐨勬柊鐜╂剰錛屼互寰 flash lite 閮芥槸浠?span> app 鐨勫瀷寮忓瓨鍦ㄤ簬鎵嬫満涓婏紝涔熷氨鏄鐢ㄦ椂鎵嶅惎鍔紝浣?span> flash home 鍒欐槸鐩存帴鐢?span> flash lite
鍙栦唬鎺夋墜鏈虹殑寮鏈虹敾闈紝涓寮鏈哄畬灝辨槸 flash lite 鍦ㄩ偅閲岋紝鑰屼笖瀹冩槸 instant on銆?/span>
涔嬪墠鏇捐亰榪?span> LG phone 鏁翠釜 UI 閮界敤 flash lite 鍐欐垚錛岀幇鍦ㄥ垯鏄洿榪涗竴姝ユ敾鍗犱簡寮鏈虹敾闈紝鏈潵鐨勫彂灞曢潪甯告湁瓚e晩錛屽笇鏈涘畠鑳藉敖蹇拷涓?span> as3 鐨勮剼姝ワ紝鎶婁紶璇翠腑鐨?span> flex framework for mobile 鎼嚭鏉ワ紝灞婃椂鍙氨鐜╁埌涔愮炕澶╀簡銆?/span>-as2 support: 榪欎釜濂藉儚鍠婂緢涔呬簡錛岀幇鍦ㄧ湡鐨勬敮鎸?span> class 浜嗗悧錛?/span>
-flv support:
榪欎釜鍒版槸寰堥噸瑕佺殑鏂板姛鑳斤紝涓嶈繃宸茬粡涓嶆槸鏂伴椈錛屼粖騫村垵鏃跺氨宸插彂琛?/span>
-xml loading:
浠?span> flash lite 2.1 璧峰氨鍙互鏀寔 socket server錛屾墍浠ヨ鍦ㄦ墜鏈轟笂鐜?span> push/pull 鍙樼殑闈炲父綆鍗?/span>
 

5. VOIP in flash

FP 灝嗘敮鎸?span> voip 涓嶆槸鏂伴椈錛屼絾鐪熸鐪嬪埌瀹冭繍浣滆繕鏄悡涓璺熾?/span>Pacifica 鏄繖涓駭鍝佺殑浠e彿錛屽畠灝嗘彁渚涗笅鍒楀姛鑳?span>:Version 1:
* HQ voice chat
* text instant messaging
* presence
* NAT/Firewall traversal
* Ajax/HTML, Flash/Flex
Future Roadmap:
* video chat
* p2p
* AIR
* PSTN Access
瑕佹敞鎰忕殑閲嶇偣鏄繖鍑犱釜瀛?span>: VoIP, SIP, SDP 涓?span> P2P銆?/span>
浣犺兘鎯寵薄涓鏃?span> flash player 鏈韓鍐呭緩 VoIP 涓?span> SIP 鏀寔鍚庯紝鍙兘鐨勫簲鐢ㄦ湁澶氬箍鍚楋紵綆鍗曟潵璇達紝涓婇潰listing 閲岄潰闅忎究涓欏癸紝閮藉彲浠ュ皢榪欎釜涓栫晫鍐嶇炕涓閬嶏紝宸笉澶氬氨鏄繖鏍風殑褰卞搷鍔涖?/span>

6. CoCoMo

榪欏彲涓嶆槸 Adobe 涓?Beach Boys 鐨勫紓涓氱粨鐩熴?/span>CoCoMo 鏄?span> Adobe Connect (涔熷氨鏄?span> Breeze) 鏂扮増鏈殑浠e彿錛屼笉鍑烘墍鏂欐灉鐒剁敤 flex 鍏ㄩ儴鏀瑰啓錛屼絾鏇存儕浜虹殑鏄畠寮濮嬬帺璧峰彟涓涓洿鏈夋綔鍔涚殑甯傚満錛?span>API platform !灝嗘潵 flex developer 鍙搷浣?span> Adobe Connect 鐨?span> API 鏉ュ埗浣滃悇縐?span> desktop sharing, audio/video chat & collaboration錛岀浉杈冧箣涓嬶紝涔嬪墠鐐掔殑鐏儹鐨?span> facebook platform 瀹炲湪鏄病浠涔堝晩(涓嶈繃褰撶劧榪欎袱鑰呭彲浠ユ槸瀹岀編鐨勪簰琛ワ紝涓嶄竴瀹氭槸闆跺悎娓告垙)銆?/span>

7. Share

涓涓?span>鍦ㄧ嚎鏂囦歡銆佸垎浜侀槄璇葷殑騫沖彴錛屾瘡涓?span>user 鏈?span> 1gb 絀洪棿銆?/span>鍚屾牱鐢?span> flex 鍐欐垚錛岀敤浜嗚澶氱啛鎮夌殑緇勪歡錛屼緥濡?span> page component (oh, the great Ely!) 涓?span> flash paper錛屼篃鎻愪緵 REST style API 鍙緵 mesh up錛屽皢鏉ユ墦綆楁暣鍚?span> Buzzword 鎻愪緵緙栬緫鍔熻兘銆?/span>浠庢湰璐ㄦ潵鐪嬶紝online-doc sharing 榪欑涓滆タ褰撶劧鏃╁氨鏈変漢鍋氳繃浜嗭紝緗戠粶涓婇殢渚塊兘鍙互鎵懼埌涓鐙楃エ錛屽悓鏍鋒槸璁╀漢涓婁紶鏂囦歡錛岀劧鍚庤漿妗f垚 swf 鍐嶇敤 flash player 鏉ョ湅錛岄偅 adobe 鍙堜綍鑻﹀憿錛?/span>灝辨垜鏉ョ湅錛?span>Share 鏄?span> adobe 鍦?span> web publishing 鏂歸潰鐨勬柊灝濊瘯錛屼富瑕佸埄鐢ㄧ殑浼樺娍褰撶劧灝辨槸鑷鐨?span> PDF 涓?span> flash player錛屼絾璺熷叾瀹冨崟綰彧鏄?web 2.0 startup 鍏徃涓嶅悓鐨勬槸錛?span>adobe 蹇冮噷鎯崇殑搴旇鏄畠瀹屾暣鐨?span> electronic publishing 騫沖彴錛屼粠鍐呭銆佸埗浣溿佺敓鎴愬埌娑堣垂錛屽笇鏈涜兘閫氶氬寘涓嬫潵錛屽緩绔嬪ぇ涓緇熺殑浣撶郴錛屾垜鐩鎬俊 Share 涓庝箣鍓嶄粙緇嶈繃鐨?span> ebook reader 閮藉彧鏄繖涓鍒掍笅鐨勯儴浠戒駭鐗╋紝鏈潵鍙戝睍榪樺緟瑙傚療銆?/span>

8. C/C++ to AS3 conversion

 LLVM

榪欎釜鐜╂剰闈炲父鏈夎叮錛岃繖浣嶇浜哄啓浜嗕竴涓?span> compiler錛屽彲浠ュ皢 C/C++ 鐨?span> code 鐩存帴杞瘧鎴?span> AS3錛岀劧鍚庡啀緙栬瘧鎴?span> swf 渚?span> flash/flex/air 浣跨敤錛岀幇鍦烘渶鍙︿漢闇囨捈鐨?span> demo 灝辨槸浠栫洿鎺ュ皢 Quake (涓涓?span> doom-like 鐨勫皠鍑繪父鎴?span>) 緙栬瘧鎴?span> flash 鐗堢劧鍚庣帺浜嗚搗鏉ワ紝浣犲彲浠ユ兂瑙佺幇鍦轟細鐤媯鍒頒粈涔堢▼搴?span>!! (鏇撮叿鐨勬槸榪欎綅宸ョ▼甯堣繕鏄竴鍓鉤娣$殑琛ㄦ儏錛岀湡姝f槸鎵尓鍚冭佽檸鐨勬瀬鑷磋〃鐜板晩)銆?/span>濂斤紝鐑儏瀹屾瘯錛屾帴鐫鍒嗘瀽甯堜笂韜?/span>鎴戜富瑕佹濊冪殑鏄笅鍒椾笁鐐癸細1. 涓轟綍闇瑕佽繖涓笢瑗匡紵涓婂浘涓洓涓钀藉啓鐫 (ruby, php, python, lua), 瀹冧唬琛ㄤ粈涔堬紵
2.
榪欎笢瑗胯儗鍚庣殑浼佸浘鏄粈涔堬紵
3.
璋佷細鑾風泭錛熷畠鍙互鐢ㄥ湪浠涔堝湴鏂癸紵鍙戝睍娼滃姏鏈夊澶э紵
鍩烘湰涓婃垜宸茬粡鏈変簡涓濂楀ぇ鑷寸殑鎯蟲硶涓庣悊璁猴紝浣嗗緢鏈夊叴瓚f兂鍚惉鍚勪綅鐨勬兂娉曘?/span>

9. Adobe 涔頒笅 Buzzword

榪欎歡浜嬪叾瀹炲嚑涓湀鍓嶅氨鏈夐澹板嚭鏉ワ紝褰?adobe 絎竴鎵瑰伐紼嬪笀榪涢┗ buzzword 鍔炲叕瀹ゆ椂錛屾槑鐪間漢灝辯煡閬撴槸鎬庝箞鍥炰簨浜嗭紝鍙嶈屾瘮杈冨鎬殑涓轟綍 SlideRocket 涓鐩磋皥涓嶄笅鏉?span>(瓚佷漢瀹惰繕娌?span> IPO 鍓嶅鎾掔偣閽卞揩鐐規悶瀹氬皢鏉ユ瘮杈冨ソ鍔炰簨鍟?span>)錛?/span>浠庡競鍦鴻搴︽潵鐪嬶紝Buzzword(綾諱技 word 鐨勬枃瀛楃紪杈戝櫒) 涓?span> SlideRocket(綾諱技 powerpoint 鐨勭畝鍗曡蔣浠?span>) 搴旇鏄綋浠?span> RIA 涓氱晫鏈淇變唬琛ㄦт笌鏉浼ゅ姏鐨勪袱鏀?span>app錛屽畠浠嚑涔庢湁鎾煎姩 Office 甯傚満鐨勮兘鍔涳紝鍥犳 adobe 瀵瑰畠浠殑閲嶈涓庡叧鐖卞彲璇存槸鍏舵潵鏈夎嚜錛屼撼涓嶅鎬?/span>姣旇緝鍊煎緱瑙傚療鐨勫皢鏄紝榪熸棭 Adobe 鎵嬩笂浼氭湁 word, powerpoint 涓?span> excel 鍏煎鐨勮蔣浠?span>(褰撶劧鏄?span> built with Flex/AIR)錛屽眾鏃朵笘鐣屼笂鍙湁鍥涢棿涓繪祦鍟嗕笟鍏徃鏈夋垚鐔熺殑 office 浜у搧(OO.o 榪欑灝卞厛涓嶇畻榪涙潵錛屽憙錛屽ソ錛屽叾瀹炶繕鏈?span> IBM Lotus Symphony錛屼笉榪囩煡鍚嶅害涓嶉珮涔熷厛鏀句竴杈?span>)-Microsoft: Office 鐨勯湼涓誨湴浣嶆棤搴哥疆鐤戯紝runs on desktop only
-Apple: Mac
涓婄殑 Office 闇鎬富
, runs on desktop only
-Google: Doc
緋誨垪浜у搧錛岀畻鏄洰鍓?span> web-based
閲屾渶鎴愮啛鐨勪竴瀹?/span>

-Adobe:
鍚屾牱涓?span> web-based, 浣嗗洜涓洪噰鐢?span> flash 鍒朵綔錛屽洜姝ゆ搷浣滄帴鍙d笌鍔熻兘灝嗘槑鏄捐秴瓚?span> google docs (
涓庡叾瀹?span> ajax 緋誨垪鐨?span> office-apps)鑰屽叾涓彧鏈?span> google 涓?span> adobe 宸茬粡寰堢Н鏋佸湪 web-based 榪欏潡娣辮?span>(MS鐨?span> office live 鍒欒繕鏈垚鐔?span>)錛屼粠瓚嬪娍鏉ョ湅(on-line, access everywhere, collaboration, messaging)錛?span>web寮忕殑浜у搧鍓嶉旀槸姣旇緝鐪嬪ソ鐨勶紝鑰屼粠鎶鏈潰鏉ョ湅錛?span>flash寮忕殑 web app 寰寰鍙堟瘮 ajax 寮忕殑濂戒竴鐐?span>(鑷沖皯鍦?span> tool 綰ц繖涓鍩?span>)錛屾墍浠?span> adobe 鍙互璇存槸宸茬粡绔欏湪姣旇緝鏈夊埄鐨?span> position錛岃繖鏄緢鏈夎叮涔熷煎緱瑙傚療鐨勪簨(鑰屼笖瑕佺潄澶х溂鐫涘ソ濂界湅鐫)銆?/span>

10. Flash CS4 涓?/strong> Fireworks

CS4Flash 閮ㄤ喚鏈夎澶氫笉閿欑殑鏂板姛鑳斤紝渚嬪鍙湪 authoring time live preview video content錛?span>timeline 澶ф敼鑹?span>, tween 鏂瑰紡鏇磋嚜鐢憋紝浠ュ強紲炲鐨?span> IK 鏁堟灉錛屾垜鎯沖鑳芥帉鎻¤繖浜涙柊涓滆タ鐨勫濯掍綋璁捐甯堟潵璇達紝榪欏簲璇ユ槸闈炲父媯掔殑娑堟伅銆?/span>Fireworks 閮ㄤ喚鍒欐槸寮鴻皟涓?span> flex 鐨勬暣鍚堬紝渚嬪鍙湪 fireworks 閲屽埗浣滅粍浠朵笌style/skin 鐒跺悗鐩存帴杈撳嚭鏈?span> scale-9 鐨?span> swc 緇?span> flex 鐢紝鍩烘湰涓婇兘榪樻槸寰堢矖嫻呯殑鏁村悎灝濊瘯錛屾湭鏉?span>12涓湀榪樿澶氬姫鍔涖?/span>

鎬葷粨

緇艱浠ヤ笂 highlight 鍑烘潵鐨?span> 10鐐癸紝濡傛灉浣犱粩緇嗗幓鎺ㄦ暡姣忎竴鐐硅儗鍚庢墍浠h〃鐨勬剰涔夛紝騫舵濊冨畠浠湭鏉ュ彲鑳界殑褰卞搷鍔涗笌鍐插嚮鏁堝簲錛屾垨璁鎬綘浼氬儚鎴戜竴鏍瘋寰楀叏韜彂鐑績璺沖姞蹇?/span>鍩烘湰涓婅瀵熻繖嬈?span> Max 鎻湶鐨勬秷鎭紝鎰熻寰堝儚鍦ㄧ湅楂樻墜瀵瑰紙錛屽綋浣犵湅鍒板眬涓竴姝ユ鏃訛紝灝辯煡閬撹儨璐熷凡瀹氾紝鏈潵鎵鏈夌殑姝ユ暟鐨嗗凡紜畾錛岀粨鏋滃彧鏄椂闂撮棶棰橈紝鑰屾洿浠や漢鎯婅鐨勬槸錛屽線寰榪欒嚧鑳滅殑涓姝ユ槸濡傛鐨勪笉鏄庢樉涓庝笉緇忔剰錛岃交杞葷殑婊戣繃灝卞喅瀹氫簡鏈潵錛岃繖鎵嶆槸鐪熸璁╀漢鑷徆寮楀鐨勫湴鏂廣?/span>鎯沖埌榪欓噷錛屽彧鑳借榪欑湡鐨勬槸涓涓?span> exciting times錛屽緢楂樺叴鑳界疆韜叾涓佷翰鑷粡鍘嗚屼笉鏄湪鍗佸勾鍚庡洖澶存潵璧炲徆褰撳勾銆?/span>



gembin 2008-09-24 14:21 鍙戣〃璇勮
]]>
Flex Shared Objecthttp://www.tkk7.com/gembin/archive/2008/09/23/230662.htmlgembingembinTue, 23 Sep 2008 06:15:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/23/230662.htmlhttp://www.tkk7.com/gembin/comments/230662.htmlhttp://www.tkk7.com/gembin/archive/2008/09/23/230662.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/230662.htmlhttp://www.tkk7.com/gembin/services/trackbacks/230662.html闃呰鍏ㄦ枃

gembin 2008-09-23 14:15 鍙戣〃璇勮
]]>
Loading style sheets at run time (from adobe)http://www.tkk7.com/gembin/archive/2008/09/19/229935.htmlgembingembinFri, 19 Sep 2008 06:49:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/19/229935.htmlhttp://www.tkk7.com/gembin/comments/229935.htmlhttp://www.tkk7.com/gembin/archive/2008/09/19/229935.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/229935.htmlhttp://www.tkk7.com/gembin/services/trackbacks/229935.html闃呰鍏ㄦ枃

gembin 2008-09-19 14:49 鍙戣〃璇勮
]]>
Flex3 RSLhttp://www.tkk7.com/gembin/archive/2008/09/18/229760.htmlgembingembinThu, 18 Sep 2008 09:40:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/18/229760.htmlhttp://www.tkk7.com/gembin/comments/229760.htmlhttp://www.tkk7.com/gembin/archive/2008/09/18/229760.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/229760.htmlhttp://www.tkk7.com/gembin/services/trackbacks/229760.html闃呰鍏ㄦ枃

gembin 2008-09-18 17:40 鍙戣〃璇勮
]]>
Mate: Event driven framework for Flexhttp://www.tkk7.com/gembin/archive/2008/09/18/229734.htmlgembingembinThu, 18 Sep 2008 08:45:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/18/229734.htmlhttp://www.tkk7.com/gembin/comments/229734.htmlhttp://www.tkk7.com/gembin/archive/2008/09/18/229734.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/229734.htmlhttp://www.tkk7.com/gembin/services/trackbacks/229734.html  闃呰鍏ㄦ枃

gembin 2008-09-18 16:45 鍙戣〃璇勮
]]>
Excluding font outlines in Flex can shave off over 200kb!http://www.tkk7.com/gembin/archive/2008/09/18/229673.htmlgembingembinThu, 18 Sep 2008 05:50:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/18/229673.htmlhttp://www.tkk7.com/gembin/comments/229673.htmlhttp://www.tkk7.com/gembin/archive/2008/09/18/229673.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/229673.htmlhttp://www.tkk7.com/gembin/services/trackbacks/229673.html

Often when you need to embed a font you also need to include ‘bold’ and sometimes ‘italic’ styles. Sometimes you need more than one fontFamily. Flex by default will embed all glyphs of a fontFamily. Embedding every glyph if generally unnecessary. By restricting the character set (’unicode-range’) you can shave off between 50-100kb or more per font style (FontFamilies have varying amounts of glyphs and obviously varying complexities of outlines which effects how much you can save). Anyway by setting unicode-range for fonts we managed to shave 300kb off our application, I wasn’t expecting it to be so much so thought worth a blog ;)

@font-face {
src: url("assets/Arial.ttf");
fontFamily: Arial;
advancedAntiAliasing: true;
unicode-range: U+0030-U+0039, /* 0-9 */
U+0041-U+005A, /* Uppercase A-Z */
U+0061-U+007A, /* Lowercase a-z */
U+0021-U+002F, /* !"#$%&amp;'()*+,-./ */
U+003A-U+0040, /* :;&lt;=&gt;?@ */
U+005B-U+0060, /* [\]^_ */
U+00A3-U+00A3, /* £ */
U+00A9-U+00A9, /* © */
U+00AE-U+00AE /* ® */
/* U+00BF-U+0259 FOREIGN CHRS */
}

if anyone knows of other ranges you think can be generally useful please let me know ;)



gembin 2008-09-18 13:50 鍙戣〃璇勮
]]>
Memory Profile of MXML vs AS3 for ItemRenderershttp://www.tkk7.com/gembin/archive/2008/09/18/229667.htmlgembingembinThu, 18 Sep 2008 05:33:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/18/229667.htmlhttp://www.tkk7.com/gembin/comments/229667.htmlhttp://www.tkk7.com/gembin/archive/2008/09/18/229667.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/229667.htmlhttp://www.tkk7.com/gembin/services/trackbacks/229667.html闃呰鍏ㄦ枃

gembin 2008-09-18 13:33 鍙戣〃璇勮
]]>
Book: Learning Flex 3: Getting up to Speed with Rich Internet Applicationshttp://www.tkk7.com/gembin/archive/2008/09/10/228130.htmlgembingembinWed, 10 Sep 2008 05:31:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/10/228130.htmlhttp://www.tkk7.com/gembin/comments/228130.htmlhttp://www.tkk7.com/gembin/archive/2008/09/10/228130.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/228130.htmlhttp://www.tkk7.com/gembin/services/trackbacks/228130.html闃呰鍏ㄦ枃

gembin 2008-09-10 13:31 鍙戣〃璇勮
]]>
Flex 3 Compiler Design(from adobe)http://www.tkk7.com/gembin/archive/2008/09/10/228089.htmlgembingembinWed, 10 Sep 2008 03:01:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/10/228089.htmlhttp://www.tkk7.com/gembin/comments/228089.htmlhttp://www.tkk7.com/gembin/archive/2008/09/10/228089.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/228089.htmlhttp://www.tkk7.com/gembin/services/trackbacks/228089.html闃呰鍏ㄦ枃

gembin 2008-09-10 11:01 鍙戣〃璇勮
]]>
List of 33 Flex APIs, Libraries, Components and Toolshttp://www.tkk7.com/gembin/archive/2008/09/05/227204.htmlgembingembinFri, 05 Sep 2008 06:03:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/05/227204.htmlhttp://www.tkk7.com/gembin/comments/227204.htmlhttp://www.tkk7.com/gembin/archive/2008/09/05/227204.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/227204.htmlhttp://www.tkk7.com/gembin/services/trackbacks/227204.html闃呰鍏ㄦ枃

gembin 2008-09-05 14:03 鍙戣〃璇勮
]]>
Flex璧勬枡http://www.tkk7.com/gembin/archive/2008/09/04/226924.htmlgembingembinThu, 04 Sep 2008 06:17:00 GMThttp://www.tkk7.com/gembin/archive/2008/09/04/226924.htmlhttp://www.tkk7.com/gembin/comments/226924.htmlhttp://www.tkk7.com/gembin/archive/2008/09/04/226924.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/226924.htmlhttp://www.tkk7.com/gembin/services/trackbacks/226924.html闃呰鍏ㄦ枃

gembin 2008-09-04 14:17 鍙戣〃璇勮
]]>
Eclipse vs OSGI and Solstice vs RCPhttp://www.tkk7.com/gembin/archive/2008/08/26/224476.htmlgembingembinTue, 26 Aug 2008 06:05:00 GMThttp://www.tkk7.com/gembin/archive/2008/08/26/224476.htmlhttp://www.tkk7.com/gembin/comments/224476.htmlhttp://www.tkk7.com/gembin/archive/2008/08/26/224476.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/224476.htmlhttp://www.tkk7.com/gembin/services/trackbacks/224476.html闃呰鍏ㄦ枃

gembin 2008-08-26 14:05 鍙戣〃璇勮
]]>
flex 鍚勭粍浠跺搴旂殑鏍峰紡灞炴?/title><link>http://www.tkk7.com/gembin/archive/2008/08/22/223669.html</link><dc:creator>gembin</dc:creator><author>gembin</author><pubDate>Fri, 22 Aug 2008 02:19:00 GMT</pubDate><guid>http://www.tkk7.com/gembin/archive/2008/08/22/223669.html</guid><wfw:comment>http://www.tkk7.com/gembin/comments/223669.html</wfw:comment><comments>http://www.tkk7.com/gembin/archive/2008/08/22/223669.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/gembin/comments/commentRss/223669.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/gembin/services/trackbacks/223669.html</trackback:ping><description><![CDATA[     鎽樿:   <a href='http://www.tkk7.com/gembin/archive/2008/08/22/223669.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/gembin/aggbug/223669.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/gembin/" target="_blank">gembin</a> 2008-08-22 10:19 <a href="http://www.tkk7.com/gembin/archive/2008/08/22/223669.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Flex浜嬩歡鏈哄埗鐨勫伐浣滄祦紼?http://www.tkk7.com/gembin/archive/2008/08/22/223668.htmlgembingembinFri, 22 Aug 2008 02:17:00 GMThttp://www.tkk7.com/gembin/archive/2008/08/22/223668.htmlhttp://www.tkk7.com/gembin/comments/223668.htmlhttp://www.tkk7.com/gembin/archive/2008/08/22/223668.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/223668.htmlhttp://www.tkk7.com/gembin/services/trackbacks/223668.html浜嬩歡鏈哄埗鐨勫伐浣滄祦紼?/span>

鍏充簬浜嬩歡嫻?/strong>

鐩爣瀵硅薄錛氭淳鍙戜簨浠剁殑瀵硅薄
褰撲簨浠跺彂鐢熷悗鐢熸垚涓涓惡甯︽暟鎹殑瀵硅薄錛岀劧鍚庢鏌ョ洰鏍囧璞℃槸鍚﹀瓨鍦ㄦ樉紺哄眰涓紝騫墮亶鍘嗕粠鏍瑰鍣ㄤ竴鐩村埌鐩爣瀵硅薄鎵鍦ㄤ綅緗殑鎵鏈夊璞★紝浠ユ爲褰㈠娍琛ㄧず銆傝嚜鍔ㄦ嫻嬫墍緇忚繃鐨勮妭鐐規槸鍚︽敞鍐屼簡鐩戝惉鍣ㄣ?br id="e5.g" />
浜嬩歡嫻佹殫榪愯嫻佺▼鍒嗕負3姝ワ細
  • 鎹曡幏闃舵錛氭崟鑾蜂簨浠?capturing錛屼粠鏍硅妭鐐瑰紑濮嬮『搴忚屼笅錛屾嫻嬫瘡涓妭鐐規槸鍚︽敞鍐屼簡鐩戝惉鍣ㄣ傚悓鏃訛紝Flex 灝嗕簨浠跺璞$殑currentTarget 鍊兼敼涓哄綋鍓嶆鍦ㄦ嫻嬬殑瀵硅薄銆傚鏋滄敞鍐屼簡鐩戝惉鍣紝鍒欒皟鐢ㄧ洃鍚嚱鏁般?br id="y1rr3" />
  • 鐩爣闃舵錛氭嫻嬬洰鏍囩殑鐩戝惉鍣?targeting錛氳Е鍙戝湪鐩爣瀵硅薄鏈韓娉ㄥ唽鐨勭洃鍚▼搴?br id="ti7p" />
  • 鍐掓場闃舵錛氫簨浠跺啋娉?bubbling錛氫粠鐩爣鑺傜偣鍒版牴鑺傜偣錛屾嫻嬫瘡涓妭鐐規槸鍚︽敞鍐屼簡鐩戝惉鍣紝濡傛灉鏈夛紝鍒欒皟鐢ㄧ洃鍚嚱鏁般?/li>

姣忎釜浜嬩歡瀵硅薄閮芥湁浠ヤ笅灞炴э細
target錛氫簨浠剁殑媧懼彂鑰?br id="oani0" /> currentTarget錛氬綋鍓嶆鍦ㄦ嫻嬬殑鐨勫璞★紝甯姪璺熻釜浜嬩歡浼犳挱鐨勮繃紼嬨?br id="vp2g" />
榛樿鎯呭喌涓嬶紝鎹曡幏鍔熻兘澶勪簬鍏抽棴鐘舵侊紝涓鑸病鏈夊繀瑕佽繘琛屾崟鑾瘋窡韙?br id="tcta" /> 浜嬩歡鍙湪bubbles 灞炴т負true 鏃舵墠榪涜鍐掓場錛屽彲浠ュ啋娉$殑浜嬩歡鍖呮嫭錛歝hange銆乧lick銆乨oubleClick銆乲eyDown銆乲eyUp銆乵ouseDown銆? mouseUp銆傚茍涓斾笉鑳藉湪涓涓洃鍚櫒涓悓鏃舵墦寮鎹曡幏鍜屽啋娉″姛鑳斤紝瑕佸仛鍒拌繖涓鐐癸紝鍙兘娉ㄥ唽涓や釜鐩戝惉鍣紝鍒嗗埆瀹炵幇銆?br id="r61a" />
鐜板湪鏉ョ湅涓涓緥瀛愶細
Xml浠g爜
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">     
  3.     <mx:Style source="style.css" />  
  4.      
  5.     <mx:Script>  
  6.         <![CDATA[ 
  7.             import flash.events.MouseEvent; 
  8.             
  9.             internal function initApp():void{ 
  10.                 canvas_1.addEventListener(MouseEvent.CLICK,pressBtn,true); 
  11.                 canvas_2.addEventListener(MouseEvent.CLICK,pressBtn); 
  12.                 btn_1.addEventListener(MouseEvent.CLICK,pressBtn); 
  13.                 btn_2.addEventListener(MouseEvent.CLICK,pressBtn); 
  14.             } 
  15.             internal function output(msg:String):void{ 
  16.                 debug_txt.text += msg+"\n"; 
  17.             }            
  18.             internal function pressBtn(evt:MouseEvent):void{ 
  19.                 output("鏄惁鍐掓場--"+evt.bubbles); 
  20.                 output("鐩爣瀵硅薄-- "+evt.target+" -- "+evt.eventPhase); 
  21.                 output("閬嶅巻瀵硅薄-- "+evt.currentTarget); 
  22.                 output("------------"); 
  23.             } 
  24.         ]]>  
  25.     </mx:Script>  
  26.     <mx:Canvas id = "canvas_1" styleName="box" x="37" y="63" width="445" height="216">  
  27.         <mx:Text x="13" y="10" text="Canvas_1"/>  
  28.         <mx:Canvas id="canvas_2" styleName="box" x="10" y="102" width="173" height="90">  
  29.             <mx:Text x="10" y="10" text="Canvas_2"/>  
  30.             <mx:Button id = "btn_2" x="10" y="38" label="Button_2"/>             
  31.         </mx:Canvas>  
  32.         <mx:Button id="btn_1" x="16" y="38" label="Button_1"/>  
  33.     </mx:Canvas>  
  34.     <mx:TextArea id="debug_txt" styleName="textBox" x="37" y="304" height="198" width="445"/>  
  35.      
  36. </mx:Application>  
 
鍦ㄧ洃鍚嚱鏁?pressBtn 涓殑灞炴ц鏄庯細
  • target錛氭淳鍙戜簨浠剁殑鐩爣瀵硅薄
  • currentTarget錛氫簨浠舵祦褰撳墠姝g粡榪囩殑鐩爣瀵硅薄
  • bubbles錛氭槸鍚︽墦寮浜嗗啋娉″姛鑳?/li>
  • eventPhase錛氫簨浠舵祦褰撳墠鐨勯樁孌碉紝1錛氭崟鑾鳳紝2錛氱洰鏍囷紝3錛氬啋娉?/li>


addEventListener(
  type:String,    浜嬩歡鐨勭被鍨?br id="vsyt0" />   listener:Function,    鐩戝惉鍑芥暟
  useCapture:Boolean = false,    鏄惁鎵撳紑鎹曡幏鍔熻兘
  priority:int = 0,    鐩戝惉鍣ㄤ紭鍏堢駭鍒?br id="vsyt3" />   useWeakReference:Boolean = false    鏄惁浣跨敤寮卞紩鐢?br id="vsyt4" /> )

濡傛灉useCapture 涓簍rue錛屾墦寮浜嗘崟鑾峰姛鑳斤紝鍒欒緇勪歡鐨勫啋娉¢樁孌佃鍙栨秷銆?br id="e-a:" /> 鍙湁鍙鍖栫殑瀵硅薄鏈?涓樁孌碉紝鑰屽儚XML絳夐潪鍙鍖栧璞″彧鏈夌洰鏍囬樁孌點?/p>

 

 

8.2.2 浜嬩歡瀵硅薄

EventDispatcher 鏄淳鍙戜簨浠剁殑姝﹀櫒錛岀粡瀹冩淳鍙戠殑浜嬩歡瀵硅薄蹇呴』鏄疎vent綾誨瀷鎴栬匛vent鐨勫瓙綾匯?br id="ylal" /> Event瀵硅薄涓寘鍚洰鏍囧璞″瓨鏀劇殑鏁版嵁錛岃繖浜涙暟鎹兘鎴愪負Event鐨勫睘鎬э紝浠ヤ緵渚﹀惉鍣ㄤ嬌鐢細
Event鐨勫睘鎬э細
  • bubbles錛氬彧璇伙紝甯冨皵錛屼簨浠舵槸鍚﹀紑鍚啋娉″姛鑳?/li>
  • cancelable錛氬彧璇伙紝甯冨皵錛屽鐞嗕簨浠剁殑榛樿琛屼負鏄惁鍙互鍋滄銆備富瑕侀拡瀵逛竴浜涚郴緇熶簨浠訛紝濡傛灉鍊間負true錛屽垯Event鐨刾reventDefault鏂規硶鍙互浣跨敤錛屽惁鍒欎笉鍙敤銆?/li>
  • currentTarget錛氬彧璇伙紝瀵硅薄錛屽綋鍓嶆鍦ㄨ皟鐢ㄧ洃鍚櫒鐨勫璞?/li>
  • eventPhase錛氬彧璇伙紝鏁存暟錛岃繑鍥炰簨浠舵祦姝g粡鍘嗙殑闃舵銆?錛氭崟鑾鳳紝2錛氱洰鏍囷紝3錛氬啋娉?/li>
  • target錛氬彧璇伙紝媧懼彂浜嬩歡鐨勭洰鏍囧璞?/li>
  • type錛氬彧璇伙紝瀛楃錛屼簨浠剁被鍨嬨傛瘮濡傞紶鏍囩偣鍑諱簨浠剁殑綾誨瀷錛歝lick錛屽茍琚畾涔変負甯擱噺錛歁ouseEvent.CLICK

鏋勯犲嚱鏁幫細
Event(
  type:String,    浜嬩歡綾誨瀷
  bubbles:Boolean = false,   鏄惁鍐掓場
  cancelable:Boolean = false  鏄惁鍙互鍋滄
)

Event 鐨勬柟娉曪細
  • isDefaultPrevented錛氬垽鏂璸reventDefault 鏄惁宸茬粡琚皟鐢?br id="fs65" />
  • preventDefault錛氬仠姝簨浠剁殑榛樿琛屼負銆傞拡瀵逛竴浜涚郴緇熶簨浠訛紝cancelable涓簍rue鏃舵墠鍙敤銆?/li>
  • stopImmediatePropagation錛氬仠姝㈠綋鍓嶇殑浜嬩歡嫻佷紶鎾紝鍖呮嫭褰撳墠姝e湪澶勭悊鐨勫璞?/li>
  • stopPropagation錛氬仠姝㈠綋鍓嶇殑浜嬩歡嫻佷紶鎾紝浣嗕笉浼氬仠姝㈠綋鍓嶆鍦ㄥ鐞嗙殑瀵硅薄

 

Xml浠g爜
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">     
  3.     <mx:Style source="style.css" />  
  4.      
  5.     <mx:Script>  
  6.         <![CDATA[ 
  7.             import flash.events.MouseEvent; 
  8.             
  9.             internal function initApp():void{ 
  10.                 canvas_1.addEventListener(MouseEvent.CLICK,CanvasHandler); 
  11.                 canvas_2.addEventListener(MouseEvent.CLICK,CanvasHandler); 
  12.                 canvas_2.addEventListener(MouseEvent.CLICK,pressBtn); 
  13.                 btn_1.addEventListener(MouseEvent.CLICK,pressBtn); 
  14.             } 
  15.             internal function output(msg:String):void{ 
  16.                 debug_txt.text += msg+"\n"; 
  17.             } 
  18.             
  19.             internal function pressBtn(evt:MouseEvent):void{ 
  20.  
  21.                 output("鏄惁鍐掓場--"+evt.bubbles); 
  22.                 output("鐩爣瀵硅薄-- "+evt.target+" -- "+evt.eventPhase); 
  23.                 output("閬嶅巻瀵硅薄-- "+evt.currentTarget); 
  24.                 output("------------");        
  25.             } 
  26.             internal function CanvasHandler(evt:MouseEvent):void{ 
  27.                 
  28.                 output("鐩爣瀵硅薄-- "+evt.currentTarget+" -- "+evt.eventPhase); 
  29.                 //鍋滄浜嬩歡嫻佺殑浼犳挱 
  30.                 evt.stopImmediatePropagation(); 
  31.                 //evt.stopPropagation(); 
  32.             } 
  33.         ]]>  
  34.     </mx:Script>  
  35.     <mx:Canvas id = "canvas_1" styleName="box" x="37" y="63" width="425" height="160">  
  36.         <mx:Text x="13" y="10" text="Canvas_1"/>  
  37.         <mx:Canvas id="canvas_2" styleName="box" x="10" y="52" width="173" height="90">  
  38.             <mx:Text x="10" y="10" text="Canvas_2"/>  
  39.             <mx:Button id = "btn_1" x="10" y="38" label="Button_1"/>             
  40.         </mx:Canvas>  
  41.     </mx:Canvas>  
  42.     <mx:TextArea id="debug_txt" styleName="textBox" x="37" y="245" height="198" width="425"/>  
  43.      
  44. </mx:Application>  

 

8.2.3 渚﹀惉鍜屽搷搴斾簨浠?-涓涓睛鍚敭鐩樹簨浠剁殑渚嬪瓙

瑕佷睛鍚竴涓簨浠訛紝棣栧厛瑕佸垱寤轟竴涓嚱鏁版潵浣滀負浜嬩歡澶勭悊鍣紝鐒跺悗灝嗚繖涓嚱鏁版敞鍐岀粰鐩稿簲鐨勬椂闂寸被鍨嬨?br id="xoi9" /> this.addEventListener(KeyboardEvent.KEY_DOWN,keyHandler);
娉ㄥ唽閿洏鎸変笅浜嬩歡錛屼氦緇檏eyHandler澶勭悊錛屼篃鍙互鍦ˋpplication鏍囩娣誨姞浜嬩歡錛?br id="arpa" /> keyDown="keyHandler(event)"  榪欑鎯呭喌鏃犳硶縐婚櫎浜嬩歡銆?br id="zevr" />
娉ㄥ唽浜嗕簨浠剁洃鍚櫒錛屼嬌鐢ㄥ畬姣曞悗錛屽繀欏諱嬌鐢╮emoveEcentListener 鏂規硶鍒犻櫎鐩戝惉鍑芥暟錛?br id="zevr1" /> removeEcentListener(
  type:String,   浜嬩歡綾誨瀷
  listener:Function,   鐩戝惉鍑芥暟
  useCapture:Boolean = false    鏄惁寮鍚崟鑾峰姛鑳斤紝濡傛灉娉ㄥ唽鏃舵墦寮錛岀Щ闄や篃瑕佹墦寮銆?br id="zevr5" /> )

Xml浠g爜
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
  3.      creationComplete="initApp()">  
  4.     <mx:Style source="style.css" />     
  5.     <mx:Script>  
  6.         <![CDATA[ 
  7.             import flash.events.KeyboardEvent; 
  8.  
  9.             internal function initApp():void{ 
  10.                 this.addEventListener(KeyboardEvent.KEY_DOWN,keyHandler); 
  11.             } 
  12.  
  13.             private function keyHandler(e:KeyboardEvent):void{ 
  14.  
  15.                 var str:String = "浣犳寜涓嬬殑鏄? "+e.keyCode;                
  16.                 debug_txt.text += str +"\n"; 
  17.             } 
  18.         ]]>  
  19.     </mx:Script>     
  20.     <mx:TextArea id="debug_txt" styleName="textBox" x="25" y="78" height="198" width="212" editable="false"/>  
  21.     <mx:Text x="25" y="50" text="鎸夐敭鐩樹笂鐨勪換鎰忛敭"/>  
  22. </mx:Application> 


gembin 2008-08-22 10:17 鍙戣〃璇勮
]]>
Flex modules http://www.tkk7.com/gembin/archive/2008/08/21/223522.htmlgembingembinThu, 21 Aug 2008 07:33:00 GMThttp://www.tkk7.com/gembin/archive/2008/08/21/223522.htmlhttp://www.tkk7.com/gembin/comments/223522.htmlhttp://www.tkk7.com/gembin/archive/2008/08/21/223522.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/223522.htmlhttp://www.tkk7.com/gembin/services/trackbacks/223522.htmlThis section describes modules and how they are used by modular applications.

Subtopics

About modules
Benefits of modules
Module API details
Creating modular applications

About modules

Modules are SWF files that can be loaded and unloaded by an application. They cannot be run independently of an application, but any number of applications can share the modules.

Modules let you split your application into several pieces, or modules. The main application, or shell, can dynamically load other modules that it requires, when it needs them. It does not have to load all modules when it starts, nor does it have to load any modules if the user does not interact with them. When the application no longer needs a module, it can unload the module to free up memory and resources.

Modular applications have the following benefits:

  • Smaller initial download size of the SWF file.
  • Shorter load time due to smaller SWF file size.
  • Better encapsulation of related aspects of an application. For example, a "reporting" feature can be separated into a module that you can then work on independently.

Benefits of modules

Modules are similar to Runtime Shared Libraries (RSLs) in that they separate code from an application into separately loaded SWF files. Modules are much more flexible than RSLs because modules can be loaded and unloaded at run time and compiled without the application.

Two common scenarios in which using modules is beneficial are a large application with different user paths and a portal application.

An example of the first common scenario is an enormous insurance application that includes thousands of screens, for life insurance, car insurance, health insurance, dental insurance, travel insurance, and veterinary pet insurance.

Using a traditional approach to rich Internet application (RIA) design, you might build a monolithic application with a hierarchical tree of MXML classes. Memory use and start-up time for the application would be significant, and the SWF file size would grow with each new set of functionality.

When using this application, however, any user accesses only a subset of the screens. By refactoring the screens into small groups of modules that are loaded on demand, you can improve the perceived performance of the main application and reduce the memory use. Also, when the application is separated into modules, developers' productivity may increase due to better encapsulation of design. When rebuilding the application, the developers also have to recompile only the single module instead of the entire application.

An example of the second common scenario is a system with a main portal application, written in ActionScript 3, that provides services for numerous portlets. Portlets are configured based on data that is downloaded on a per-user basis. Using the traditional approach, you might build an application that compiles in all known portlets. This is inefficient, both for deployment and development.

By using modules, you can establish an interface that contains portal services, and a generic portlet interface. You can use XML data to determine which modules to load for a given session. When the module is loaded, you obtain a handle to a class factory inside the module, and from that you create an instance of a class that implements the portlet interface. In this scenario, full recompilation is necessary only if the interfaces change.

Module API details

Modules implement a class factory with a standard interface. The product of that class factory implements an interface known to the shell, or the shell implements an interface known to the modules.

By using shared interface definitions, these shared interfaces reduce hard dependencies between the shell and the module. This provides type-safe communication and enforces an abstraction layer without adding significantly to the SWF file size.

The following image shows the relationship between the shell and the module's interfaces:

 


Relationship between shell application and the module's interfaces.

Creating modular applications

To create a modular application, you create separate classes for each module, plus an application that loads the modules.

To create a modular application:

  1. Create any number of modules. An MXML-based module file's root tag is <mx:Module>. ActionScript-based modules extend the ModuleBase class.
  2. Compile each module as if it were an application. You can do this by using the mxmlc command-line compiler or the compiler built into Adobe Flex Builder.
  3. Create an Application class. This is typically an MXML file whose root tag is <mx:Application>, but it can also be an ActionScript-only application.
  4. In the Application file, use an <mx:ModuleLoader> tag to load each of the modules. You can also do this by using the load() method of the mx.modules.ModuleLoader class. For classes that extend ModuleBase, you should use the methods of the ModuleManager class to load them.

The following sections describes these steps in detail.


Creating modules

Modules are classes just like application files. To create a module in ActionScript, you create a file that extends the mx.modules.ModuleBase class. To create a module in MXML, you extend the mx.modules.Module class by creating a file whose root tag is <mx:Module>. In that tag, ensure that you add any namespaces that are used in that module. You should also include a type declaration tag at the beginning of the file.

The following example is a module that includes a Chart control:

<?xml version="1.0"?>
<!-- modules/ColumnChartModule.mxml -->
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" >
<mx:Script><![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{Month:"Jan", Profit:2000, Expenses:1500},
{Month:"Feb", Profit:1000, Expenses:200},
{Month:"Mar", Profit:1500, Expenses:500}
]);
]]></mx:Script>
<mx:ColumnChart id="myChart" dataProvider="{expenses}">
<mx:horizontalAxis>
<mx:CategoryAxis
dataProvider="{expenses}"
categoryField="Month"
/>
</mx:horizontalAxis>
<mx:series>
<mx:ColumnSeries
xField="Month"
yField="Profit"
displayName="Profit"
/>
<mx:ColumnSeries
xField="Month"
yField="Expenses"
displayName="Expenses"
/>
</mx:series>
</mx:ColumnChart>
<mx:Legend dataProvider="{myChart}"/>
</mx:Module>

Compiling modules

You compile the module as you would compile any Flex application using the mxmlc command-line compiler or the Flex Builder compiler. The following command is the simplest mxmlc command:

mxmlc MyModule.mxml

The result is a SWF file that you load into your application as a module. You cannot run the module-based SWF file as a stand-alone Flash application or load it into a browser window. It must be loaded by an application as a module.

Subtopics

Controlling module size
Recompiling modules

Controlling module size

Module size varies based on the components and classes that are used in the module. By default, a module includes all framework code that its components depend on, which can cause modules to be large by linking classes that overlap with the application's classes.

To reduce the size of the modules, you can instruct the module to externalize classes that are included by the application. This includes custom classes and framework classes. The result is that the module only includes the classes it requires, while the framework code and other dependencies are included in the application.

To externalize framework classes, you generate a linker report from the application that loads the modules, by using mxmlc commands. You then use this report as input to the module's load-externs compiler option.

To create a linker report:

  1. Generate the linker report:
    mxmlc -link-report=report.xml MyApplication.mxml
  2. Compile the application SWF file:
    mxmlc MyApplication.mxml
  3. Compile the module:
    mxmlc -load-externs=report.xml MyModule.mxml

Recompiling modules

You must recompile the modules if you make changes. Recompiling the main application does not trigger a recompilation of the modules. Similarly, if you change the application file, you do not have to recompile the modules, unless you make changes that might affect the linker report or common code.

NOTE

 

If you externalize the module's dependencies by using the load-externs option, your module might not be compatible with future versions of Adobe Flex. You might be required to recompile the module. To ensure that a future Flex application can use a module, compile that module with all the classes it requires. This also applies to applications that you load inside other applications.


MXML-based modules can load other modules. Those modules can load other modules, and so on.

Loading and unloading modules

To load and unload modules you use the load() and unload() methods of the ModuleLoader class. These methods take no parameters; the ModuleLoader loads or unloads the module that matches the value of the current url property.

The following example loads and unloads the module when you click the button:

<?xml version="1.0"?>
<!-- modules/ASModuleLoaderApp.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.modules.*;

public function createModule(m:ModuleLoader, s:String):void {
if (!m.url) {
m.url = s;
return;
}
m.loadModule();
}

public function removeModule(m:ModuleLoader):void {
m.unloadModule();
}
]]>
</mx:Script>

<mx:Panel title="Module Example"
height="90%"
width="90%"
paddingTop="10"
paddingLeft="10"
paddingRight="10"
paddingBottom="10"
>
<mx:TabNavigator id="tn"
width="100%"
height="100%"
creationPolicy="auto"
>
<mx:VBox id="vb1" label="Column Chart Module">
<mx:Button
label="Load"
click="createModule(chartModuleLoader, l1.text)"
/>
<mx:Button
label="Unload"
click="removeModule(chartModuleLoader)"
/>
<mx:Label id="l1" text="ColumnChartModule.swf"/>
<mx:ModuleLoader id="chartModuleLoader"/>
</mx:VBox>

<mx:VBox id="vb2" label="Form Module">
<mx:Button
label="Load"
click="createModule(formModuleLoader, l2.text)"
/>
<mx:Button
label="Unload"
click="removeModule(formModuleLoader)"
/>
<mx:Label id="l2" text="FormModule.swf"/>
<mx:ModuleLoader id="formModuleLoader"/>
</mx:VBox>
</mx:TabNavigator>
</mx:Panel>
</mx:Application>

Setting the location of a ModuleLoader triggers a call to the loadModule() method, too. This occurs when you first create a ModuleLoader with the url property set. It also occurs if you change the value of that property.

The following example loads the modules without calling the loadModule() method because the url property is set on the <mx:ModuleLoader> tags:

<?xml version="1.0"?>
<!-- modules/URLModuleLoaderApp.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Panel
title="Module Example"
height="90%"
width="90%"
paddingTop="10"
paddingLeft="10"
paddingRight="10"
paddingBottom="10"
>

<mx:Label width="100%" color="blue"
text="Select the tabs to change the panel."/>

<mx:TabNavigator id="tn"
width="100%"
height="100%"
creationPolicy="auto"
>
<mx:VBox id="vb1" label="Column Chart Module">
<mx:Label id="l1" text="ColumnChartModule.swf"/>
<mx:ModuleLoader url="ColumnChartModule.swf"/>
</mx:VBox>

<mx:VBox id="vb2" label="Form Module">
<mx:Label id="l2" text="FormModule.swf"/>
<mx:ModuleLoader url="FormModule.swf"/>
</mx:VBox>

</mx:TabNavigator>
</mx:Panel>
</mx:Application>

When you load a module, Flex ensures that there is only one copy of a module loaded, no matter how many times you call the load() method for that module.

Modules are loaded into the child of the current application domain. You can specify a different application domain by using the applicationDomain property of the ModuleLoader class.

When two classes of the same name but different implementations are loaded, the first one loaded is the one that is used.

Subtopics

Loading modules from different servers

Loading modules from different servers

To load a module from one server into an application running on a different server, you must establish a trust between the module and the application that loads it.

To allow access across domains:

  1. In your loading application, you must call the allowDomain() method and specify the target domain from which you load a module. So, specify the target domain in the preinitialize event handler of your application to ensure that the application is set up before the module is loaded.
  2. In the cross-domain file of the remote server where your module is, add an entry that specifies the server on which the loading application is running.
  3. Load the cross-domain file on the remote server in the preinitialize event handler of your loading application.
  4. In the loaded module, call the allowDomain() method so that it can communicate with the loader.

The following example shows the init() method of the loading application:

public function setup():void {
Security.allowDomain("remoteservername");
Security.loadPolicyFile("http://remoteservername/crossdomain.xml");
var request:URLRequest = new URLRequest("http://remoteservername
/crossdomain.xml");
var loader:URLLoader = new URLLoader();
loader.load(request);
}

The following example shows the loaded module's init() method:

public function initMod():void {
Security.allowDomain("loaderservername");
}

The following example shows the cross-domain file that resides on the remote server:

<!-- crossdomain.xml file located at the root of the server -->
<cross-domain-policy>
<allow-access-from domain="loaderservername" to-ports="*"/>
</cross-domain-policy>

For more information about using the cross-domain policy file, see Applying Flex Security in Building and Deploying Flex 2 Applications.

Using ModuleLoader events

The ModuleLoader class triggers several events, including setup, ready, loading, unload, progress, error, and urlChanged. You can use these events to track the progress of the loading process, and find out when a module has been unloaded or when the ModuleLoader's target URL has changed.

Subtopics

Using the error event
Using the progress event

Using the error event

The error event gives you an opportunity to gracefully fail when a module does not load for some reason. In the following example, you can load and unload a module by using the Button controls. To trigger an error event, change the URL in the TextInput control to a module that does not exist. The error handler displays a message to the user and writes the error message to the trace log.

Revision 1/10/2007: Minor change to createModule() method.

<?xml version="1.0"?>
<!-- modules/ErrorEventHandler.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.events.ModuleEvent;
import mx.modules.*;
import mx.controls.Alert;

private function errorHandler(e:ModuleEvent):void {
Alert.show("There was an error loading the module." +
" Please contact the Help Desk.");
trace(e.errorText);
}

public function createModule():void {
if (chartModuleLoader.url == ti1.text) {
// If they are the same, call loadModule.
chartModuleLoader.loadModule();
} else {
// If they are not the same, then change the url,
// which triggers a call to the loadModule() method.
chartModuleLoader.url = ti1.text;
}
}

public function removeModule():void {
chartModuleLoader.unloadModule();
}

]]>
</mx:Script>

<mx:Panel title="Module Example"
height="90%"
width="90%"
paddingTop="10"
paddingLeft="10"
paddingRight="10"
paddingBottom="10"
>
<mx:HBox>
<mx:Label text="URL:"/>
<mx:TextInput width="200" id="ti1" text="ColumnChartModule.swf"/>
<mx:Button label="Load" click="createModule()"/>
<mx:Button label="Unload" click="removeModule()"/>
</mx:HBox>
<mx:ModuleLoader id="chartModuleLoader" error="errorHandler(event)"/>
</mx:Panel>
</mx:Application>

Using the progress event

You can use the progress event to track the progress of a module as it loads. When you add a listener for the progress event, Flex calls that listener at regular intervals during the module's loading process. Each time the listener is called, you can look at the bytesLoaded property of the event. You can compare this to the bytesTotal property to get a percentage of completion.

The following example reports the level of completion during the module's loading process. It also produces a simple progress bar that shows users how close the loading is to being complete.

<?xml version="1.0"?>
<!-- modules/SimpleProgressEventHandler.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.events.ModuleEvent;
import flash.events.ProgressEvent;
import mx.modules.*;

[Bindable]
public var progBar:String = "";
[Bindable]
public var progMessage:String = "";

private function progressEventHandler(e:ProgressEvent):void {
progBar += ".";
progMessage =
"Module " +
Math.round((e.bytesLoaded/e.bytesTotal) * 100) +
"% loaded";
}

public function createModule():void {
chartModuleLoader.loadModule();
}

public function removeModule():void {
chartModuleLoader.unloadModule();
progBar = "";
progMessage = "";
}
]]>
</mx:Script>

<mx:Panel title="Module Example"
height="90%"
width="90%"
paddingTop="10"
paddingLeft="10"
paddingRight="10"
paddingBottom="10"
>
<mx:HBox>
<mx:Label id="l2" text="{progMessage}"/>
<mx:Label id="l1" text="{progBar}"/>
</mx:HBox>

<mx:Button label="Load" click="createModule()"/>
<mx:Button label="Unload" click="removeModule()"/>

<mx:ModuleLoader
id="chartModuleLoader"
url="ColumnChartModule.swf"
progress="progressEventHandler(event)"
/>
</mx:Panel>
</mx:Application>

You can also connect a module loader to a ProgressBar control. The following example creates a custom component for the ModuleLoader that includes a ProgressBar control. The ProgressBar control displays the progress of the module loading.

<?xml version="1.0"?>
<!-- modules/MySimpleModuleLoader.mxml -->
<mx:ModuleLoader xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private function clickHandler():void {
if (!url) {
url="ColumnChartModule.swf";
}
loadModule();
}
]]>
</mx:Script>

<mx:ProgressBar
id="progress"
width="100%"
source="{this}"
/>
<mx:HBox width="100%">
<mx:Button
id="load"
label="Load"
click="clickHandler()"
/>
<mx:Button
id="unload"
label="Unload"
click="unloadModule()"
/>
<mx:Button
id="reload"
label="Reload"
click="unloadModule();loadModule();"
/>
</mx:HBox>
</mx:ModuleLoader>

You can use this module in a simple application, as the following example shows:

<?xml version="1.0"?>
<!-- modules/ComplexProgressEventHandler.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*">

<mx:Panel title="Module Example"
height="90%"
width="90%"
paddingTop="10"
paddingLeft="10"
paddingRight="10"
paddingBottom="10"
>
<mx:Label text="Use the buttons below to load and unload
the module."/>
<local:MySimpleModuleLoader id="customLoader"/>
</mx:Panel>

</mx:Application>

This example does not change the ProgressBar's label property for all events. For example, if you load and then unload the module, the label property remains at "LOADING 100%". To adjust the label properly, you must define other event handlers for the ModuleLoader events, such as unload and error.



gembin 2008-08-21 15:33 鍙戣〃璇勮
]]>
Top 10 Adobe Flex Misconceptionshttp://www.tkk7.com/gembin/archive/2008/08/15/222221.htmlgembingembinFri, 15 Aug 2008 05:30:00 GMThttp://www.tkk7.com/gembin/archive/2008/08/15/222221.htmlhttp://www.tkk7.com/gembin/comments/222221.htmlhttp://www.tkk7.com/gembin/archive/2008/08/15/222221.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/222221.htmlhttp://www.tkk7.com/gembin/services/trackbacks/222221.html闃呰鍏ㄦ枃

gembin 2008-08-15 13:30 鍙戣〃璇勮
]]>
Flex in a Week(study...)http://www.tkk7.com/gembin/archive/2008/08/14/222015.htmlgembingembinThu, 14 Aug 2008 07:16:00 GMThttp://www.tkk7.com/gembin/archive/2008/08/14/222015.htmlhttp://www.tkk7.com/gembin/comments/222015.htmlhttp://www.tkk7.com/gembin/archive/2008/08/14/222015.html#Feedback0http://www.tkk7.com/gembin/comments/commentRss/222015.htmlhttp://www.tkk7.com/gembin/services/trackbacks/222015.html闃呰鍏ㄦ枃

gembin 2008-08-14 15:16 鍙戣〃璇勮
]]>
涓綃囨瘮杈冨叏闈㈢殑Flash錛咶lex鐩稿叧鎶鏈祫婧愬ぇ鍏?杞?http://www.tkk7.com/gembin/archive/2008/08/12/221473.htmlgembingembinTue, 12 Aug 2008 05:32:00 GMThttp://www.tkk7.com/gembin/archive/2008/08/12/221473.htmlhttp://www.tkk7.com/gembin/comments/221473.htmlhttp://www.tkk7.com/gembin/archive/2008/08/12/221473.html#Feedback3http://www.tkk7.com/gembin/comments/commentRss/221473.htmlhttp://www.tkk7.com/gembin/services/trackbacks/221473.html闃呰鍏ㄦ枃

gembin 2008-08-12 13:32 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 欧美在线看片A免费观看| 亚洲中文字幕无码中文字| 日韩成人免费在线| 无码专区AAAAAA免费视频| 特级毛片aaaa免费观看| 亚洲一级特黄特黄的大片| 亚洲精品在线观看视频| 久久久久亚洲AV综合波多野结衣 | 妞干网免费观看视频| 9420免费高清在线视频| 国产一级a毛一级a看免费人娇 | 又爽又高潮的BB视频免费看| 无码一区二区三区AV免费| 最近中文字幕国语免费完整| 成人免费777777被爆出| 人体大胆做受免费视频| 在线观看国产一区亚洲bd| 亚洲人成网站在线在线观看| 亚洲H在线播放在线观看H| 91亚洲一区二区在线观看不卡| 国产亚洲av片在线观看16女人| 亚洲欧洲精品成人久久奇米网| 在线永久免费观看黄网站| 女人18毛片a级毛片免费视频| 曰批视频免费30分钟成人| 精品免费久久久久久久| 97精品免费视频| 一级毛片免费观看不卡视频| 四虎国产成人永久精品免费| 日本免费电影一区二区| 人妻免费一区二区三区最新| 91福利免费网站在线观看| 精选影视免费在线 | 在线看片免费人成视频久网下载| av成人免费电影| 在线观看免费视频网站色| 抽搐一进一出gif免费视频| 好吊色永久免费视频大全| 久久精品无码专区免费| 97人妻精品全国免费视频 | 四虎影视在线永久免费观看|