版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Flex3, ActionScript面試題集1.as2與as3.的最主要區(qū)別是什么?答:首先,as2和as3是完全不同的語言,幾乎沒有兼容性可言。as2編譯用的AVM1虛擬機(jī),as3用的AVM2,速度快,提供了一些基礎(chǔ)異常處理。 as3是純的OOP,強(qiáng)類型語言。as2不是。具體的差別有太多太多。2.flex的開發(fā)框架有哪些,它們有什么優(yōu)缺點(diǎn)?答: 最常見的當(dāng)然是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作為中央存儲器的單件類的形式 進(jìn)行開發(fā)的。說下Mate,它是一個比較奇怪的框架,是基于標(biāo)簽的事件驅(qū)動型的。也就是說你不能再隨意的寫as類的,在使用Mate的情況下,只能用 MXML來做這些事情。Swiz是Mate的孿生兄弟,長的挺像,沒具體用過,不大了解。3.在flex開發(fā)中,很多代碼都寫在mxml
3、文件里, 為了做到mvc模式,你是怎么處理的。我認(rèn)為mxml并不影響mvc模式啊。分兩種情況來討論,首先,是自己創(chuàng)建整個應(yīng)用結(jié)構(gòu)的時候,那我們可以手動將UI所在的mxml歸為一類,然后由 Mediator去操作或者說控制這些組件既可了,然后Mediator又統(tǒng)一交給Controller去操作。如果采用其他框架來進(jìn)行開發(fā)的話,那就更 不用來考慮這個問題了,像Cairngorm、Puremvc之類的框架已經(jīng)很好的為我們解決了這些問題。只要按照它們的使用規(guī)范來進(jìn)行開發(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 之后用的是標(biāo)記法,簡單的說就是:從應(yīng)用的根節(jié)點(diǎn)開始,遍歷所有其上的引用,標(biāo)記每個它所發(fā)現(xiàn)的對象。然后迭代遍歷每個被標(biāo)記的對象,標(biāo)記它們的 子對象。這個過程第歸進(jìn)行,直到Player遍歷了應(yīng)用的整個對象樹
5、并標(biāo)記了它所發(fā)現(xiàn)的每個東西。在這個過程技術(shù)的時候,可以安全地認(rèn)為,內(nèi)存中那些沒有 被打標(biāo)記的對象沒有任何活動引用,因此可以被安全地釋放內(nèi)存。一般來說,flash player采用的是一種低頻的垃圾回收機(jī)制,F(xiàn)lash Player的垃圾回收發(fā)生在Flash Player需要另外請求內(nèi)存之前。但并不是每次應(yīng)用申請內(nèi)存時都會導(dǎo)致垃圾回收的執(zhí)行,只有當(dāng)Flash占用的內(nèi)存緊張到一定程度時才會執(zhí)行真正的垃圾 回收,一定程度上取決于客戶端計算機(jī)的物理內(nèi)存的大小。6 flex和后臺語言是如何交互的?無疑就這兩種方法:remote object 或者是Http service7。你是如何處理前端速度慢的問題
6、?flex前端速度慢 其實(shí)仔細(xì)說應(yīng)該分2部分,1.是flex生成的swf由于SDK龐大的關(guān)系,swf體積也跟著龐大了,這我們可以做的就是用Module動態(tài)加載,還有就 是RSL了。2.處理速度慢,遠(yuǎn)程方法速度慢,這是AVM的硬傷了,基本沒有很好的解決方法,我們能做的只是讓這個異步進(jìn)行的更完美一些,讓用戶在等待的 過程中,做其他的事情,以至于讓用戶忽略這段等待的時間。8.flash與flex是如何協(xié)調(diào)開發(fā)的?這個問題可以這樣來理解,如果是確實(shí)需要用到FLEX SDK的應(yīng)用,那我們就可以建立一個flex工程,具體需要flash做UI的時候,輸出成swc作為flex的skin,如果說并不需要flex
7、 sdk,只是為了編碼方便而選擇flex的話,那我們只要建立一個as工程,讓flex作為flash的編碼器。9.使用Flex Bulider3建立一下新的.mxml的頁面時默認(rèn)的背景是藍(lán)色的,請問用什么辦法能修改掉此背景顏色,以至于下次創(chuàng)建時背景不是為默認(rèn)的藍(lán)色的呢?請 寫出你認(rèn)為正確的方法.還真不會,我的做法一般是在這個工程里面,建一個總的css,都在里面規(guī)范起來,包括背景色啊,還有字體大小等等。10. 使用Flex Bulider3如何跟蹤程序?裝個debug版本的flash player,到時候在FB里面F11 debug它咯。11. 請問enterFrame和timerEvent這2個
8、事件有什么區(qū)別?請說下具體的使用方法和相關(guān)的使用場合?不會 我覺得差不多,不過我一般用enterFrame,還請高人指點(diǎn)。12. 請說下你理解AS3的事件機(jī)制是什么機(jī)制?你認(rèn)為正確的就可以說出來.AS3事件流分三個階段:1.捕獲階段 (即由根節(jié)點(diǎn)流向子節(jié)點(diǎn),檢測每個節(jié)點(diǎn)是否注冊了監(jiān)聽器)2.目標(biāo)階段 (激發(fā)在目標(biāo)對象本身注冊的監(jiān)聽程序)3.冒泡階段 (從目標(biāo)節(jié)點(diǎn)到根節(jié)點(diǎn),檢測每個節(jié)點(diǎn)是否注冊了監(jiān)聽器)當(dāng)中涉及了兩個屬性target和currentTarget,target是事件的派發(fā)者,currentTarget是正在檢測的對象,當(dāng)開始了事件 流,事件的currentTarget屬性處于不斷變
9、化中.PS:注冊事件時捕獲階段默認(rèn)是關(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擴(kuò)展有兩點(diǎn)要注意:1.可以定義字符串常量代表事件類
10、型.2. 構(gòu)造函數(shù)必須調(diào)用父類的構(gòu)造函數(shù),super(type,bubbles,cancelable)3.擴(kuò)展Event可以使Event帶自定義變 量,從而可以傳遞數(shù)據(jù).13.請問addEventListener里面有幾個參數(shù),你能說出具體的使用方法嘛?這題出的有點(diǎn)像考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ǎn)上注冊事件偵聽器。成功注冊一個 事件偵聽器后,無法通過額外調(diào)用 addEventListener() 來更改其優(yōu)先級。要更改偵聽器的優(yōu)先級,必須首先調(diào)用 removeListener()。然后,可以使用新的優(yōu)先級再次注冊該偵聽器。請記住,注冊該偵聽器后,如果繼續(xù)調(diào)用具有不同 type 或 useCapture 值的 addEventListener(),則會創(chuàng)建單獨(dú)的偵聽器注冊。例如,如果首先注冊 useCapture 設(shè)置為 true 的偵聽器,則該偵聽器只在捕獲階段進(jìn)行偵聽。如果使用同一個偵聽器對象再次調(diào)用 addEventListener(),并將 useCapture
13、設(shè)置為 false,那么便會擁有兩個單獨(dú)的偵聽器:一個在捕獲階段進(jìn)行偵聽,另一個在目標(biāo)和冒泡階段進(jìn)行偵聽。不能只為 目標(biāo)階段或冒泡階段注冊事件偵聽器。這些階段在注冊期間是成對出現(xiàn)的,因?yàn)槊芭蓦A段只適用于目標(biāo)節(jié)點(diǎn)的始祖。如果不再需要某個事件偵聽器,可調(diào)用 removeEventListener() 刪除它,否則會產(chǎn)生內(nèi)存問題。由于垃圾回收器不會刪除仍包含引用的對象,因此不會從內(nèi)存中自動刪除使用已注冊事件偵聽器的對象。復(fù)制 EventDispatcher 實(shí)例時并不復(fù)制其中附加的事件偵聽器。(如果新近創(chuàng)建的節(jié)點(diǎn)需要一個事件偵聽器,必須在創(chuàng)建該節(jié)點(diǎn)后附加該偵聽器。) 但是,如果移動 EventDis
14、patcher 實(shí)例,則其中附加的事件偵聽器也會隨之移動。如果在正在處理事件的節(jié)點(diǎn)上注冊事件偵聽器,則不 會在當(dāng)前階段觸發(fā)事件偵聽器,但會在事件流的稍后階段觸發(fā),如冒泡階段。如果從正在處理事件的節(jié)點(diǎn)中刪除事件偵聽器,則該事件偵聽器仍由當(dāng)前操作 觸發(fā)。刪除事件偵聽器后,決不會再次調(diào)用該事件偵聽器(除非再次注冊以備將來處理)。參數(shù)type:String 事件的類型。listener:Function 處理事件的偵聽器函數(shù)。此函數(shù)必須接受 Event 對象作為其唯一的參數(shù),并且不能返回任何結(jié)果,如下面的示例所示:function(evt:Event):void函數(shù)可以有任何名 稱。useCaptur
15、e:Boolean (default = false) 確定偵聽器是運(yùn)行于捕獲階段、目標(biāo)階段還是冒泡階段。如果將 useCapture 設(shè)置為 true,則偵聽器只在捕獲階段處理事件,而不在目標(biāo)或冒泡階段處理事件。如果 useCapture 為 false,則偵聽器只在目標(biāo)或冒泡階段處理事件。要在所有三個階段都偵聽事件,請調(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)先級,則按照它們的添加順序進(jìn)行處理。默認(rèn)優(yōu)先級為 0。useWeakReference:Boolean (default = false) 確定對偵聽器的引用是強(qiáng)引用,還是弱引用。強(qiáng)引用(默認(rèn)值)可防止您的偵聽器被當(dāng)作垃圾回收。弱引用則沒有此作用。類級別成員函數(shù)不屬于垃圾回 收的對象,因此可以對類級別成員函數(shù)將 useWeakReference 設(shè)置為 true 而不會使它們受垃圾回收的影響。如果對作為嵌套內(nèi)部函數(shù)的偵聽器將 useWeakReference 設(shè)置為 true,則該函數(shù)
17、將作為垃圾回收并且不再是永久函數(shù)。如果創(chuàng)建對該內(nèi)部函數(shù)的引用(將該函數(shù)保存到另一個變量中),則該函數(shù)將不作為垃圾回收并仍將保持 永久。14.請問我想判斷一個字體是否是數(shù)字,用什么辦法去判斷呢?這問題問的有點(diǎn)奇怪。字體怎么可能是數(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ù)嗎?如果要實(shí)現(xiàn)有哪些方法?6. 你認(rèn)為flash 這個技術(shù)怎樣?它可以做哪方面的事情?(從功能和行業(yè)說)7. Flash 目前最大
19、的問題是什么?8. 請列舉一下,你認(rèn)為不錯的網(wǎng)站或者blog.9. 請列舉一下你知道的影響性能的幾個因素?10. Flash 可以實(shí)現(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 可以實(shí)現(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項(xiàng)目,你認(rèn)為成功的要素在哪呢?SD-Java&Flex Java&Flex高級開發(fā)工程師面試題如果克服FLEX的缺點(diǎn)如何動態(tài)變換皮膚FLEX與后臺交互的方法FLEX與JS的交互方法項(xiàng)目中所使用到的框架官方框架與PUREMVC有何區(qū)別PUREMVC框架的機(jī)制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,自己寫一個方法實(shí)現(xiàn)以固定符號為分割的將字符換轉(zhuǎn)換成數(shù)組的功能,也就是將第14題目的功能自己實(shí)現(xiàn)。16,用最快速的方式給一個數(shù)值型數(shù)組按大
24、小排序。17,如何在數(shù)組里面查找元素?18,請說下你理解AS3的事件機(jī)制是什么機(jī)制?19,addEventListener里面有幾個參數(shù),分別是什么意思?20,用AS3如何自定義一個事件?21,不用AS3代碼方式能不能自定義一個事件?22,自定義一個方法,將一個元素插入到數(shù)組的指定位置,并返回新的數(shù)組。addItemAt(Item:*,index:int)。并說明一下*是什么意思。23,寫一個方法去除數(shù)組中的重復(fù)記錄并返回新的數(shù)組。24,F(xiàn)lex的項(xiàng)目運(yùn)行時如何修改背景顏色?Flex3如何修改,F(xiàn)lex4如何修改?25,使用Flex Bulider如何跟蹤程序?26,請問Flex bulide
25、r3可以創(chuàng)建幾種不同的項(xiàng)目? Flex Builder4可以創(chuàng)建幾種不同的項(xiàng)目?27,什么是RSL,如何使用?28,如何使應(yīng)用去掉水平滾動條而顯示垂直滾動條?29,我想創(chuàng)建的視圖居中怎么辦?30,如何把MouseEvent 的localX 和localY 屬性轉(zhuǎn)化成全局坐標(biāo)?31,我怎么設(shè)置把一個文本框(textInput),設(shè)置成一個密碼框?32,我想讓一個button鼠標(biāo)移動上去變成手型,需要怎么設(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綁定圖片有什么缺點(diǎn)?41,我自己定義了一個組件,我想在組件里的屬性里設(shè)置幾個默認(rèn)值,我要怎么設(shè)置呢?42,列舉出flex里面的幾個綁定數(shù)據(jù)對象的方式。43,DataGrid,List組件如何設(shè)置可以多選?44,tree控件中如何使用圖片?45,我想設(shè)置TabNavigator在運(yùn)行時加載子頁面如何設(shè)置?46,Image組件能加載baidu上面的圖片嗎?或者網(wǎng)絡(luò)上面的圖片,如何
27、加載?47,Image組件如何設(shè)置不等比例縮放?48,如何給下拉列表框增加一個默認(rèn)首選項(xiàng)?比如:請點(diǎn)擊選擇49,F(xiàn)lex中有線程的概念嗎?如果我想實(shí)現(xiàn)線程怎么做?50,enterFrame和timerEvent這2個事件有什么區(qū)別?請說下具體的使用方法和相關(guān)的使用場合? 第二部分,程序題目 請編寫代碼Flex實(shí)現(xiàn)功能。51,寫一個DataGrid綁定ArrayCollection數(shù)據(jù)的例子。要求每隔一秒鐘,數(shù)據(jù)刷新一次。52,在1的基礎(chǔ)上,去掉刷新實(shí)現(xiàn)選中多行刪除。53,在2的基礎(chǔ)上實(shí)現(xiàn)選中多行移動到另外一個DataGrid,并且原來的DataGrid將選中的移除。54,在1的基礎(chǔ)之上,用Ad
28、vanceDataGriid實(shí)現(xiàn)一個每隔一秒鐘刷新數(shù)據(jù)的例子,并且設(shè)置不同的2中行字體風(fēng)格,比如紅色和綠色字體。55,用Flex4寫一個只有加法功能的計算器,不要求和計算其界面一樣,只要有2個輸入數(shù)值一個計算按鈕和一個顯示結(jié)果的文本框即可。56,F(xiàn)lex4調(diào)用遠(yuǎn)程的xml數(shù)據(jù)并顯示在tree控件中。57,在6的基礎(chǔ)之上過濾遠(yuǎn)程的xml數(shù)據(jù),并顯示在tree上。58,在DataGrid中放入圖片和button。59,一個button本身有一張背景圖片,實(shí)現(xiàn)鼠標(biāo)移動上去換一張背景圖片,鼠標(biāo)移開恢復(fù)原來的圖片。60,F(xiàn)lex中 如何獲得ColumnChart的xField運(yùn)行時顯示的值? 問題地址:
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)用遠(yuǎn)程圖片的例子。一個文本輸入框,一個確定按鈕,一張圖片,輸入遠(yuǎn)程的地址,點(diǎn)擊按鈕圖片內(nèi)容顯示遠(yuǎn)程的圖片。68,編寫一個小例子,實(shí)現(xiàn)label文字點(diǎn)擊變色。69,自定義實(shí)現(xiàn)一個加載進(jìn)度條。越漂亮越美觀越好。70,完成一個圖片瀏覽
30、的例子,自己設(shè)計界面,自己完成功能,遇到問題可以交流。要能讀取xml文件,展示圖片,界面風(fēng)格隨意,界面效果隨意。越漂亮越好,越美觀越好。第三部分,高級題目 邏輯加操作給定足夠的 5角,3角,1角,9分,2分,1分這六種零錢,將1元(100)換成零錢,一共有多少種換法?用程序?qū)崿F(xiàn),并顯示出所有的結(jié)果。要求能輸入要轉(zhuǎn)換的零錢,以固定分隔符”,”分隔開不同的零錢。Flex面試題1.使用Flex Bulider3建立一下新的.mxml的頁面時默認(rèn)的背景是藍(lán)色的,請問用什么辦法能修改掉此背景顏色,以至于下次創(chuàng)建時背景不是為默認(rèn)的藍(lán)色的呢?請寫出你認(rèn)為正確的方法。答:修改sdkframeworksproj
31、ectsframeworkdefault.css里Application的backgroundColor: #0000FF;2.使用Flex Bulider3如何跟蹤程序?答:我知道的三種1.trace() 2.設(shè)置斷點(diǎn) 3.當(dāng)不在調(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控制小球圓周運(yùn)動:addEventListener(Event.ENTER_FRAME,ballMove);用TIMER控制小球圓周運(yùn)動:var myTimer:Timer=new Timer(83.3,0);/關(guān)于該數(shù)的設(shè)置見TIMER類的說明myTimer.start();myTimer.addEventListener(TimerEvent.TIMER,ballMove);4.請說下你理解AS3的事件機(jī)制是什么機(jī)制?你認(rèn)為正確的就可以說出來.答:建立一個完整的事件機(jī)制需要四個步驟:注冊偵聽、分發(fā)事件、偵聽事件、移除偵
33、聽。建立成功后,觸發(fā)事件,事件流會進(jìn)行捕獲、目標(biāo)和冒泡三個階段。捕獲階段由FP沿顯示列表從根容器往下層層尋找觸發(fā)事件的目標(biāo)對象,找到后即進(jìn)入目標(biāo)階段。然后,事件對象從目標(biāo)對象再次沿顯示列表往上移動至根容器,遇到注冊偵聽的節(jié)點(diǎn)就調(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是默認(rèn)的包內(nèi)訪問,體現(xiàn)了封裝思想和package模塊化思想。舉例來說,A類需要使用B類和C類的方法和屬性,但又不希望它們對其他類暴露,只要將A,B,C放入同一包內(nèi),包外的其他類
35、就無法使用B,C類了。9.我想在某一點(diǎn)不去執(zhí)行任何內(nèi)容,也就是說我想停止執(zhí)行了,你知道要怎么做嘛?答:設(shè)置斷點(diǎn)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)擴(kuò)展Event類或其子類(2)定義一個static const常量作為事件的type傳入構(gòu)造函數(shù)(3)定義一個私有變量作為事件的Data保存數(shù)據(jù),并為其添加getter和setter(4)覆蓋toString()和clone()方法13.請問怎么樣檢測本機(jī)的內(nèi)容呢,比如說,我想知道本機(jī)的操作系統(tǒng),是否有視頻等這些.答:flash.sy
37、stem.Capabilities.os 當(dāng)前的操作系統(tǒng)flash.system.Capabilities.hasStreamingVideo系統(tǒng)是否可以播放視頻流14.請問用什么辦法解決安全域的問題?如果你不知道安全域的問題的話,可以在本機(jī)中綁定一下圖片,然后再放到服務(wù)器上,就會出現(xiàn)此問題了.答:配置安全沙箱的策略文件crossdomain.xml放置到服務(wù)器根目錄,如:15.有三種基本數(shù)字類型:number, int, 和uint 請問有什么區(qū)別.具體說一下.答:number數(shù)字類型包含浮點(diǎn)型(正0負(fù)); int 整型(正0負(fù)); uint(無符號整型)16.parseInt此方法轉(zhuǎn)化為i
38、nt型的方法,請問你知道此方法的第二個參數(shù)是什么意思嘛?答:指定第一個參數(shù)字符串的進(jìn)制,范圍為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”;或者在每個控件都以舞臺的中心作為相對坐標(biāo)來計算各自的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類以文本、二進(jìn)制數(shù)據(jù)或URL編
42、碼變量值對的形式先從URL下載數(shù)據(jù),然后才將數(shù)據(jù)用于ActionScript。它會發(fā)出有關(guān)下載進(jìn)度的通知,通過bytesLoaded和bytesTotal屬性以及已調(diào)度的事件,可以監(jiān)視下載進(jìn)度。(3)URLStream類提供對下載URL的低級訪問。數(shù)據(jù)一下載,便可隨即為應(yīng)用程序使用,這和使用URLLoader需要等到整個文件下載完不同。并且URLStream類還允許在完成下載前關(guān)閉流。已下載文件的內(nèi)容將作為原始二進(jìn)制數(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)化成全局坐標(biāo)?答:全局坐標(biāo)系:stageX,stageY。原點(diǎn)位于舞臺左上角。本地坐標(biāo)系:localX,localY。原點(diǎn)位于相對組件的左上角。內(nèi)容坐標(biāo)系:contentMouseX和contentMouseY。描述鼠標(biāo)相對于整個容器內(nèi)容的位置,用于當(dāng)子組件的高或?qū)捒赡艹鋈萜髯陨碓O(shè)置高寬的情況。轉(zhuǎn)換方法:contentToGlobal內(nèi)容到全局坐標(biāo)contentToLocal內(nèi)容到本地坐標(biāo)globalToConte
44、nt全局到內(nèi)容坐標(biāo)globalToLocal全局到本地坐標(biāo)localToContent本地到內(nèi)容坐標(biāo)localToGlobal本地到全局坐標(biāo)25.請問我現(xiàn)在有一個正方形的圖片,我想把他做成圓形,有什么辦法呢?前提是用flex或者as3答:不清楚,是不是用BitMapData的draw方法實(shí)現(xiàn)呢?會的朋友請告訴我。26.請問新創(chuàng)建的一個sprite能否被直接加到ui容器里?如果不能請說出用什么辦法能加入.答:不能。先將sprite加入一個擴(kuò)展自UIComponent的類,再加入UI容器。27.我怎么設(shè)置把一個文本框,設(shè)置成一個密碼框?答:將displayAsPassword屬性設(shè)置為true28
45、.我想在文本框里只能輸入abcd,有什么辦法能做到呢?如果我想輸入除abcd以外的其它都能輸入又怎么做呢?答:restrict=”a-d”。restrict=”(a-d)”29.請問condenseWhite 這個屬性在TextInput里是表示什么意思?答:僅會應(yīng)用于通過htmlText屬性設(shè)置的文本,默認(rèn)為false。當(dāng)設(shè)置為true時,會刪除文本中額外的換行和空白。30.我現(xiàn)在剛創(chuàng)建的文件的text為 this is a text,我想設(shè)置光標(biāo)在 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,不過可以接受負(fù)值參數(shù),表示倒數(shù)第幾位34. var fruits:XML =AppleOrangePearWatermelon;以下有一個字符串,我現(xiàn)在知道了colo
49、r為orange,我想知道此color相對應(yīng)的name節(jié)點(diǎn)的值,我應(yīng)該怎么做?答:原題的XML不規(guī)范。找到name節(jié)點(diǎn)值可以用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打開對話框,以允許用戶從遠(yuǎn)程服務(wù)器下載文件.upload(request:URLRequest, uploadDataFieldName:Strin
53、g = "Filedata", testUpload:Boolean = false):void開始將用戶選擇的文件上載到遠(yuǎn)程服務(wù)器。1.as2與as3的最主要區(qū)別是什么?答:首先,as2和as3是完全不同的語言,幾乎沒有兼容性可言。as2編譯用的AVM1虛擬機(jī),as3用的AVM2,速度快,提供了一些基礎(chǔ)異常處理。 as3是純的OOP,強(qiáng)類型語言。as2不是。具體的差別有太多太多。2.flex的開發(fā)框架有哪些,它們有什么優(yōu)缺點(diǎn)?答:最常見的當(dāng)然是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作為中央存儲器的單件類的形式進(jìn)行開發(fā)的。說下Mate,它是一個比較奇怪的框架,是基于標(biāo)簽的事件驅(qū)動型的。也就是說你不能再隨意的寫as類的,在使用Mate的情況下,只能用MXML來做這些事情。Swiz是M
55、ate的孿生兄弟,長的挺像,沒具體用過,不大了解。3.在flex開發(fā)中,很多代碼都寫在mxml文件里,為了做到mvc模式,你是怎么處理的。答:我認(rèn)為mxml并不影響mvc模式啊。分兩種情況來討論,首先,是自己創(chuàng)建整個應(yīng)用結(jié)構(gòu)的時候,那我們可以手動將UI所在的mxml歸為一類,然后由Mediator去操作或者說控制這些組件既可了,然后Mediator又統(tǒng)一交給Controller去操作。如果采用其他框架來進(jìn)行開發(fā)的話,那就更不用來考慮這個問題了,像Cairngorm、Puremvc之類的框架已經(jīng)很好的為我們解決了這些問題。只要按照它們的使用規(guī)范來進(jìn)行開發(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 之后用的是標(biāo)記法,簡單的說就是:從應(yīng)用的根節(jié)點(diǎn)開始,遍歷所有其上的引用,標(biāo)記每個它所發(fā)現(xiàn)的對象。然后迭代遍歷
57、每個被標(biāo)記的對象,標(biāo)記它們的子對象。這個過程遞歸進(jìn)行,直到Player遍歷了應(yīng)用的整個對象樹并標(biāo)記了它所發(fā)現(xiàn)的每個東西。在這個過程進(jìn)行的時候,可以安全地認(rèn)為,內(nèi)存中那些沒有被打標(biāo)記的對象沒有任何活動引用,因此可以被安全地釋放內(nèi)存。一般來說,flash player采用的是一種低頻的垃圾回收機(jī)制,F(xiàn)lash Player的垃圾回收發(fā)生在Flash Player需要另外請求內(nèi)存之前。但并不是每次應(yīng)用申請內(nèi)存時都會導(dǎo)致垃圾回收的執(zhí)行,只有當(dāng)Flash占用的內(nèi)存緊張到一定程度時才會執(zhí)行真正的垃圾回收,一定程度上取決于客戶端計算機(jī)的物理內(nèi)存的大小。6 flex和后臺語言是如何交互的?答:見第35題。7.你是如何處理前端速度慢的問題?答:flex前端速度慢 其實(shí)仔細(xì)說應(yīng)該分2部分,1.是flex生成的swf由于SDK龐大的關(guān)系,swf體積也跟著龐大了,這我們可以做的就是用Module動態(tài)加載,還有就是RSL了。2.處理速度慢,遠(yuǎn)程方法速度慢,這是AVM的硬傷了,基本沒有很好的解決方法,我們能做的只是讓這個異步進(jìn)行的更完美一些,讓用戶在等待的過程中,做其他的事情,以至于讓用戶忽略這段等待的時間。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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度坡屋面小青瓦施工質(zhì)量監(jiān)督與整改服務(wù)合同
- 二零二五年度新加坡留學(xué)就業(yè)輔導(dǎo)合同4篇
- 2025專業(yè)級防雷系統(tǒng)設(shè)計與施工監(jiān)管合同3篇
- 商場自動扶梯安裝與維護(hù)服務(wù)合同(2025年度)
- 二零二五版羅絲與楊洋的離婚協(xié)議及財產(chǎn)分割及子女撫養(yǎng)協(xié)議4篇
- 2025年度家具退貨及維修保養(yǎng)服務(wù)協(xié)議范本
- 2025版GB∕T30057(環(huán)保)固體廢物處理與資源化利用合同3篇
- 二零二五年度歷史文化遺址草坪保護(hù)與旅游合同3篇
- 二零二五年度醫(yī)療信息化系統(tǒng)建設(shè)與維護(hù)合同2篇
- 2025版新型綠色建筑勞務(wù)分包合同范本3篇
- 副總經(jīng)理招聘面試題與參考回答(某大型國企)2024年
- PDCA循環(huán)提高護(hù)士培訓(xùn)率
- 2024-2030年中國智慧水務(wù)行業(yè)應(yīng)用需求分析發(fā)展規(guī)劃研究報告
- 《獅子王》電影賞析
- 河北省保定市定州市2025屆高二數(shù)學(xué)第一學(xué)期期末監(jiān)測試題含解析
- 中醫(yī)護(hù)理人文
- 2024-2030年中國路亞用品市場銷售模式與競爭前景分析報告
- 貨物運(yùn)輸安全培訓(xùn)課件
- 前端年終述職報告
- 2024小說推文行業(yè)白皮書
- 市人民醫(yī)院關(guān)于開展“改善就醫(yī)感受提升患者體驗(yàn)主題活動”2023-2025年實(shí)施方案及資料匯編
評論
0/150
提交評論