错误描述

flex在加载module时报出如题所示的错误,

实际表现

问题就出现在这 我取消这个错误提示框 再次在前台查询数据 就一切ok

问题就出现在这一句

var zoufangModel:ZfRecord=ZfRecord(data);

调试

第一次是这样 继续就出抛出错误

取消错误再次查询 调试的结果就是这样

多了个[inherited] 确实第二次是正常的 但为什么第一次不行 到现在也不明白

解决方法

将错误的那一句改成

var zoufangModel:ZfRecord = ObjectTranslator.objectToInstance( data, ZfRecord ) as ZfRecord;

ObjectTranslator类的代码如下

/*

* Copyright (c) 2006 Darron Schall <darron@darronschall.com>

*

* Permission is hereby granted, free of charge, to any person

* obtaining a copy of this software and associated documentation

* files (the "Software"), to deal in the Software without

* restriction, including without limitation the rights to use,

* copy, modify, merge, publish, distribute, sublicense, and/or sell

* copies of the Software, and to permit persons to whom the

* Software is furnished to do so, subject to the following

* conditions:

*

* The above copyright notice and this permission notice shall be

* included in all copies or substantial portions of the Software.

*

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES

* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT

* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,

* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR

* OTHER DEALINGS IN THE SOFTWARE.

*/

package com.common.util

{

    

    import flash.net.ObjectEncoding;

    import flash.net.registerClassAlias;

    import flash.utils.ByteArray;

    import flash.utils.describeType;

    import flash.utils.getDefinitionByName;

    

    /**

     * Utility class to convert vanilla objects to class instances.

     */

    public final class ObjectTranslator

    {

        

        /**

         * Converts a plain vanilla object to be an instance of the class

         * passed as the second variable.  This is not a recursive funtion

         * and will only work for the first level of nesting.  When you have

         * deeply nested objects, you first need to convert the nested

         * objects to class instances, and then convert the top level object.

         *

         * TODO: This method can be improved by making it recursive.  This would be

         * done by looking at the typeInfo returned from describeType and determining

         * which properties represent custom classes.  Those classes would then

         * be registerClassAlias'd using getDefinititonByName to get a reference,

         * and then objectToInstance would be called on those properties to complete

         * the recursive algorithm.

         *

         * @param object The plain object that should be converted

         * @param clazz The type to convert the object to

         */

        public static function objectToInstance( object:Object, clazz:Class ):*

        {

            var bytes:ByteArray = new ByteArray();

            bytes.objectEncoding = ObjectEncoding.AMF0;

            

            // Find the objects and byetArray.writeObject them, adding in the

            // class configuration variable name -- essentially, we're constructing

            // and AMF packet here that contains the class information so that

            // we can simplly byteArray.readObject the sucker for the translation

            

            // Write out the bytes of the original object

            var objBytes:ByteArray = new ByteArray();

            objBytes.objectEncoding = ObjectEncoding.AMF0;

            objBytes.writeObject( object );

            

            // Register all of the classes so they can be decoded via AMF

            var typeInfo:XML = describeType( clazz );

            var fullyQualifiedName:String = typeInfo.@name.toString().replace( /::/, "." );

            registerClassAlias( fullyQualifiedName, clazz );

            

            // Write the new object information starting with the class information

            var len:int = fullyQualifiedName.length;

            bytes.writeByte( 0x10 );  // 0x10 is AMF0 for "typed object (class instance)"

            bytes.writeUTF( fullyQualifiedName );

            // After the class name is set up, write the rest of the object

            bytes.writeBytes( objBytes, 1 );

            

            // Read in the object with the class property added and return that

            bytes.position = 0;

            

            // This generates some ReferenceErrors of the object being passed in

            // has properties that aren't in the class instance, and generates TypeErrors

            // when property values cannot be converted to correct values (such as false

            // being the value, when it needs to be a Date instead).  However, these

            // errors are not thrown at runtime (and only appear in trace ouput when

            // debugging), so a try/catch block isn't necessary.  I'm not sure if this

            // classifies as a bug or not... but I wanted to explain why if you debug

            // you might seem some TypeError or ReferenceError items appear.

            var result:* = bytes.readObject();

            return result;

        }

        

    } // end class

} // end package

参考资料

http://blog.163.com/hongwei_benbear/blog/static/118395291201122612328768/

