as3.flex.air面試題_第1頁
as3.flex.air面試題_第2頁
as3.flex.air面試題_第3頁
as3.flex.air面試題_第4頁
as3.flex.air面試題_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Flex3, ActionScript面試題集1.as2與as3.的最主要區(qū)別是什么?答:首先,as2和as3是完全不同的語言,幾乎沒有兼容性可言。as2編譯用的AVM1虛擬機,as3用的AVM2,速度快,提供了一些基礎(chǔ)異常處理。 as3是純的OOP,強類型語言。as2不是。具體的差別有太多太多。2.flex的開發(fā)框架有哪些,它們有什么優(yōu)缺點?答: 最常見的當然是Cairngorm、Puremvc了,此外還有Mate,Swiz等等,據(jù)說被廣泛應(yīng)用的已經(jīng)有10幾款了。Cairngorm作為 Adobe官方出品,有著貴族血統(tǒng)的它比較全面,是這些框架中已知bug最少的,但是基于他的應(yīng)用相對臃腫復(fù)雜一

2、些,需要對每個可以被觸發(fā)的事件寫一個對 應(yīng)的Command,編碼量巨大,并且單元測試很不容易,不適合敏捷開發(fā)。Puremvc應(yīng)該是現(xiàn)在用的最多的as框架了。比較完善、并且與 Cairngorm相比,更適合中小型應(yīng)用的開發(fā),它與Cairngorm一樣,也是以MVC模式為中心,并以Façade作為中央存儲器的單件類的形式 進行開發(fā)的。說下Mate,它是一個比較奇怪的框架,是基于標簽的事件驅(qū)動型的。也就是說你不能再隨意的寫as類的,在使用Mate的情況下,只能用 MXML來做這些事情。Swiz是Mate的孿生兄弟,長的挺像,沒具體用過,不大了解。3.在flex開發(fā)中,很多代碼都寫在mxml

3、文件里, 為了做到mvc模式,你是怎么處理的。我認為mxml并不影響mvc模式啊。分兩種情況來討論,首先,是自己創(chuàng)建整個應(yīng)用結(jié)構(gòu)的時候,那我們可以手動將UI所在的mxml歸為一類,然后由 Mediator去操作或者說控制這些組件既可了,然后Mediator又統(tǒng)一交給Controller去操作。如果采用其他框架來進行開發(fā)的話,那就更 不用來考慮這個問題了,像Cairngorm、Puremvc之類的框架已經(jīng)很好的為我們解決了這些問題。只要按照它們的使用規(guī)范來進行開發(fā),自然沒有問 題。4.如果發(fā)生內(nèi)存泄露,你是如何解決的?在profile觀察中已經(jīng)內(nèi)存泄漏是沒有很好的解決辦法的,至少我不知道,我能做

4、的只是盡量去避免這種情況的發(fā)生,比如說 注意不要循環(huán)引用,特別是在使用Timer的時候要格外注意,不要忘記全局對象上的引用的清除,在創(chuàng)建控制器和模型的時候要注意一定要使用單件模式。在 addEventListener時候盡量采用弱引用、自引用、或者子對象引用,以避免內(nèi)存泄漏。5。as3.0垃圾回收器是如何工作的?flash player 8之前采用的是引用計數(shù)法,在flash player 8 之后用的是標記法,簡單的說就是:從應(yīng)用的根節(jié)點開始,遍歷所有其上的引用,標記每個它所發(fā)現(xiàn)的對象。然后迭代遍歷每個被標記的對象,標記它們的 子對象。這個過程第歸進行,直到Player遍歷了應(yīng)用的整個對象樹

5、并標記了它所發(fā)現(xiàn)的每個東西。在這個過程技術(shù)的時候,可以安全地認為,內(nèi)存中那些沒有 被打標記的對象沒有任何活動引用,因此可以被安全地釋放內(nèi)存。一般來說,flash player采用的是一種低頻的垃圾回收機制,F(xiàn)lash Player的垃圾回收發(fā)生在Flash Player需要另外請求內(nèi)存之前。但并不是每次應(yīng)用申請內(nèi)存時都會導(dǎo)致垃圾回收的執(zhí)行,只有當Flash占用的內(nèi)存緊張到一定程度時才會執(zhí)行真正的垃圾 回收,一定程度上取決于客戶端計算機的物理內(nèi)存的大小。6 flex和后臺語言是如何交互的?無疑就這兩種方法:remote object 或者是Http service7。你是如何處理前端速度慢的問題

6、?flex前端速度慢 其實仔細說應(yīng)該分2部分,1.是flex生成的swf由于SDK龐大的關(guān)系,swf體積也跟著龐大了,這我們可以做的就是用Module動態(tài)加載,還有就 是RSL了。2.處理速度慢,遠程方法速度慢,這是AVM的硬傷了,基本沒有很好的解決方法,我們能做的只是讓這個異步進行的更完美一些,讓用戶在等待的 過程中,做其他的事情,以至于讓用戶忽略這段等待的時間。8.flash與flex是如何協(xié)調(diào)開發(fā)的?這個問題可以這樣來理解,如果是確實需要用到FLEX SDK的應(yīng)用,那我們就可以建立一個flex工程,具體需要flash做UI的時候,輸出成swc作為flex的skin,如果說并不需要flex

