1. flex是什麼說得具體點
讓程序員開發flash動畫的一個界面程序,程序員主要是打代碼,為了讓這一部分人,做動畫開發,專門跟他們定做了一個,程序員專用的flash.界面。就是這個flex.
我們普通人做動畫用flash
程序員做動畫用代碼格式的flash,就是flex
2. 求幫助 flex中的工具欄組件是什麼
flexlib 裡面有一個設置個性化按鈕的東西,具體可以查看gougle 的api,我寫過一個你可以參考下,前提是你必須使用flexlib
Button {
upSkin:ClassReference('flexlib.skins.EnhancedButtonSkin');
overSkin:ClassReference('flexlib.skins.EnhancedButtonSkin');
downSkin:ClassReference('flexlib.skins.EnhancedButtonSkin');
disabledSkin:ClassReference('flexlib.skins.EnhancedButtonSkin');
selectedUpSkin:ClassReference('flexlib.skins.EnhancedButtonSkin');
selectedOverSkin:ClassReference('flexlib.skins.EnhancedButtonSkin');
selectedDownSkin:ClassReference('flexlib.skins.EnhancedButtonSkin');
selectedDisabledSkin:ClassReference('flexlib.skins.EnhancedButtonSkin');
corner-Radii: 6, 6, 6, 6;
border-Colors: #B2DC32, #4b5f0c;
over-Border-Colors: #B2DC32, #4b5f0c;
selected-Border-Colors: #B2DC32, #4b5f0c;
border-Thickness: 1;
border-Alpha: 0.95;
fill-Colors: #B2DC32, #4b5f0c;
fill-Color-Ratios: 0, 255;
over-Fill-Colors: #B2DC32, #4b5f0c;
over-Fill-ColorRatios: 0, 128, 255;
selected-Fill-Colors: #B2DC32, #4b5f0c;
selected-Fill-Color-Ratios: 0, 255;
color: black;
text-Roll-Over-Color: #4b5f0c;
}
3. Flex如何釋放或優化內存
FLEX內存釋放優化原則:
1. 被刪除對象在外部的所有引用一定要被刪除干凈才能被系統當成垃圾回收處理掉;
2. 父對象內部的子對象被外部其他對象引用了,會導致此子對象不會被刪除,子對象不會被刪除又會導致了父對象不會被刪除;
3. 如果一個對象中引用了外部對象,當自己被刪除或者不需要使用此引用對象時,一定要記得把此對象的引用設置為null;
4. 本對象刪除不了的原因不一定是自己被引用了,也有可能是自己的孩子被外部引用了,孩子刪不掉導致父親也刪不掉;
5. 除了引用需要刪除外,系統組件或者全局工具、管理類如果提供了卸載方法的就一定要調用刪除內部對象,否則有可能會造成內存泄露和性能損失;
6. 父對象立刻被刪除了不代表子對象就會被刪除或立刻被刪除,可能會在後期被系統自動刪除或第二次移除操作時被刪除;
7. 如果父對象remove了子對象後沒有清除對子對象的引用,子對象一樣是不能被刪除的,父對象也不能被刪除;
8. 注冊的事件如果沒有被移除不影響自定義的強行回收機制,但有可能會影響正常的回收機制,所以最好是做到注冊的事件監聽器都要記得移除干凈。
9. 父對象被刪除了不代表其餘子對象都刪除了,找到一種狀態的泄露代碼不等於其他狀態就沒有泄露了,要各模塊各狀態逐個進行測試分析,直到測試任何狀態下都能刪除整個對象為止。
內存泄露舉例:
1. 引用泄露:對子對象的引用,外部對本對象或子對象的引用都需要置null;
2. 系統類泄露:使用了系統類而忘記做刪除操作了,如BindingUtils.bindSetter(),ChangeWatcher.watch()函數時候完畢後需要調用ChangeWatcher.unwatch()函數來清除引用 ,否則使用此函數的對象將不會被刪除;
類似的還有MUSIC,VIDEO,IMAGE,TIMER,EVENT,BINDING等。
3. 效果泄露:當對組件應用效果Effect的時候,當本對象本刪除時需要把本對象和子對象上的Effect動畫停止掉,然後把Effect的target對象置null; 如果不停止掉動畫直接把 Effect置null將不能正常移除對象。
4. SWF泄露:要完全刪除一個SWF要調用它的unload()方法並且把對象置null;
5. 圖片泄露:當Image對象使用完畢後要把source置null;(為測試);
6. 聲音、視頻泄露: 當不需要一個音樂或視頻是需要停止音樂,刪除對象,引用置null;
內存泄露解決方法:
1. 在組件的REMOVED_FROM_STAGE事件回掉中做垃圾處理操作(移除所有對外引用(不管是VO還是組件的都需要刪除),刪除監聽器,調用系統類的清除方法)
先remove再置null, 確保被remove或者removeAll後的對象在外部的引用全部釋放干凈;
2. 利用Flex的性能優化工具Profile來對項目進程進行監控,可知道歷史創建過哪些對象,目前有哪些對象沒有被刪除,創建的數量,佔用的內存比例和用量,創建過程等信息;
總結:關鍵還是要做好清除工作,自己設置的引用自己要記得刪除,自己用過的系統類要記得做好回收處理工作。 以上問題解決的好的話不需要自定義強制回收器也有可能被系統正常的自動回收掉。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/yjq8116/archive/2009/01/13/3766930.aspx
4. FLEX工具
德國富萊克斯(FLEX)電動工具
www.flex-tools.com.cn
5. Flex是什麼
flex (fast lexical analyser generator) 是 Lex 的另一個替代品。它經常和自由軟體 Bison語法分析器生成器 一起使用。Flex 最初由 Vern Paxson 於 1987 年用 C語言 寫成。 Flex 手冊里對 Flex 描述如下: 「flex是一個生成掃描器的工具,能夠識別文本中的詞法模式。flex讀入給定的輸入文件,如果沒有給定文件名的話,則從標准輸入讀取,從而獲得一個關於需要生成的掃描器的描述。此描述叫做 規則,由正則表達式和 C代碼對組成。flex 的輸出是一個 C 代碼文件--lex.yy.c--其中定義了 yylex() 函數。編譯輸出文件並且和 -lfl庫鏈接生成一個可執行文件。當運行可執行文件的時候,它分析輸入文件,為每一個正則表達式尋找匹配。當發現一個匹配時,它執行與此正則表達式相關的 C代碼。」 一個相似的,用 C++語言 的詞法分析器生成器是 flex++,包含在 flex 軟體包里。 Flex 不是 GNU 工程,但是 GNU 為 Flex 寫了手冊。
6. FLEX,FLEX工具,FLEX TOOLS
FLEX為PORTER-CABLE的子公司,深圳市諾希德科技有限公司FLEX TOOLS、德國著名表面拋光組套工具生產廠家,其產品經久耐用與易操作性,用途廣聞名世界。德國FLEX公司的成功在於創新。1922年,FLEX研發了電動手控工具;1954年,FLEX研發了第一台高速角磨機DL9;為了使角磨機更靈活高效,更人性化,1997年FLEX成為第一個生產天花板與牆壁使用長頸磨砂機的電動工具生產廠家。
7. 如何分析Flex應用的內存泄露問題
Flex採用ActionScript語言作為腳本語言,運行在FlashPlayer虛擬機之上,其垃圾回收機制概括如下:
Flex 應用的對象在內存中被映射成樹形結構。這很好理解,每個Flex應用總有一個Application的入口被稱為根節點(Root),垃圾收集器從根節點開始遍歷每個對象,對可達對象標記為「有效」(有一種例外就是弱引用)。而在這棵樹之外的孤島對象或者由於循環引用形成的孤島對象集合被標記為「無效」,垃圾收集器會在合適的時間銷毀這些無效對象,完成一次垃圾收集。而垃圾收集器是運行在虛擬機中的一個低優先順序的守護進程,為了不影響性能,它只在必要的時候才運行。例如在向操作系統申請新內存空間的時候,發生異常的時候等等,因此內存並不是實時回收的。
在Flex應用開發過程中,主要存在兩種泄露情況:
顯式引用:由於表達式賦值或者對象參數傳遞等原因,已經「無用」的對象被保持引用,導致虛擬機無法正常回收。
隱式引用:由於事件監聽注冊等操作,導致對象之間存在引用,產生泄露風險。
針對以上泄露問題,文章建議大家採用Adobe公司在Flex Builder 3中提供的Profiler工具來分析和定位泄露根源:
內存快照法:通過對於相同操作做反復內存快照(Profiler工具支持)比較,找出持續增加的對象實例,就可能發現泄露根源。
游盪對象法:當Flex應用特別復雜時,可以利用Profiler 工具中的「Find Loitoring Objects」查找游盪對象,比較不同狀態轉換之間的對象變化,可能會發現泄露的對象。
當然,凡事應以「預防為主」,所以作者最後總結了幾點開發建議:
對於顯式引用,要盡量減少對臨時對象的引用,尤其是全局變數、靜態變數、使用單例模式創建的變數對臨時變數的引用。這些變數包含stage、systemManager、application、MVC框架中Model和Controller,還有以Manager命名的對象等等。另外,臨時變數本身要盡量做到高內聚性,對象內部盡量減少對外部對象尤其是全局對象的依賴。
對於隱式引用,使用弱引用方式注冊事件監聽器,將最後一個參數useWeakReference設置為true:a.addEventListener("Leak", b.leakHandler, false, 0, true); 這樣做的結果是垃圾回收器在做標記時,會忽略a對於b的引用,如果b沒有被其他對象引用,垃圾回收器就把它標記為「無效」進而回收,從而避免內存泄露。
內存泄露一直是開發社區普遍關注的問題,即使在虛擬機時代,某些泄露問題仍然值得大家討論和研究。
8. 詞法分析工具flex的安裝及使用(Ubuntu)
在ubutu上安裝 yacc的命令:
yylex()是由flex創建的掃描程序的入口點,調用yylex()啟動或者重新開始掃描。Lex編寫的yylex()從名為yyin的FILE *文件指針中讀取字元。 如果未設置yyin,則默認為標准輸入。 它輸出到yyout,如果未設置默認為stdout。 還可以在yywrap()函數中修改yyin,該函數在文件末尾調用。 它允許打開另一個文件,並繼續解析。如果是這種情況,將其返回0。如果要結束此文件的解析,將其返回1。一般來說,每次調用yylex()都會返回一個表示標記類型的整數值。
flex的結構如下:
一個*.l的文件里的結構大概如上,用%%分隔開來。分為三個區:
使用諸如Flex的詞法生成器的好處是使得程序員可以集中考慮詞法的特點;而不是具體如何實現詞法分析。
參考: https://zhuanlan.hu.com/p/65490271
9. 電動工具10大品牌
全球銷量最好的十大電動工具品牌排行榜
泛音(FEIN)德國:
德國泛音(C.&E.FEIN GmbH),簡稱FEIN,是一家德國電動工具生產商,也是全球第一家專業電動工具生產商。總部位於德國SchwäbischGmünd的Bargau,佔地 15000 m2。1895 年,C.&E.FEIN發明了第一台手持式電鑽,這項發明奠定了高可信電動工具的基石。140 多年以來,FEIN泛音始終是全球領先的電動工具製造商,只研發牢固耐用的電動工具,直至今天德國泛音已擁有800多項有效專利和產權,以至這家位於 Schwaben(施瓦本)的傳統企業在全球工業和手工業界都備受尊崇。
博世(BOSCH)德國:
博世電動工具創於1886年德國,博世集團旗下,全球電動工具領先生產商,以保持高標準的產品品質、技術革新及售後服務而備受追捧。博世電動工具是全球知名的電動工具及附件生產商,其產品在品質、技術革新及售後服務方面一直保持高標准。現在,博世電動工具的產品主要包括4大類:手持式電動工具,台式電動工具, 測量工具和電動工具附件。
麥太保(Metabo)德國:
Metabo麥太保成立於1924年,總部位於德國約廷根,是德國著名的專業電動工具製造商之一。旗下電動工具市場份額為德國第二,歐洲第三;木工機械的市場佔有率更雄居歐洲第一。目前麥太保集團擁有2個品牌,22個子公司及全球5個製造基地。Metabo麥太保電動工具以優質滿譽世界,產品輸往100多個國家。其全球性的成功源於幾十年的精益求精及對高品質的不懈追求。
富萊克斯(flex) 德國:
FLEX公司1922年在斯圖加特成立,同年開始生產銷售第一台研磨機。FLEX電動工具是德國著名表面拋光組套工具生產廠家,其產品經久耐用與易操作性,用途廣聞名世界。德國FLEX公司的成功在於創新。1922年,FLEX研發了電動手控工具;1954年,flex研發了第一台高速角磨機DL 9;為了使角磨機更靈活高效,更人性化,1997年FLEX成為第一個生產天花板與牆壁使用長頸磨砂機的電動工具生產廠家。2015年研發了攜帶型電動工具,應用了「KEEP COOL」技術使得電池使用時長及壽命更佳。
費斯托(Festool)德國:
FESTOOL是全球享有盛名的氣動、電動及工廠車間用專業工具系統的生產與供應商。90 多年來,我們追求高品質電動工具的熱情從未熄滅。我們與我們的用戶和粉絲一起分享這種激情:用我們的工具使得專業手工業者的工作更輕松,幫助他們更快地收獲完美成果。我們始終從系統的角度來考慮,這非常重要:因為始終深入細節。350 多個專利,80 多次產品和企業獎項詮釋了我們的創造力,更重要的是:讓客戶滿意。
牧田(MAKITA)日本:
牧田株式會社是目前世界上大規模專門生產專業電動工具的製造商之一,總部位於日本國愛知縣安城市,創業於1915年先後在日本東京,名古屋證券市場上市,注冊資金達242億日元,整個集團員工超過12000人。主營業務包括電動工具,木工機械,氣動工具,家用及園藝用機器等的製造和銷售。 牧田公司憑著100多年所積累的生產電機———電工工具心臟的豐富經驗,率先採用世界上先進的大型電腦進行立體設計研發。同時與時俱進,不斷把高科技融入產品中,並以全自動的機械設備生產,嚴格品質檢驗和安全測試,始終保持產品的高品質和創新性而聞名於世,深受全球廣大用戶的喜愛。牧田牌專業電動工具具有噪音小、動力強、性能好、質量穩定、壽命長、機身輕巧、堅固耐用、操作容易、應用廣泛、修理方便等特點,是各行各業或DIY人員的至優之選。
日立(Hitachi)日本:
日立(HITACHI),是來自日本的全球500強綜合跨國集團,1979年便在北京成立了第一家日資企業的事務所。日立工機株式會社公司主要產品:電動工具、充電式工具、氣動工具、園林工具、燃油工具、發電機、空氣壓縮機、工業用吸塵設備及其附件和零配件,在日本、中國、馬來西亞、歐洲等地超過800種以上的電動工具進行生產和製造。公司在向顧客提供豐富的日立電動工具及相關產品的同時,也同時為顧客提供迅速和一流的售後服務。
得偉(DEWALT)美國:
史丹利百得旗下高端專業級電動工具品牌,在耐用工業機械的設計/工藝/製造領域享有盛名,全球頂尖的高品質工具類製造商。2010年,史丹利公司與百得公司合並成立史丹利百得,得偉成為史丹利百得旗艦專業電動工具品牌。憑借長期的經驗和最先進的製造技術,這些特徵已經融入到了我們的多種系列的高性能」攜帶型」電動工具和配件的各項產品中。全球專業用戶對得偉產品的廣泛認可,使得偉成為了全球最好的專業電動工具品牌之一,也是過去五年中世界上增長最快的專業電動工具品牌。
史丹利(STANLEY)美國:
史丹利(STANLEY)是史丹利百得旗下旗艦品牌之一,是工業手工具品牌,也是工匠級電動工具品牌。致力於為消費者提供整合的五金工具、存儲設備和安防系統的整體解決方案。近170年的歷史,史丹利百得已經成長壯大為一個世界性的,具有高度信賴感,高價值的全球品牌,成為全世界最大的工具產品的製造商,奠定了在世界工具領域不可動搖的領導地位。
百塔(BETA) 義大利:
Beta Utensili,創立於1923年,專業工具製造商,擁有多項頂尖的技術和先進的生產設備,Beta Utensili 代表著高品質。根據ISO 9001標准,Beta對產品工藝進行嚴格測試確保每一件產品都具有符合標準的高質量。Beta Utensili 是一家世界性的企業,具備廣泛的物流和銷售網路,擁有在法國、英國、荷蘭、西班牙、波蘭、比利時、匈牙利和中國的8家海外分公司以及遍布200多個國家和地區的銷售網點。