在这里记录一下个人在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里去

问题描述: 用URLLoader读取了外部XML文件,然后把读取的XML信息,强转成XML对象。

var xml:XML = data as XML ;   //返回 null

然后就奇怪,为什么 用 as 来强转不起作用。

解决方案:

1、用 XML(data)来替代 data as XML 就可以了

2、用 new XML(data) 也可以进行转换。

理由:

1、as 不可以转换顶层的类(比如 str as Number)是没有作用的,顶层类有哪些查阅《As/typeof /instanceof /is的作用

2、as 强转失败的话,不会报错,只会返回null


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

  1. 如何在Android开发中让你的代码更有效率

    最近看了Google IO 2012年的一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善And ...

  2. Qt开发中的实用笔记一--xml,Qpainter,Delegate:

    因为开发环境不能联网,开发中用到有用的知识就记在word稳定中,不知不觉就记载了几十页,为避免笔记丢失,现在就一点点忘博客上搬,方便日后回顾! ---------------------------- ...

  3. unity+xlua开发中的问题笔记

    转载请标明出处:http://www.cnblogs.com/zblade/ 一.概述 整理遇到的一些较难处理的bug,总结相关经验 二.主要问题 2.1 material类型的依赖修改 对于mate ...

  4. Qt开发中的实用笔记三--关于各种类的零碎知识点:

    1,QUuid()创建唯一标识码,在创建数据库实体ID和链接数据库QSqlDatabase时非常方便 2,QScrollArea与QScrollBar,如果是要在widget中添加窗口滑动QScrol ...

  5. Qt开发中的实用笔记二--中文转码问题和string转换问题:

    一,中文乱码转码问题 1,转码三句话:window下默认是GBK格式,linux下默认是UTF-8,看情况转换UTF-8/GBK QTextCodec::setCodecForTr(QTextCode ...

  6. 微信小程序开发教程 #043 - 在小程序开发中使用 npm

    本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...

  7. Web 开发中应用 HTML5 技术的10个实例教程

    HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...

  8. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  9. ios学习笔记之block在ios开发中的应用

    一.什么是Blocks      Block是一个C级别的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持,从ios4.0开始就很好的支持Block. 二. ...

随机推荐

  1. setInterval与setTimeout的区别

    在制作网页动态效果时,一定会遇到某些需求,要求某段程序等待多时时间后再开始执行,就像在我们的生活中一样,待会儿再开始做一件事.在JavaScript中主要通过定时器实现此类需求,本文将对定时器做一个概 ...

  2. tap 和click 事件区别

    clike事件和 Zepto.js 中tap的区别 首先介绍下Zepto: 最初是作为移动端开发的库,但是却可以作为JQuery轻量级的替代品,因为API和JQuery相似,而文件更小. 介绍下tap ...

  3. CentOS7下SVN server的安装与配置

    CentOS7通过yum install命令进行安装SVN(参考:http://subversion.apache.org/packages.html#centos) $ yum install su ...

  4. 撩课-Web大前端每天5道面试题-Day20

    1.vue生命周期的作用是什么? 它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑. 2. Vue实现数据双向绑定的原理:Object.defineProperty( ...

  5. mybatis-plus的集成与使用

    Mybatis-Plus: Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 官方网站:http://m ...

  6. 资源在Windows编程中的应用

    学习目的 掌握菜单和对话框资源的创建和使用. 编写程序: 设计一个窗口应用程序, 其中有一个VC菜单, 该菜单下有"显示", "隐藏", "退出&qu ...

  7. PL/SQL Developer 和 Instant Client客户端安装配置

    一. 准备工作 1. 点击此下载 PL/SQL Developer 2. 点击此下载 Instant Client 二. 配置Instant Client 1. 新建  %安装目录%\network\ ...

  8. axios上传图片(及vue上传图片到七牛))

    浏览器上传图片到服务端,我用过两种方法: 1.本地图片转换成base64,然后通过普通的post请求发送到服务端. 操作简单,适合小图,以及如果想兼容低版本的ie没办法用此方法 2.通过form表单提 ...

  9. nginx的MainLine version、Stable version、Legacy versions

    Nginx的版本说明Mainline version:在线版本,正处于开发状态Stable version :稳定版本(一般下载使用)Legacy version :遗留版本,遗留的老的版本 Linu ...

  10. js返回一组日期中最近连续的天数

    用js获取一组日期(并把当天算入)中连续的天数 刚开始可能想到单纯的比较日期大小判断连续, 而又有大小月,平闰年这些因素,还是时间戳来的安全; 首先得有一组日期,比如: var arr = [ '20 ...