7、 sdk,只是為了編碼方便而選擇flex的話,那我們只要建立一個as工程,讓flex作為flash的編碼器。9.使用Flex Bulider3建立一下新的.mxml的頁面時默認的背景是藍色的,請問用什么辦法能修改掉此背景顏色,以至于下次創(chuàng)建時背景不是為默認的藍色的呢?請 寫出你認為正確的方法.還真不會,我的做法一般是在這個工程里面,建一個總的css,都在里面規(guī)范起來,包括背景色啊,還有字體大小等等。10. 使用Flex Bulider3如何跟蹤程序?裝個debug版本的flash player,到時候在FB里面F11 debug它咯。11. 請問enterFrame和timerEvent這2個

8、事件有什么區(qū)別?請說下具體的使用方法和相關(guān)的使用場合?不會 我覺得差不多,不過我一般用enterFrame,還請高人指點。12. 請說下你理解AS3的事件機制是什么機制?你認為正確的就可以說出來.AS3事件流分三個階段:1.捕獲階段 (即由根節(jié)點流向子節(jié)點,檢測每個節(jié)點是否注冊了監(jiān)聽器)2.目標階段 (激發(fā)在目標對象本身注冊的監(jiān)聽程序)3.冒泡階段 (從目標節(jié)點到根節(jié)點,檢測每個節(jié)點是否注冊了監(jiān)聽器)當中涉及了兩個屬性target和currentTarget,target是事件的派發(fā)者,currentTarget是正在檢測的對象,當開始了事件 流,事件的currentTarget屬性處于不斷變

