Ошибка № 1034 с MouseEvent - PullRequest
       4

Ошибка № 1034 с MouseEvent

0 голосов
/ 03 декабря 2010

Я играю в основную игру n-click и столкнулся с этой ошибкой:
Ошибка типа: ошибка # 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);
        }
    }
}

И на mouvement ();

package cem
{
    public class mouvement {

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

Я искал везде, где мог, и ничего не нашел.У меня нет экземпляров на сцене.Все импортируется на первом кадре.Я новичок (скажем, я плохо разбираюсь в программировании), поэтому вы можете в то же время уведомить вас о том, что нужно исправить.(Кстати, странные слова на французском; D) Спасибо!

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

Ошибка из-за того, что вы пытаетесь наложить 3 на движение.

Я думаю, что вы хотите что-то вроде

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

Обратите внимание, что вам нужно иметь new , чтобы создать новый экземпляр класса.

С другой стороны, вы должны капитализировать классы, чтобы они лучше выделялись. Поэтому я бы назвал класс Mouvement.

0 голосов
/ 03 декабря 2010

Вы пытаетесь привести 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...