flex 强制转换类型失败无法将object转换为XXX的更多相关文章

  1. TypeError: Error #1034: 强制转换类型失败:无法将 "" 转换为 Array。

    1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 "" 转换为 Array. at mx.charts.series::LineSeries/ ...

  2. TypeError: Error #1034: 强制转换类型失败:无法将 "0.49" 转换为 mx.graphics.IFill。

    1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 "0.49" 转换为 mx.graphics.IFill. at mx.charts.ser ...

  3. TypeError: Error #1034: 强制转换类型失败:无法将 mx.controls::DataGrid@9a7c0a1 转换为 spark.core.IViewport。

    1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 mx.controls::DataGrid@9aa90a1 转换为 spark.core.IViewport. ...

  4. TypeError: Error #1034: 强制转换类型失败:无法将 flash.events::MouseEvent@73b7cc1 转换为 mx.events.ItemClickEvent。

    1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 flash.events::MouseEvent@73b7cc1 转换为 mx.events.ItemClick ...

  5. Flash Professional 报错 TypeError: Error #1034: 强制转换类型失败:无法将 xxxx@zzzz 转换为 yyy

    通常是因为xxx yyy 两个不同链接名的元件 使用了同一个属性名

  6. Web | JavaScript的引用数据类型强制转换类型

    我在这里主要的想提下的是JavaScript中的引用类型进行强制转换类型.因为对于基本数据类型的变换大多都是雷同的,很容易熟知,但是引用数据类型有一点小插曲. JavaScript的引用类型主要为对象 ...

  7. PHP强制转换类型

    PHP强制转换类型   获取数据类型 : 1.如果想查看某个表达式的值和类型,用var_dump(). 2.如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype().3.要查看某个类型 ...

  8. 简述Java变量和强制转换类型

    简述Java变量和强制转换类型 java变量 1. java变量 变量:顾名思义,就是在java执行程序过程中可以发生改变的量,就好比方程式中的未知数X一样. 变量的内存分配过程 int a ; // ...

  9. C++ 4 种具有更 为准确语义的新强制转换类型

    1. static_cast<T>() 可用于把指向A 的指针强制转换为指向B 的指针,其约束条件是类B必须是类A的子类.例如:A *obj = new B;B *b = static_c ...

随机推荐

  1. 使用PHP脚本远程部署git项目

    准备工作: 1.coding.net创建私有项目 2.安装了Web服务 Git服务的服务器 服务器端: 1.nginx.php-fpm统一用www用户 www 目录,这个可以通过修改配置文件实现. [ ...

  2. 消息中间件--ActiveMQ&JMS消息服务

    ### 消息中间件 ### ---------- **消息中间件** 1. 消息中间件的概述 2. 消息中间件的应用场景 * 异步处理 * 应用解耦 * 流量削峰 * 消息通信   --------- ...

  3. 59. Spiral Matrix II(中等,同54题)

    Given an integer \(n\), generate a square matrix filled with elements from 1 to \(n^2\) in spiral or ...

  4. iis部署python运行环境

    IIS部署 1.启用或者关闭windows功能,选择安装CGI,我这里已经安装过了. 2.安装后重新打开IIS看到CGI 3.配置ISAPI和CGI限制 4.右上角添加,路径是python安装路径,注 ...

  5. Git 常用命令速查表(图文+表格)

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  6. PHP 表单 - 必需字段

    PHP - 必需字段 在上一章节我们已经介绍了表的验证规则,我们可以看到"Name", "E-mail", 和 "Gender" 字段是必须 ...

  7. 关于云Linux部署tomcat服务器(Maven的多模块war包)

    博主的运行环境: 电脑系统: Linux mint 18 JDK版本: java version "1.8.0_171" Maven版本:  Apache Maven 3.5.3 ...

  8. Rails 4.0 bundle exec rspec spec/requests/xxx 测试失败的解决

    rails项目没有使用默认的单元测试包,而是使用了rspec-rails来测试. 按照文档说明首先生成对应的测试文件: rails generate integration_test xxx invo ...

  9. Android TV开发总结(四)通过RecycleView构建一个TV app列表页(仿腾讯视频TV版)

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52854131 前言:昨晚看锤子手 ...

  10. Dynamics CRM2016 新功能之Solution enhancements

    CRM2016中对解决方案的功能有了一定的加强,CRM自2011版本开始引入了solution的概念,但大家的共识是solution的导出导入以及发布都非常的慢,常常会出现发布超时的情况很是头疼. 以 ...