9、化中.PS:注冊事件時捕獲階段默認是關(guān)閉的,無論事件是否開啟了捕獲,事件流只會兩選一去 執(zhí)行注冊的監(jiān)聽程序關(guān)于EventDispatcher三個函數(shù)的參數(shù):1.addEventlistener(事件類型,監(jiān)聽函數(shù),是 否打開捕獲階段,監(jiān)聽器優(yōu)先級別,是否打開弱監(jiān)聽)2.removeEventListener(事件類型,監(jiān)聽函數(shù),是否打開捕獲階段) (前兩個參數(shù)是必須的,如果注冊監(jiān)聽器時打開了捕獲階段,那么第三個參數(shù)也是必須的,否則會出現(xiàn)錯誤)3.dispatchEvent(new Event(事件類型,是否冒泡,是否可以取消事件)關(guān)于Event擴展有兩點要注意:1.可以定義字符串常量代表事件類

10、型.2. 構(gòu)造函數(shù)必須調(diào)用父類的構(gòu)造函數(shù),super(type,bubbles,cancelable)3.擴展Event可以使Event帶自定義變 量,從而可以傳遞數(shù)據(jù).13.請問addEventListener里面有幾個參數(shù),你能說出具體的使用方法嘛?這題出的有點像考API記憶力呵呵, 它的五個參數(shù)分別是addEventlistener(事件類型,監(jiān)聽函數(shù),是否打開捕獲階段,監(jiān)聽器優(yōu)先級別,是否打開弱監(jiān)聽)具體使用方法:詳見手冊,這里我copy來了。addEventListener    ()    方法public functio

11、n addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void語言版本 :     ActionScript 3.0RuntimeVersions:     AIR 1.0, Flash Player 9使用 EventDispatcher 對象注冊事件偵聽器對象,以使偵聽器能夠接收事件通知??梢詾樘囟愋偷氖录?、階段和優(yōu)先級在顯

12、示列表的所有節(jié)點上注冊事件偵聽器。成功注冊一個 事件偵聽器后,無法通過額外調(diào)用 addEventListener() 來更改其優(yōu)先級。要更改偵聽器的優(yōu)先級,必須首先調(diào)用 removeListener()。然后,可以使用新的優(yōu)先級再次注冊該偵聽器。請記住,注冊該偵聽器后,如果繼續(xù)調(diào)用具有不同 type 或 useCapture 值的 addEventListener(),則會創(chuàng)建單獨的偵聽器注冊。例如,如果首先注冊 useCapture 設(shè)置為 true 的偵聽器,則該偵聽器只在捕獲階段進行偵聽。如果使用同一個偵聽器對象再次調(diào)用 addEventListener(),并將 useCapture

13、設(shè)置為 false,那么便會擁有兩個單獨的偵聽器:一個在捕獲階段進行偵聽,另一個在目標和冒泡階段進行偵聽。不能只為 目標階段或冒泡階段注冊事件偵聽器。這些階段在注冊期間是成對出現(xiàn)的,因為冒泡階段只適用于目標節(jié)點的始祖。如果不再需要某個事件偵聽器,可調(diào)用 removeEventListener() 刪除它,否則會產(chǎn)生內(nèi)存問題。由于垃圾回收器不會刪除仍包含引用的對象,因此不會從內(nèi)存中自動刪除使用已注冊事件偵聽器的對象。復(fù)制 EventDispatcher 實例時并不復(fù)制其中附加的事件偵聽器。(如果新近創(chuàng)建的節(jié)點需要一個事件偵聽器,必須在創(chuàng)建該節(jié)點后附加該偵聽器。) 但是,如果移動 EventDis

14、patcher 實例,則其中附加的事件偵聽器也會隨之移動。如果在正在處理事件的節(jié)點上注冊事件偵聽器,則不 會在當前階段觸發(fā)事件偵聽器,但會在事件流的稍后階段觸發(fā),如冒泡階段。如果從正在處理事件的節(jié)點中刪除事件偵聽器,則該事件偵聽器仍由當前操作 觸發(fā)。刪除事件偵聽器后,決不會再次調(diào)用該事件偵聽器(除非再次注冊以備將來處理)。參數(shù)type:String 事件的類型。listener:Function 處理事件的偵聽器函數(shù)。此函數(shù)必須接受 Event 對象作為其唯一的參數(shù),并且不能返回任何結(jié)果,如下面的示例所示:function(evt:Event):void函數(shù)可以有任何名 稱。useCaptur

15、e:Boolean (default = false) 確定偵聽器是運行于捕獲階段、目標階段還是冒泡階段。如果將 useCapture 設(shè)置為 true,則偵聽器只在捕獲階段處理事件,而不在目標或冒泡階段處理事件。如果 useCapture 為 false,則偵聽器只在目標或冒泡階段處理事件。要在所有三個階段都偵聽事件,請調(diào)用 addEventListener 兩次:一次將 useCapture 設(shè)置為 true,一次將 useCapture 設(shè)置為 false.priority:int (default = 0) 事件偵聽器的優(yōu)先級。優(yōu)先級由一個帶符號的 32 位整數(shù)指定。數(shù)字越大,優(yōu)先級越

16、高。優(yōu)先級為 n 的所有偵聽器會在優(yōu)先級為 n -1 的偵聽器之前得到處理。如果兩個或更多個偵聽器共享相同的優(yōu)先級,則按照它們的添加順序進行處理。默認優(yōu)先級為 0。useWeakReference:Boolean (default = false) 確定對偵聽器的引用是強引用,還是弱引用。強引用(默認值)可防止您的偵聽器被當作垃圾回收。弱引用則沒有此作用。類級別成員函數(shù)不屬于垃圾回 收的對象,因此可以對類級別成員函數(shù)將 useWeakReference 設(shè)置為 true 而不會使它們受垃圾回收的影響。如果對作為嵌套內(nèi)部函數(shù)的偵聽器將 useWeakReference 設(shè)置為 true,則該函數(shù)

17、將作為垃圾回收并且不再是永久函數(shù)。如果創(chuàng)建對該內(nèi)部函數(shù)的引用(將該函數(shù)保存到另一個變量中),則該函數(shù)將不作為垃圾回收并仍將保持 永久。14.請問我想判斷一個字體是否是數(shù)字,用什么辦法去判斷呢?這問題問的有點奇怪。字體怎么可能是數(shù)字。如果是問,類型是否為數(shù)字,那就typeof一下,看他是不是int或者Number,如果是問字符串內(nèi)容 是否為數(shù)字,那也有很多辦法,比如說,讀出每個字符的ascii碼,判斷范圍,或者是var a:String=”1232d4;var b:Number=Number(a);var c:String=String(b);if(a=c)Alert.show(“yes”);e

18、lseAlert.show(“no”);15.請問我想判斷一個 字符或者一個對象的類型怎么判斷呢?應(yīng)該沒人出這樣的題吧? if 咯。類型的話就typeofActionScript 3.0 面試題1. as2與as3的有哪些區(qū)別?(5個特征)2. flash player 10.1 有哪些新特征?3. Adobe flash 平臺可以開發(fā)胖客戶端程序 嗎?說說你的了解。4. Adobe flash 家族還有哪些產(chǎn)品?怎么做選擇。5. Flash 可以直接去讀數(shù)據(jù)庫數(shù)據(jù)嗎?如果要實現(xiàn)有哪些方法?6. 你認為flash 這個技術(shù)怎樣?它可以做哪方面的事情?(從功能和行業(yè)說)7. Flash 目前最大

19、的問題是什么?8. 請列舉一下,你認為不錯的網(wǎng)站或者blog.9. 請列舉一下你知道的影響性能的幾個因素?10. Flash 可以實現(xiàn)cookies 功能嗎?用什么方法?11. 代碼var a = true; trace(a?”a”:”b”); 輸出什么?a12. 代碼var f:Function;trace(f=function()return 10,f()/2); 輸出什么?513. 請問你知道loader,URLLoader,URLStream這個三種動態(tài)加載資源的具體使用場合,以及有什么區(qū)別嘛?14. 請問我現(xiàn)在有一個正方形的圖片,我想把他做成圓形,有什么辦法呢?前提是用flex或者a

20、s315. Flash 可以實現(xiàn)套接字通信嗎?16. var letters:Array = "a", "b", "c"我想在這個數(shù)組里搜索 b 字符,請問怎么辦?for(var i:number=0;i<=letters.length;i+)if(letters=b')trace(i);17. 怎么樣轉(zhuǎn)換數(shù)組為字符串,怎么樣將字符串轉(zhuǎn)化為數(shù)組?18. 怎樣判斷一個值,是string 還是int?var mySprite:String = new String(“1);trace(mySprite as String);

21、trace(mySprite as int);19. 請問enterFrame和timerEvent這2個事件有什么區(qū)別?請說下具體的使用方法和相關(guān)的使用場合?20. 我現(xiàn)在給你100萬做一個flex項目,你認為成功的要素在哪呢?SD-Java&Flex Java&Flex高級開發(fā)工程師面試題如果克服FLEX的缺點如何動態(tài)變換皮膚FLEX與后臺交互的方法FLEX與JS的交互方法項目中所使用到的框架官方框架與PUREMVC有何區(qū)別PUREMVC框架的機制Flex AS面試題第一部分:AS3和Flex基礎(chǔ)1,AS3語言中,Array里面是不是可以放不同類型?2,創(chuàng)建常量知道怎么創(chuàng)建

22、嘛?3,請說出用private,internal,protected,static,final,public關(guān)鍵字修飾的對象的訪問權(quán)限以及子對象的繼承權(quán)限?4,請說出uint,int,number的區(qū)別,我想判斷一個對象是不是String類型或者是int類型如何做?5,如何返回一個對象的類型,undefined 和 null 是否一樣,如果不一樣能否說出其中的區(qū)別呢?6,如何判斷一個字符串s是不是數(shù)字?7,parseInt此方法轉(zhuǎn)化為int型的方法,你知道此方法的第二個參數(shù)是什么意思嘛?8,將一個number型的數(shù)值n如何轉(zhuǎn)換成int型和String型?9,如何清空一個數(shù)組?10,寫一個函數(shù)d

23、elArray(start:int,sum:int):Array.start表示刪除開始的位置,sum表示刪除的個數(shù),返回一個新數(shù)組。12,Math.round( ), Math.floor( ) 和Math.ceil( ) 三個方法都是四舍五入,有什么區(qū)別?13,寫一個函數(shù)給一個數(shù)組倒序排列,不使用數(shù)組自帶的reverse方法。能不能只用一次遍歷?14,有一個字符串s=12,12,34,13,56,76;能不能以,'為分隔符將它轉(zhuǎn)換成一個數(shù)組?15,自己寫一個方法實現(xiàn)以固定符號為分割的將字符換轉(zhuǎn)換成數(shù)組的功能,也就是將第14題目的功能自己實現(xiàn)。16,用最快速的方式給一個數(shù)值型數(shù)組按大

24、小排序。17,如何在數(shù)組里面查找元素?18,請說下你理解AS3的事件機制是什么機制?19,addEventListener里面有幾個參數(shù),分別是什么意思?20,用AS3如何自定義一個事件?21,不用AS3代碼方式能不能自定義一個事件?22,自定義一個方法,將一個元素插入到數(shù)組的指定位置,并返回新的數(shù)組。addItemAt(Item:*,index:int)。并說明一下*是什么意思。23,寫一個方法去除數(shù)組中的重復(fù)記錄并返回新的數(shù)組。24,F(xiàn)lex的項目運行時如何修改背景顏色?Flex3如何修改,F(xiàn)lex4如何修改?25,使用Flex Bulider如何跟蹤程序?26,請問Flex bulide

25、r3可以創(chuàng)建幾種不同的項目? Flex Builder4可以創(chuàng)建幾種不同的項目?27,什么是RSL,如何使用?28,如何使應(yīng)用去掉水平滾動條而顯示垂直滾動條?29,我想創(chuàng)建的視圖居中怎么辦?30,如何把MouseEvent 的localX 和localY 屬性轉(zhuǎn)化成全局坐標?31,我怎么設(shè)置把一個文本框(textInput),設(shè)置成一個密碼框?32,我想讓一個button鼠標移動上去變成手型,需要怎么設(shè)置?33,F(xiàn)lex4中VGroup的垂直間距如何設(shè)置?34,Alert如何添加一張圖片,如何設(shè)置背景圖片?35,Alert確定和取消按鈕我想讓他顯示為”同意”和”拒絕”;如何做?36,Array

26、Collection和Array在使用上有什么區(qū)別?37,DataGrid能不能用自帶的方法改變行顏色?38,導(dǎo)航器組件都有什么?39,TitleWindow的組件是可以拖動的,我不想讓他拖動我要怎么辦呢?40,Embed綁定圖片有什么缺點?41,我自己定義了一個組件,我想在組件里的屬性里設(shè)置幾個默認值,我要怎么設(shè)置呢?42,列舉出flex里面的幾個綁定數(shù)據(jù)對象的方式。43,DataGrid,List組件如何設(shè)置可以多選?44,tree控件中如何使用圖片?45,我想設(shè)置TabNavigator在運行時加載子頁面如何設(shè)置?46,Image組件能加載baidu上面的圖片嗎?或者網(wǎng)絡(luò)上面的圖片,如何

27、加載?47,Image組件如何設(shè)置不等比例縮放?48,如何給下拉列表框增加一個默認首選項?比如:請點擊選擇49,F(xiàn)lex中有線程的概念嗎?如果我想實現(xiàn)線程怎么做?50,enterFrame和timerEvent這2個事件有什么區(qū)別?請說下具體的使用方法和相關(guān)的使用場合? 第二部分,程序題目 請編寫代碼Flex實現(xiàn)功能。51,寫一個DataGrid綁定ArrayCollection數(shù)據(jù)的例子。要求每隔一秒鐘,數(shù)據(jù)刷新一次。52,在1的基礎(chǔ)上,去掉刷新實現(xiàn)選中多行刪除。53,在2的基礎(chǔ)上實現(xiàn)選中多行移動到另外一個DataGrid,并且原來的DataGrid將選中的移除。54,在1的基礎(chǔ)之上,用Ad

28、vanceDataGriid實現(xiàn)一個每隔一秒鐘刷新數(shù)據(jù)的例子,并且設(shè)置不同的2中行字體風格,比如紅色和綠色字體。55,用Flex4寫一個只有加法功能的計算器,不要求和計算其界面一樣,只要有2個輸入數(shù)值一個計算按鈕和一個顯示結(jié)果的文本框即可。56,F(xiàn)lex4調(diào)用遠程的xml數(shù)據(jù)并顯示在tree控件中。57,在6的基礎(chǔ)之上過濾遠程的xml數(shù)據(jù),并顯示在tree上。58,在DataGrid中放入圖片和button。59,一個button本身有一張背景圖片,實現(xiàn)鼠標移動上去換一張背景圖片,鼠標移開恢復(fù)原來的圖片。60,F(xiàn)lex中 如何獲得ColumnChart的xField運行時顯示的值? 問題地址:

29、 61,將ArrayCollection轉(zhuǎn)換成xml并彈出轉(zhuǎn)換結(jié)果。62,F(xiàn)lex過濾ArrayCollection的數(shù)據(jù),并且將符合條件的數(shù)據(jù)顯示在下拉列表里面,過濾掉的顯示在另一個下拉列表里面。63,給一個Alert彈出框?qū)崿F(xiàn)zoom彈出效果。64,判斷輸入的一個數(shù)值是不是素數(shù),如果是彈出“是”,否則彈出“否”。65,輸入一個數(shù)值,然后求出它的階乘。66,編寫一個調(diào)用遠程圖片的例子。一個文本輸入框,一個確定按鈕,一張圖片,輸入遠程的地址,點擊按鈕圖片內(nèi)容顯示遠程的圖片。68,編寫一個小例子,實現(xiàn)label文字點擊變色。69,自定義實現(xiàn)一個加載進度條。越漂亮越美觀越好。70,完成一個圖片瀏覽

30、的例子,自己設(shè)計界面,自己完成功能,遇到問題可以交流。要能讀取xml文件,展示圖片,界面風格隨意,界面效果隨意。越漂亮越好,越美觀越好。第三部分,高級題目 邏輯加操作給定足夠的 5角,3角,1角,9分,2分,1分這六種零錢,將1元(100)換成零錢,一共有多少種換法?用程序?qū)崿F(xiàn),并顯示出所有的結(jié)果。要求能輸入要轉(zhuǎn)換的零錢,以固定分隔符”,”分隔開不同的零錢。Flex面試題1.使用Flex Bulider3建立一下新的.mxml的頁面時默認的背景是藍色的,請問用什么辦法能修改掉此背景顏色,以至于下次創(chuàng)建時背景不是為默認的藍色的呢?請寫出你認為正確的方法。答:修改sdkframeworksproj

