1:flex是否可以嵌入html?
可以,需要用到iframe,該iframe并非它定義好,而需要自己定義.
2:flex可否訪問系統里的資源,比如C盤D盤文件?
不可以,AIR可以.
3:flex可否對文件進行操作?
不可以,它沒IO的操作,需要調用java或其他語言對文件進行讀寫等.
4:為什么讀取數據是Object object?
讀取的數據類型為Object,建議轉換成string.如果不行就debug查看object里是否還有很多層次,如果有再依次取出.
5:如何訪問父級對象?
parentApplication.
6:如何去掉滾動條?
橫條:horiz
豎條: verticalScrollPolicy=”off”
8:flex默認編碼是什么格式?
utf-8
9:為什么我后臺jsp傳回flex端為亂碼?
request.getParameter(”name”).getBytes(”ISO8859-1″), “utf-8″); 或 request.charaterset(”UTF-8″).
11:如何改變每根柱子的顏色?
<mx:series>
<mx:ColumnSeries …
<mx:fill>
<mx:RadialGradient>
<mx:entries>
<mx:GradientEntry
color=”#EF7651″ />
<mx:GradientEntry
color=”#994C34″ ratio=”1″/>
</mx:entries>
</mx:RadialGradient>
</mx:fill>
<!-一個fill為1根->
12:如何改變圖片縮放大小?
可以使用Resize.
例:<mx:Resize id=”particular2″ widthBy=”2″ widthFrom=”323″ widthTo=”-691″ target=”{canvas2}”/>
13:日期使用.
Date.getUTCMonth()//返回月
Date.getFullYear()//按照本地時間返回 4 位數字的年份數
Date.getDate()//按照本地時間返回某天是當月的第幾天
Date.getDay() 按照本地時間返回某天是周幾
關于顯示格式可以使用format方法.
14:swf與swf之間可否交互?
可以,使用LocalConnection.
15:PopUpManager居中問題.
PopUpManager.centerPopUp(PopUpManager.createPopUp(DisplayObject (Application.application),TitleWindow,true);).
16:flex訪問,解決安全限制,破沙河.
crossdomain.xml:
<?xml version=”1.0″ encoding=”utf-8″?>
<cross-domain-policy>
<allow-access-from domain=”*”/>
</cross-domain-policy>
存放在服務器和項目一起根目錄下.*代表全部可以訪問.
命名為crossdomain,flex默認讀取.
17:flex可否接收鍵盤?
可以.首先XX.setFocus(),設置焦點在某容器/控件之上,
mc.addEventListener(KeyboardEvent.KEY_DOWN,keyIsDown);//添加響應事件
private function keyIsDown(evt:KeyboardEvent):void
{
//evt.keyCode鍵盤對應碼
}
18:tree如何默認展開?
myTree.setIsOpen(myTree.getNodeDisplayedAt(0), true);//展開某個
var index = 0;
var node = TreFolder.getNodeDisplayedAt(index);
while(node != undefined){
TreFolder.setIsOpen(node,true);
index ++;
node = TreFolder.getNodeDisplayedAt(index);
}//true為全部展開false為全部手起
19:如何修改Alert樣式?
字體為例:
<mx:Style>
Alert
{
fontSize:12;
}
</mx:Style>
20:如何改變鼠標的指針?
[Embed(source=”hand.jpg”)]
private var handCursorSymbol:Class;//定義圖片
CursorManager.setCursor(handCursorSymbol);//進行設置
21.如何使用全屏模式?
stage.displayState = StageDisplayState.NORMAL;//還原
stage.displayState = StageDisplayState.FULL_SCREEN; //全屏
22.如何制作自定義反鍵?
var myContextMenu:ContextMenu = new ContextMenu();
myContextMenu.hideBuiltInItems();
var item1:ContextMenuItem = new ContextMenuItem(”item”);
myContextMenu.customItems.push(item1);//加入右鍵
item1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler1);//為 item1添加點擊響應
23:如何制作和使用swc?
new->Flex Library project.
在屬性里選擇Flex Library Build Path勾選你要編譯的類//編譯后bin里即是swc.
使用:找到要使用該swc的工程,屬性,Flex Build Path,點擊add swc即可.
http://www.riachina.com/showtopic-11341.aspx
24:如何使用ShareObject?
ShareObject就像cookies一樣…
會生成一個文件來保存你所需要交互的數據…
提供方法:clear() //刪除本地共享對象
flush() //立即把共享對象數據寫入本地文件
getLocal()// 創建或連接本地共享對象;
25.Flex常用的數據交互.httpservice和webservice.(remote可查看Flex + LCDS + Java 入門教程)
1.使用httpservice
<mx:HTTPService id=”myhttp” url=”you httpservice url” result=”doResult(event)” >
<mx:request xmlns=”">
<username>
{xxx} //此處為你要傳遞給后臺的參數,也可以不用request.(可選),還有其他寫法,此為其1.
</username>
</mx:request>
</HTTPService>
private function doResult(evt:ResultEvent):void
{
//此處為myhttp send后,由后臺傳回的數據
}
2:使用webservice
ws一般都以wsdl存在….net里可以直接執行asmx查看和測試方法 java也提供了一個xml 工具達到同樣效果.確定ws成功那么就可以開始編寫flex來通訊了.
<mx:WebService id=”FlexSite” wsdl=”http://localhost/FlexSite/Server2Flex.asmx?wsdl” showBusyCursor=”true” useProxy=”false”>
<mx:operation name=”HelloWorld” result=”onWs(event)”> <!–這里對應WEBSERVICE的方法名,在我的WS里有HelloWorld暴露方法–>
<mx:request> <!–接收方法參數–>
<mx:UserName>//參數名
{name}//參數值
</mx:UserName>
</mx:request>
</mx:operation>
</mx:WebService>
private function onWs(event:ResultEvent):void
{
//得到ws的返回….
}
FlexSite.HelloWorld.send();//調用HelloWorld方法,利用onWs接收返回值
26. 經常有些人問哪種速度塊些,簡單做了測試列舉如下
httpservice,webservice,json,remote(.net)數據服務時間比較。
名稱 1 2 3 4 5 平均(s)
JSON 1672 828 765 797 807 0.9738
httpservice 2610 2547 2485 2375 2500 2.5034
webservice 2657 2328 2797 2511 2375 2.5336
remote 437 360 344 454 411 0.4012
10000條數據測試結果
27:實現類似HTML里的<A>標簽的超鏈接功能.
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” xmlns:view=”view.*” creati>
<mx:String id=”test”>
<![CDATA[<a href=”event:”><u>click</u></a> label]]>
</mx:String>
<mx:Script>
<![CDATA[
import mx.controls.Label;
import mx.controls.Alert;
private function initApp():void
{
var lbl:Label = new Label();
lbl.htmlText = test;
lbl.selectable = true;
lbl.addEventListener(TextEvent.LINK, label_link);
this.addChild(lbl);
}
private function label_link(evt:TextEvent):void {
Alert.show(”click .”);
//這里處理你要進行的跳轉
}
]]>
</mx:Script>
</mx:Application>
.問:在as2中trace(mc._url)可以獲得文件的位置,那么在as3中改成什么了?
答:DisplayObject.loaderInfo.parameters
2.問:FLEX中如何快速注釋?
答:shift+ctrl+c / shift+ctrl+d 加AS3代碼注解塊
3.問:FLEX中除了上面的快捷鍵還有中哪些?
答:Ctrl-F11: 執行(Run) F11: 除錯(Debug) Ctrl-D: 刪除本列(Delete line ) Alt-/: 文字自動完成
4.問:當我用addChild加入一個MC后,怎樣才能得到這個MC的全局坐標呢?
答:mc.getBounds(stage) / stage.localToGlobal(mc)
5.問:as3中如何設置拖動,as2這樣的mc.onPress=function(){startDrag(mc,false,10,100,110,100);}
答:mc.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
function onMouseDown(e:MouseEvent):void{
var t:Sprite = e.target as Sprite;
t.startDrag(mc,false,10,100,110,100);
}
6.問:Flex如果修改組件樣式?
答:和as2里差不多.如:Alert組件,新建兩個樣式。
<mx:Style>
AlertTitle{
font-size: 12pt;
font-weight: bold;
}
AlertMessage{
font-size: 12pt;
}
<mx:Style/>
Alert.titleStyleDeclaration = "AlertTitle";
Alert.messageStyleDeclaration = "AlertMessage";
//
ToolTip就只要建立樣式就行了.<mx:TextInput width="500" toolTip="請填寫公司全稱" />
ToolTip {
font-size: 12pt;
}
7.問:HTTPService是不是只可以得到XML數據格式的數據?
答:不是
8.問:HTTPService是不是可以請求a.xml?
答:可以,任何的都行.
9:問:如何在運行時加載數據
答:將creationComplete方法添加到應用程序標簽里后---creationComplete="productsRequest.send()
10:問:FLEX如何跳轉頁面?
答:click="navigateToURL(new URLRequest(http://www.ialway.com));"
11:問:怎么判斷datagrid的selectitem是否為空?
答:就是selectindex是不是等于-1.
12:問:datagrid中可以多選幾行吧,如何設參數?
答:allowDragSelection="true" allowMultipleSelection="true"
13:embed標簽只能用flex編譯的時候用,在flash9中編譯無效
14:問:eval的問題,as3沒有eval了,有什么替代方法?
答:類似這樣的:
for (var i:uint=0; i<10; i++) {
(getChildByName("mytext"+i) as TextField).text=i.toString()
}