flex常见实在汇总(二)

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()

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值