错误描述

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. 前端实现搜索历史和清空历史(angularjs+ionic)

    要实现的页面效果: 1.显示历史搜索, 2.最近搜索的排在最前, 2.最多显示8条历史 4.清空历史记录 思路: 1.首先显示历史记录需要一个数组searchItems,通过ng-repeat显示每一 ...

  2. Ubuntu14.04和Windows双系统时无法挂载磁盘解决方法

    基本状况:我电脑Ubuntu14.04 和 Windows10 双系统,一个固态磁盘,一个机械磁盘.Ubuntu14.04装固态里面了,固态里没有Windows内容. 问题:Ubuntu14.04系统 ...

  3. 39. Combination Sum(medium, backtrack 的经典应用, 重要)

    Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all unique c ...

  4. UltraISO安装centos7系统

    1. 使用最新版UltraISO将ISO镜像刻录到U盘一定要是最新版,试用版都可以,按下图操作: 2. U盘启动电脑进入安装界面正常情况下你应该会看到下面的这个界面: 选择第一项,然后按TAB键(在评 ...

  5. dokcer自动化构建部署java web 基于jenkins+maven+nuxus容器

    # dokcer自动化构建部署java web 基于jenkins+maven+nuxus容器 #环境centos 7.4 docker 18.03.0-ce # nuxus,创建maven本地源(可 ...

  6. Sybase数据库实现等效的mysql中group_concat功能

    在MySQL中,如果想实现将分组之后的多个数据合并到一列,可以使用group_concat函数,如下图所示: 但是,在Sybase中没有这样的函数(别问我为什么使用Sybase,因为公司用的Sybas ...

  7. Openstack: Single node Installation and External Network Accessing Configuration Guide

    Summary of installation Step 0: Prerequisites Step 1: Create Openstack hostsystem Step 2: Config Ope ...

  8. Android监听手机网络变化

    Android监听手机网络变化 手机网络状态发生变化会发送广播,利用广播接收者,监听手机网络变化 效果图 注册广播接收者 <?xml version="1.0" encodi ...

  9. 【Unity3D】 Unity Chan项目分享

    写在前面 之前的一个博文里分享了日本Unity酱的项目,如果大家有去仔细搜Unity酱的话,就会发现日本Unity官方还放出了一个更完整的Unity酱的项目,感觉被萌化了!(事实上,Unity日本经常 ...

  10. python将nan, inf转为特定的数字

    最近,处理两个矩阵的点除,得到结果后,再作其他的计算,发现有些内置的函数不work:查看得到的数据,发现有很多nan和inf,导致python的基本函数运行不了,这是因为在除的过程中分母出现0的缘故. ...