错误#1034,带有MouseEvent

时间:2010-12-02 22:55:22

标签: actionscript-3 mouseevent

我正在制作一个基本的点击游戏,我发现了这个错误:
TypeError:错误#1034:类型强制失败:无法将3转换为cem.mouvement。

这是我的剧本:

package cem {
    import flash.events.Event;
    import flash.display.MovieClip;
    import cem.microjeux.events.InfoJeuEvent;
    import cem.mouvement;
    import flash.events.MouseEvent;

    public class monterJeu extends MovieClip
    {
        private static var pType:String = "type";
        private static var pNom:String = "testNom";
        private static var pCourriel:String = "test@hotmail.com";
        private static var pDifficulte:int = 0;
        private static var pLangue:int = 0;
        private static var pTitre:String = "Veuillez sortir";
        private static var pVersion:String = "1.5";
        private static var pCoordonnees:Number;

        private var environnementJeu:environnement = new environnement();
        private var personnageJeu:personnage = new personnage();

        public function monterJeu():void
        {
            jouer(pNom,pDifficulte,pLangue);
            dispatchEvent(new InfoJeuEvent(pType,pNom,pCourriel,pTitre,pVersion));
            stage.addEventListener(MouseEvent.CLICK, test);
        }

        public function jouer(PNom:String,PDifficulte:int,PLangue:int):void
        {
            addChild(environnementJeu);
            addChild(personnageJeu);
        }
        function test(e:MouseEvent){
            pCoordonnees = stage.mouseX;
            trace(pCoordonnees);
            mouvement(3);
        }
    }
}

on mouvement();

package cem
{
    public class mouvement {

        public function mouvement(blabla) {
            trace(blabla);
        }
    }
}

我到处搜寻,没找到任何东西。我在舞台上没有任何实例。一切都在第一帧导入。我是一个初学者(假设我不擅长编程),所以如果你需要纠正的话,你可以同时通知。 (顺便说一句,奇怪的单词是法语; D) 谢谢!

2 个答案:

答案 0 :(得分:1)

错误是由于你试图将3投射到了上面。

我认为你想要的是

function test(e:MouseEvent){
    pCoordonnees = stage.mouseX;
    trace(pCoordonnees);
    var mouve:mouvement = new mouvement(3);
}

请注意,您必须拥有 new 才能创建类的新实例。

另一方面,你应该对班级进行资本化,以便更好地脱颖而出。所以我将这个名字命名为Mouvement。

答案 1 :(得分:0)

您正在尝试将3投放到mouvement函数中的test类:

   function test(e:MouseEvent){
        pCoordonnees = stage.mouseX;
        trace(pCoordonnees);
        new mouvement().mouvement(3); // <-- here your error
    }

如果你的课程中只有一个函数,你不需要创建一个类,但你可以单独使用该函数:

package cem
{
        public function mouvement(blabla):void {
            trace(blabla);
        }
}

现在你可以正常调用mpuvement函数到你的测试函数中:

function test(e:MouseEvent){
    pCoordonnees = stage.mouseX;
    trace(pCoordonnees);
    mouvement(3);
}