31、ectsframeworkdefault.css里Application的backgroundColor: #0000FF;2.使用Flex Bulider3如何跟蹤程序?答:我知道的三種1.trace() 2.設(shè)置斷點 3.當不在調(diào)試模式時可以調(diào)用as的Alert.show()或js的alert() 如:navigateToURL(new URLRequest(“javascript:alert(traceMsg)”), “_self”);3.請問enterFrame和timerEvent這2個事件有什么區(qū)別?請說下具體的使用方法和相關(guān)的使用場合?答:enterFrame是按幀發(fā)生,time

32、Event是根據(jù)設(shè)置的Timer類參數(shù)發(fā)生。如:用ENTER_FRAME控制小球圓周運動:addEventListener(Event.ENTER_FRAME,ballMove);用TIMER控制小球圓周運動:var myTimer:Timer=new Timer(83.3,0);/關(guān)于該數(shù)的設(shè)置見TIMER類的說明myTimer.start();myTimer.addEventListener(TimerEvent.TIMER,ballMove);4.請說下你理解AS3的事件機制是什么機制?你認為正確的就可以說出來.答:建立一個完整的事件機制需要四個步驟:注冊偵聽、分發(fā)事件、偵聽事件、移除偵

33、聽。建立成功后,觸發(fā)事件,事件流會進行捕獲、目標和冒泡三個階段。捕獲階段由FP沿顯示列表從根容器往下層層尋找觸發(fā)事件的目標對象,找到后即進入目標階段。然后,事件對象從目標對象再次沿顯示列表往上移動至根容器,遇到注冊偵聽的節(jié)點就調(diào)用偵聽函數(shù)。如果想中途中斷冒泡,可以使用stopPropagation。5.請問addEventListener里面有幾個參數(shù),你能說出具體的使用方法嘛?答:addEventListener(type:String, 事件的類型listener:Function, 監(jiān)聽函數(shù)useCapture:Boolean = false, 是否打開捕獲功能priority:int

34、= 0, 監(jiān)聽器優(yōu)先級別useWeakReference:Boolean = false 是否使用弱引用)6.請問我想判斷一個字體是否是數(shù)字,用什么辦法去判斷呢?答:isNaN(parseInt(strPara) 或 strPara is Number7.請問我想判斷一個字符或者一個對象的類型怎么判斷呢?答:typeof(obj)8.請問你了解 internal 控制符么?能說下具體使用方法和場合嘛?答:internal是默認的包內(nèi)訪問,體現(xiàn)了封裝思想和package模塊化思想。舉例來說,A類需要使用B類和C類的方法和屬性,但又不希望它們對其他類暴露,只要將A,B,C放入同一包內(nèi),包外的其他類

35、就無法使用B,C類了。9.我想在某一點不去執(zhí)行任何內(nèi)容,也就是說我想停止執(zhí)行了,你知道要怎么做嘛?答:設(shè)置斷點10.請問 undefined 和 null 是否一樣,如果不一樣能否說出其中的區(qū)別呢?答:undefined是尚未初始化的無類型變量或未初始化的動態(tài)對象屬性的特殊值。null是一個可以分配給變量的或由未提供數(shù)據(jù)的函數(shù)返回的特殊值。它們的相同之處在于都未初始化,不同在于undefined是無類型或動態(tài)類型的。如:var v1;trace(v1);/undefinedvar v2:*;trace(v2);/undefinedvar v3:Object;trace(v3);/null11.

36、創(chuàng)建常量知道怎么創(chuàng)建嘛?說下你是怎么創(chuàng)建的.答:const PI:Number = 3.1415926; public static const STARTUP:String = “startup”;12.請問用什么方法自定義一個事件呢?說下具體的方式.答:(1)擴展Event類或其子類(2)定義一個static const常量作為事件的type傳入構(gòu)造函數(shù)(3)定義一個私有變量作為事件的Data保存數(shù)據(jù),并為其添加getter和setter(4)覆蓋toString()和clone()方法13.請問怎么樣檢測本機的內(nèi)容呢,比如說,我想知道本機的操作系統(tǒng),是否有視頻等這些.答:flash.sy

37、stem.Capabilities.os 當前的操作系統(tǒng)flash.system.Capabilities.hasStreamingVideo系統(tǒng)是否可以播放視頻流14.請問用什么辦法解決安全域的問題?如果你不知道安全域的問題的話,可以在本機中綁定一下圖片,然后再放到服務(wù)器上,就會出現(xiàn)此問題了.答:配置安全沙箱的策略文件crossdomain.xml放置到服務(wù)器根目錄,如:15.有三種基本數(shù)字類型:number, int, 和uint 請問有什么區(qū)別.具體說一下.答:number數(shù)字類型包含浮點型(正0負); int 整型(正0負); uint(無符號整型)16.parseInt此方法轉(zhuǎn)化為i

38、nt型的方法,請問你知道此方法的第二個參數(shù)是什么意思嘛?答:指定第一個參數(shù)字符串的進制,范圍為2-36。例如parseInt(“100”,2)=417.Math.round( ), Math.floor( ) 和Math.ceil( ) 三個方法都是四舍五入,請問有什么區(qū)別?答:round 是取最接近的整數(shù),即原數(shù)0.5后取整;floor向下取整;ceil向上取整18.請問一個數(shù)組里可以放不同的類型嘛?答:可以,如var x:Array = 'a',1,new Button();19.var letters:Array = "a", "b"

39、;, "c"我想在這個數(shù)組里搜索c字符,請問怎么辦?答:for(var i:* in letters)if(lettersi = c) trace(“cs position is ” + i);或if(letters.toString().indexOf(c) > 0)trace( “cs position is ” + letters.toString().indexOf(c) );20.怎么樣轉(zhuǎn)換數(shù)組為字符串,怎么樣將字符串轉(zhuǎn)化為數(shù)組?答:數(shù)組->字符串:trace(new Array(a,'b,'c).join(“”).toString()

40、;字符串->數(shù)組: var arr:Array = new String(“a,b,c”).split(,);21.我想創(chuàng)建的視圖居中怎么辦?答:布局策略里面限定為居中,即horizontalAlign=”center” verticalAlign=”middle”;或者在每個控件都以舞臺的中心作為相對坐標來計算各自的xy值。22.請問知道層級的概念嘛?如果知道請問怎么樣交換2個組件的層級呢?答:層級表示的是顯示對象在顯示列表中的位置,從第0層開始,位于最下面。交換組件層級可以使用id交換,也可以直接交換層級索引。如:my_sprite.swapChildren(my_ball2, my

41、_ball1);my_sprite.swapChildrenAt(2, 1);23.請問你知道loader,URLLoader,URLStream這個三種動態(tài)加載資源的具體使用場合,以及有什么區(qū)別嘛?答:(1)Loader像2.0中MovieClip的loadMovie功能,用于加載外部的圖片和SWF文件。使用 load() 方法來啟動加載。被加載的顯示對象將作為 Loader 對象的子級添加。在使用Loader加載數(shù)據(jù),添加偵聽事件時,一定要給Loader的contentLoaderInfo屬性增加事件,而不是給Loader對象增加事件。(2)URLLoader類以文本、二進制數(shù)據(jù)或URL編

42、碼變量值對的形式先從URL下載數(shù)據(jù),然后才將數(shù)據(jù)用于ActionScript。它會發(fā)出有關(guān)下載進度的通知,通過bytesLoaded和bytesTotal屬性以及已調(diào)度的事件,可以監(jiān)視下載進度。(3)URLStream類提供對下載URL的低級訪問。數(shù)據(jù)一下載,便可隨即為應(yīng)用程序使用,這和使用URLLoader需要等到整個文件下載完不同。并且URLStream類還允許在完成下載前關(guān)閉流。已下載文件的內(nèi)容將作為原始二進制數(shù)據(jù)提供。(4)URLStream、URLLoader、Loader等讀取外部數(shù)據(jù)的類,類里的load方法參數(shù)值是URLRequest對象。如:var request:URLReq

43、uest=new URLRequest(“httpURL地址”);loader.load(request);24.如何把MouseEvent 的localX 和localY 屬性轉(zhuǎn)化成全局坐標?答:全局坐標系:stageX,stageY。原點位于舞臺左上角。本地坐標系:localX,localY。原點位于相對組件的左上角。內(nèi)容坐標系:contentMouseX和contentMouseY。描述鼠標相對于整個容器內(nèi)容的位置,用于當子組件的高或?qū)捒赡艹鋈萜髯陨碓O(shè)置高寬的情況。轉(zhuǎn)換方法:contentToGlobal內(nèi)容到全局坐標contentToLocal內(nèi)容到本地坐標globalToConte

44、nt全局到內(nèi)容坐標globalToLocal全局到本地坐標localToContent本地到內(nèi)容坐標localToGlobal本地到全局坐標25.請問我現(xiàn)在有一個正方形的圖片,我想把他做成圓形,有什么辦法呢?前提是用flex或者as3答:不清楚,是不是用BitMapData的draw方法實現(xiàn)呢?會的朋友請告訴我。26.請問新創(chuàng)建的一個sprite能否被直接加到ui容器里?如果不能請說出用什么辦法能加入.答:不能。先將sprite加入一個擴展自UIComponent的類,再加入UI容器。27.我怎么設(shè)置把一個文本框,設(shè)置成一個密碼框?答:將displayAsPassword屬性設(shè)置為true28

45、.我想在文本框里只能輸入abcd,有什么辦法能做到呢?如果我想輸入除abcd以外的其它都能輸入又怎么做呢?答:restrict=”a-d”。restrict=”(a-d)”29.請問condenseWhite 這個屬性在TextInput里是表示什么意思?答:僅會應(yīng)用于通過htmlText屬性設(shè)置的文本,默認為false。當設(shè)置為true時,會刪除文本中額外的換行和空白。30.我現(xiàn)在剛創(chuàng)建的文件的text為 this is a text,我想設(shè)置光標在 is 上,請問怎么設(shè)置?答:觸發(fā)事件,在偵聽函數(shù)上讓selectionBeginIndex=5,selectionEndIndex=631.請

46、問怎么樣在文本框里添加超鏈接?答:(1)使用文本框的htmlText屬性添加必須以”event:”開頭的超鏈接,如這兒(2)添加對TextEvent.LINK事件類型的偵聽,如addEventListener(TextEvent.LINK,clickLink);(3)”event:”后面的字符串將被包含在偵聽事件的text屬性里,如private function clickLink(event:TextEvent):voidvar cmdArray:Array = event.text.split(“|”);if(cmdArray0=”geturl”)navigateToURL(new UR

47、LRequest(cmdArray1,cmdArray2);32.我想獲取系統(tǒng)里的字體,請問怎么辦?答:import flash.text.Font;var allFonts:Array = Font.enumerateFonts(true);allFonts.sortOn(“fontName”, Array.CASEINSENSITIVE);var fontsLength:int=allFonts.length;for(var i:int=0;i<fontsLength;i+)trace("字體名稱:"+allFontsi.fontName+"字體樣式:&

48、quot;+allFontsi.fontStyle+"字體類型:"+allFontsi.fontType)33.substring( ),substr( ), slice(),請說下3種解析字符串的不同之處,以及適用場合?答:substring(v1,v2): 截取從v1到v2的字符串,包括v1,不包括v2substr(v1,v2): 從v1開始,截取v2長度slice(v1,v2):類似于substring,不過可以接受負值參數(shù),表示倒數(shù)第幾位34. var fruits:XML =AppleOrangePearWatermelon;以下有一個字符串,我現(xiàn)在知道了colo

49、r為orange,我想知道此color相對應(yīng)的name節(jié)點的值,我應(yīng)該怎么做?答:原題的XML不規(guī)范。找到name節(jié)點值可以用fruits.fruits(color=orange).name35.請說下目前使用flex和后臺交互的幾種方法,以及適用場合.答:(1)基于AMF消息格式的RemoteObject組件,如Lcds/BlazeDs,AMFPHP等。(2)基于SOAP消息格式的WebService,對于使用SOAP的服務(wù)器方便連接。(3)基于純文本或擁有良好格式的XML消息格式的HTTPService組件。一般來說,選用高效穩(wěn)定的RemoteObject中間件。36.我現(xiàn)在想在flex里

50、調(diào)用JS方法,我要怎么辦呢?答:直接在AS中使用ExternalInterface.call()來調(diào)用JS方法。如:import flash.external.ExternalInterface;ExternalInterface.call("simpleJSFunction");ExternalInterface.call("simpleJSFunctionWithParameters","myParameter");var result:String=ExternalInterface.call("simpleJSFun

51、ctionWithReturn");37.我想用JavaScript調(diào)用ActionScript函數(shù),我要怎么辦呢?答:使用ExternalInterface.addCallback在JavaScript里設(shè)置對Flex的回調(diào)方法并且在JavaScript里調(diào)用ActionScript方法。AS:ExternalInterface.addCallback("function1",callback1);privatefunctioncallback1():voidAlert.show("callback1executed");JS:contain

52、erswf.function1();38.FileReference 請說下此對象的幾個相關(guān)事件答:browse(typeFilter:Array = null):Boolean顯示一個文件瀏覽對話框,讓用戶選擇要上載的文件。cancel():void取消正在對該 FileReference 對象執(zhí)行的任何上載或下載操作。download(request:URLRequest, defaultFileName:String = null):void打開對話框,以允許用戶從遠程服務(wù)器下載文件.upload(request:URLRequest, uploadDataFieldName:Strin

53、g = "Filedata", testUpload:Boolean = false):void開始將用戶選擇的文件上載到遠程服務(wù)器。1.as2與as3的最主要區(qū)別是什么?答:首先,as2和as3是完全不同的語言,幾乎沒有兼容性可言。as2編譯用的AVM1虛擬機,as3用的AVM2,速度快,提供了一些基礎(chǔ)異常處理。 as3是純的OOP,強類型語言。as2不是。具體的差別有太多太多。2.flex的開發(fā)框架有哪些,它們有什么優(yōu)缺點?答:最常見的當然是Cairngorm、Puremvc了,此外還有Mate,Swiz等等,據(jù)說被廣泛應(yīng)用的已經(jīng)有10幾款了。Cairngorm作為Ad

54、obe官方出品,有著貴族血統(tǒng)的它比較全面,是這些框架中已知bug最少的,但是基于他的應(yīng)用相對臃腫復(fù)雜一些,需要對每個可以被觸發(fā)的事件寫一個對應(yīng)的Command,編碼量巨大,并且單元測試很不容易,不適合敏捷開發(fā)。Puremvc應(yīng)該是現(xiàn)在用的最多的as框架了。比較完善、并且與Cairngorm相比,更適合中小型應(yīng)用的開發(fā),它與Cairngorm一樣,也是以MVC模式為中心,并以Façade作為中央存儲器的單件類的形式進行開發(fā)的。說下Mate,它是一個比較奇怪的框架,是基于標簽的事件驅(qū)動型的。也就是說你不能再隨意的寫as類的,在使用Mate的情況下,只能用MXML來做這些事情。Swiz是M

55、ate的孿生兄弟,長的挺像,沒具體用過,不大了解。3.在flex開發(fā)中,很多代碼都寫在mxml文件里,為了做到mvc模式,你是怎么處理的。答:我認為mxml并不影響mvc模式啊。分兩種情況來討論,首先,是自己創(chuàng)建整個應(yīng)用結(jié)構(gòu)的時候,那我們可以手動將UI所在的mxml歸為一類,然后由Mediator去操作或者說控制這些組件既可了,然后Mediator又統(tǒng)一交給Controller去操作。如果采用其他框架來進行開發(fā)的話,那就更不用來考慮這個問題了,像Cairngorm、Puremvc之類的框架已經(jīng)很好的為我們解決了這些問題。只要按照它們的使用規(guī)范來進行開發(fā),自然沒有問題。4.如果發(fā)生內(nèi)存泄露,你是

56、如何解決的?答:在profile觀察中已經(jīng)內(nèi)存泄漏是沒有很好的解決辦法的,至少我不知道,我能做的只是盡量去避免這種情況的發(fā)生,比如說注意不要循環(huán)引用,特別是在使用Timer的時候要格外注意,不要忘記全局對象上的引用的清除,在創(chuàng)建控制器和模型的時候要注意一定要使用單件模式。在addEventListener時候盡量采用弱引用、自引用、或者子對象引用,以避免內(nèi)存泄漏。5.as3.0垃圾回收器是如何工作的?答:flash player 8之前采用的是引用計數(shù)法,在flash player 8 之后用的是標記法,簡單的說就是:從應(yīng)用的根節(jié)點開始,遍歷所有其上的引用,標記每個它所發(fā)現(xiàn)的對象。然后迭代遍歷

57、每個被標記的對象,標記它們的子對象。這個過程遞歸進行,直到Player遍歷了應(yīng)用的整個對象樹并標記了它所發(fā)現(xiàn)的每個東西。在這個過程進行的時候,可以安全地認為,內(nèi)存中那些沒有被打標記的對象沒有任何活動引用,因此可以被安全地釋放內(nèi)存。一般來說,flash player采用的是一種低頻的垃圾回收機制,F(xiàn)lash Player的垃圾回收發(fā)生在Flash Player需要另外請求內(nèi)存之前。但并不是每次應(yīng)用申請內(nèi)存時都會導(dǎo)致垃圾回收的執(zhí)行,只有當Flash占用的內(nèi)存緊張到一定程度時才會執(zhí)行真正的垃圾回收,一定程度上取決于客戶端計算機的物理內(nèi)存的大小。6 flex和后臺語言是如何交互的?答:見第35題。7.你是如何處理前端速度慢的問題?答:flex前端速度慢 其實仔細說應(yīng)該分2部分,1.是flex生成的swf由于SDK龐大的關(guān)系,swf體積也跟著龐大了,這我們可以做的就是用Module動態(tài)加載,還有就是RSL了。2.處理速度慢,遠程方法速度慢,這是AVM的硬傷了,基本沒有很好的解決方法,我們能做的只是讓這個異步進行的更完美一些,讓用戶在等待的過程中,做其他的事情,以至于讓用戶忽略這段等待的時間。8.flash與flex

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論