码迷,mamicode.com
首页 > 其他好文 > 详细

【FLEX教程】#008 开发中的问题笔记(慢更…)

时间:2015-01-04 13:33:16      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:

在这里记录一下个人在FLEX开发中遇到的一些问题。方便一些遇到同样问题的朋友们,能够快速的解决这些问题。

这篇笔记我会慢慢的更新,(PS:有遇到问题就往上面更….)


2015年1月4日 12:53:55  请求txt中数据格式问题

情景:用Flex开发前端的时候,服务端的接口还没有写好。 不能等服务端接口写好再做,这样拖慢进度。

因此,用了虚假的数据,从txt里面读取出来。

问题:Txt格式是这样的:

{
    "SysInfo": {
        "Name": "综合应用系统",
        "ID": "1"
    },
    "ModuleConfig": {
        "Name": "xxxxx"
    }
}

结果用UrlLoader请求回数据,解析成JSON对象的时候,报错了。

解析代码:(corelib.swc 里面封装好的解析方法)

var json:String = e.target.data as String;
var data:Object = com.adobe.serialization.json.JSON.decode(json);

错误:Error: Unexpected  encountered  …..(一大串,你出错位置)

解决方案:把txt中的JSON压缩一下, 就 ok 了。


2015年1月4日 13:14:03  Flex加载类库的机制问题

问题描述:Flex加载包的机制: 不管 import 多少包,Flex只会编译你代码中有使用的包。

例子:导入了以下四个包。

import mx.controls.Alert;
import mx.controls.Button;
import mx.controls.CheckBox;
import mx.controls.ComboBox;

代码中,没有用到下拉框这个东西(ComboBox),那么Flex就不会把 这个包编辑到SWF中。

仔细想想是不是好像没有存在什么问题??   正常情况下,的确是没有问题的。

但是如果我根据 数据库中保存的控件类名(Button,ComboBox…),要生成相对应的控件?

那么问题来了,SWF中,没有把ComboBox 这个包,编译到SWF中。   根据反射出来的类,生成相对应的控件时。报错了(没装Debug版的Flash Play,所以没截图)。

解决方案:方法1:专门定义一个类,定义相对应控件的变量(比较麻烦,如果有新增控件,又要添加变量。)

package strongsoft.utility 
{
    import mx.controls.Alert;
    import mx.controls.Button;
    import mx.controls.CheckBox;
    import mx.controls.ComboBox;
    import mx.controls.DataGrid;
    import mx.controls.Image;
    import mx.controls.Label;
    import mx.controls.RadioButton;
    import mx.controls.Text;
    import mx.controls.TextArea;
    import mx.controls.TextInput;
    
    
    public class ReflectionHelper
    {
        private var reflectionHelper_Alert:Alert;
        private var reflectionHelper_Button:Button;
        private var reflectionHelper_CheckBox:CheckBox;
        private var reflectionHelper_ComboBox:ComboBox;
        private var reflectionHelper_DataGrid:DataGrid;
        private var reflectionHelper_Image:Image;
        private var reflectionHelper_Label:Label;
        private var reflectionHelper_RadioButton:RadioButton;
        private var reflectionHelper_Text:Text;
        private var reflectionHelper_TextArea:TextArea;
        private var reflectionHelper_TextInput:TextInput;
        
        public function ReflectionHelper()
        {
            
        }
    }
}

方法2:(网上的解决办法),没测试过。帖子传送门:http://bbs.csdn.net/topics/350037690

applicationDomain = ApplicationDomain.currentDomain; //放在ModuleLocator的creationComplete里去

【FLEX教程】#008 开发中的问题笔记(慢更…)

标签:

原文地址:http://www.cnblogs.com/zhongxia/p/4200870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!