错误#1034:类型强制失败:无法将对象:: Player @ a1a4101转换为flash.display.MovieClip

时间:2015-01-08 15:49:58

标签: actionscript-3

我最近开始使用动作脚本3为学校项目编写游戏。现在看完一些教程后,我想把脚本与彼此结合起来,以获得我想要的游戏。

现在出现的问题是需要转换动画片段,但闪光灯无法转换。为什么必须转换:我没有线索。正如我之前所说,我是一个绝对的初学者。

我也搜索过网络和这个网站,但似乎没有什么相同,所以我不知道如何解决它。

Flash Builder出现以下错误:

TypeError: Error #1034: Type Coercion failed: cannot convert objects::Player@a1d2101 to flash.display.MovieClip.
at screens::inGame/checkStuff()[C:\Users\Henk-Jan\Dropbox\Project P2 CMD 1\4. Multimedia production\Tutorials\StarlingProject\src\screens\inGame.as:294]

inGame.as第294行:

for(var i:int = 0; i < blocks.length; i++)
        {
            blocks[i].checkObj(char, i); //LINE 294*************************
            for(var s:int = 0; s < enemies.length; s++)
                blocks[i].checkObj(enemies[s], i);
        }
块中的

checkObj函数:

public function checkObj(obj:MovieClip, place:int):void{
        if(obj.x + obj.width / 2 > x - width / 2 && obj.x < x - width / 2 + 7 && Math.abs(obj.y - y) < height /2){
            obj.x = x - width / 2 - obj.width / 2; 
        }
        if(obj.x - obj.width / 2 < x + width / 2 && obj.x > x + width / 2 - 7 && Math.abs(obj.y - y) < height /2){
            obj.x = x + width / 2 + obj.width / 2; 
        }
        if(Math.abs(obj.x - x) < width / 2 + obj.width / 2 && obj.y < y - height / 2 && obj.floor > y - height / 2 && obj.onBlock != place){
            obj.floor = y - height / 2; 
            obj.onBlock = place;
        }
        if(Math.abs(obj.x - x) >= width / 2 + obj.width / 2 && obj.onBlock == place){
            obj.onBlock = -1;
            obj.floor = 600;
        }
        if(obj.y - obj.height / 2 < y + height / 2 && obj.y > y && Math.abs(obj.x - x) < width / 2 + obj.width / 2){
            obj.y = y + height / 2 + obj.height / 2;
        }

所以,这是在Starling框架中构建的。上面的代码我是一个更大的代码的一部分,我不会在这里发布,因为你们可能不会喜欢这样。 var blocks是一个Array,其中包含char所在的块。

对于愿意将整个代码导入Flash构建器的人&gt; http://www75.zippyshare.com/v/37202056/file.html

我希望我的问题能够很快得到解决,因为我的截止日期已经在下周了......

最好的问候,

亨克-扬

1 个答案:

答案 0 :(得分:0)

问题不在于您需要转换动画片段,问题是您正在尝试将Player课程强制转换为MovieClip课程(不是&#&# 39; T)。 checkObj()的第一个参数为obj:MovieClip。这是问题所在。可以将其更改为obj:Player,也可以使用通配符obj:*对其进行概括。