错误#1034 flash / animate cc as3

时间:2016-06-06 15:35:11

标签: arrays actionscript-3 flash movieclip

所以我正在组建一个学校项目,并且开始,我正在使用as3在flash cc中进行测验。但是当我编译我的代码时,我只得到错误:TypeError:错误#1034:类型强制失败:无法将spr4 $转换为flash.display.MovieClip。 现在我知道问题已被提出,但我没有找到任何适用于我的简单代码的答案:

    import flash.display.MovieClip;
import flash.events.MouseEvent;

stop();


var sprArray:Array = new Array();
sprArray[0] = [spr1, alt01, alt02, alt03];
sprArray[1] = [spr2, alt11, alt12, alt13];
sprArray[2] = [spr3, alt21, alt22, alt23];
sprArray[3] = [spr4, alt31, alt32, alt33];

btnNeste.addEventListener(MouseEvent.CLICK, neste);

function neste (evt:MouseEvent){

    var randomSpr = Math.floor(Math.random()*4);
    var spørsmål:MovieClip = sprArray[randomSpr][0];
    spørsmål.x = 30;
    spørsmål.width = 150;
    spørsmål.height = 100;

    var svaralt1:MovieClip = sprArray[randomSpr][1];
    svaralt1.x = 30;
    svaralt1.y = 50;
    svaralt1.width = 100;
    svaralt1.height = 100;

    var svaralt2:MovieClip = sprArray[randomSpr][2];
    svaralt1.x = 60;
    svaralt1.y = 50;
    svaralt1.width = 100;
    svaralt1.height = 100;

    var svaralt3:MovieClip = sprArray[randomSpr][3];
    svaralt1.x = 90;
    svaralt1.y = 50;
    svaralt1.width = 100;
    svaralt1.height = 100;

}

1 个答案:

答案 0 :(得分:0)

您的问题与类和实例的性质有关。

在您的图书馆中,如果您已经检查了"导出动作脚本"框并给出该库对象的类名(让我们假设你给了一个类名spr1)然后在你的代码中,spr1指的是一个类(不是实例)。

如果需要实例,则需要从类中实例化它。因此,在您的情况下,要获得spr1的新实例,您可以执行以下操作:

new spr1();

所以,将它放到你的例子的上下文中:

//sprArray[x] refers to classes, so you need use the 'new' keyword to create new instance of that class
var spørsmål:MovieClip = new sprArray[randomSpr][0]();

现在,如果您想要实际看到新创建的显示对象,则必须使用addChild或addChildAt方法为其提供父级:

addChild(spørsmål); //adds it to `this` (whatever display object this code is attached to) on top of everything else in `this`

Here is a question如果您想了解更多内容,可以获得有关课程和实例之间差异的答案。