首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

firefox上提示TypeError: Error #1034: 强制转换类型失败:无法将 org.papervision3d.object!

2013-01-08 
firefox下提示TypeError: Error #1034: 强制转换类型失败:无法将 org.papervision3d.object!!!!!!本帖最后

firefox下提示TypeError: Error #1034: 强制转换类型失败:无法将 org.papervision3d.object!!!!!!
本帖最后由 amhoho 于 2010-04-10 02:50:57 编辑 问题:在ie下一切正常,但是在firefox和其它浏览器下会出现下面这提示

TypeError: Error #1034: 强制转换类型失败:无法将 org.papervision3d.objects.primitives::Cube@bfc6859 转换为 org.papervision3d.objects.DisplayObject3D。

请高手帮忙看看,到底哪出问题了, 我分析了半天没明白。
下面是代码

package 
{
    import __AS3__.vec.*;
    import _home.*;
    import flash.display.*;
    import flash.events.*;
    import flash.system.*;
    import gs.*;
    import gs.easing.*;
    import org.papervision3d.lights.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.materials.shadematerials.*;
    import org.papervision3d.materials.utils.*;
    import org.papervision3d.objects.*;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.view.*;

    public class _home extends BasicView
    {
        private var cameraYaw:Number = 0;
        private var xCube:Cube;
        private var light:PointLight3D;
        public var homeEnter:MovieClip;
        private var cameraPitch:Number = 80;
        private var list:Vector.<DisplayObject3D>;
        public static const OBJ_MAX:int = 80;

        public function _home() : void
        {
            this.light = new PointLight3D();
            this.list = new Vector.<DisplayObject3D>(OBJ_MAX, true);
            this.init();
            return;
        }// end function

        override protected function onRenderTick(event:Event = null) : void
        {
            this.homeEnter.x = viewport.viewportWidth / 2 - this.homeEnter.width / 2;
            this.homeEnter.y = viewport.viewportHeight / 2 + 100;
            this.cameraYaw = this.cameraYaw + 0.8;
            if (this.cameraYaw > 360)
            {
                this.cameraYaw = 0;
            }
            if (this.cameraPitch == 180)


            {
                this.cameraPitch = this.cameraPitch - 0.5;
            }
            else
            {
                this.cameraPitch = this.cameraPitch + 0.5;
            }
            camera.orbit(this.cameraPitch, this.cameraYaw);
            renderer.renderScene(scene, camera, viewport);
            return;
        }// end function

        public function delAllEvent()
        {
            stopRendering();
            trace("Delete _home!");
            scene.removeChild(this.xCube);
            this.xCube = null;
            var _loc_1:int = 0;
            while (_loc_1 < OBJ_MAX)
            {
                
                scene.removeChild(this.list[_loc_1]);
                _loc_1++;
            }
            this.list = null;
            this.light = null;
            System.gc();
            return;
        }// end function

        private function hideBox()
        {
            var _loc_2:DisplayObject3D = null;
            TweenLite.to(this.xCube, 2.8, {rotationY:1500, rotationX:0});
            var _loc_1:int = 0;
            while (_loc_1 < OBJ_MAX)
            {
                
                _loc_2 = this.list[_loc_1];
                TweenLite.to(_loc_2, 0.8, {x:this.xCube.x, y:this.xCube.y, z:this.xCube.z, rotationZ:0, rotationY:0, rotationX:0, delay:_loc_1 * 0.02});


                _loc_1++;
            }
            return;
        }// end function

        public function ranBox()
        {
            var _loc_3:DisplayObject3D = null;
            TweenLite.to(this.xCube, 0.8, {rotationY:2500, rotationX:80});
            var _loc_1:uint = 5000;
            var _loc_2:int = 0;
            while (_loc_2 < OBJ_MAX)
            {
                
                _loc_3 = this.list[_loc_2];
                TweenLite.to(_loc_3, 0.6, {x:_loc_1 * Math.random() - _loc_1 / 2, y:_loc_1 * Math.random() - _loc_1 / 2, z:_loc_1 * Math.random() - _loc_1 / 2, rotationX:360 * Math.random(), rotationY:360 * Math.random(), rotationZ:360 * Math.random(), delay:_loc_2 * 0.001});
                _loc_2++;
            }
            return;
        }// end function

        public function init() : void
        {
            var _loc_6:Cube = null;
            this.homeEnter.alpha = 0;
            var _loc_1:* = new FlatShadeMaterial(this.light, 16777215, 6710886);
            var _loc_2:uint = 3000;
            var _loc_3:int = 0;
            while (_loc_3 < OBJ_MAX)
            {
                
                _loc_6 = new Cube(new MaterialsList({all:_loc_1}), 30, 30, 30, 1, 1, 1);
                _loc_6.x = _loc_2 * Math.random() - _loc_2 / 2;
                _loc_6.y = _loc_2 * Math.random() - _loc_2 / 2;
                _loc_6.z = _loc_2 * Math.random() - _loc_2 / 2;


                _loc_6.rotationX = 360 * Math.random();
                _loc_6.rotationY = 360 * Math.random();
                _loc_6.rotationZ = 360 * Math.random();
                this.list[_loc_3] = scene.addChild(_loc_6);
                _loc_3++;
            }
            var _loc_4:* = this.list[Math.random() * this.list.length | 0];
            var _loc_5:* = new BitmapAssetMaterial("map");
            new BitmapAssetMaterial("map").smooth = true;
            this.xCube = new Cube(new MaterialsList({all:_loc_5}), 200, 200, 200, 1, 1, 1);
            this.xCube.rotationX = Math.random() * 180 - 90;
            this.xCube.rotationY = Math.random() * 180 - 90;
            this.xCube.rotationZ = Math.random() * 180 - 90;
            scene.addChild(this.xCube);
            this.xCube.x = 1000;
            TweenLite.to(this.xCube, 0.6, {x:0, rotationZ:-60, rotationY:-60, rotationX:-60});
            TweenLite.to(camera, 0.7, {focus:15, zoom:30});
            camera.target = this.xCube;
            startRendering();
            this.xCube.alpha = 0;
            TweenLite.delayedCall(3.5, this.hideBox);
            TweenLite.delayedCall(5.5, this.showXbox);
            return;
        }// end function

        private function showXbox()
        {
            TweenLite.to(this.xCube, 1.2, {rotationY:1900, rotationX:60, overwrite:true});
            TweenLite.to(camera, 1, {focus:20, zoom:35, ease:Expo.easeInOut});
            TweenLite.to(this.homeEnter, 1, {alpha:1});
            return;
        }// end function

    }
}



[解决办法]
把firefox对应的flash player插件升级成最新再试试。
因为IE和firefox的flash player不是同一个插件,感觉这种问题不像是代码的问题,环境因素可能性更大

热点排行