我正在制作一个基本的点击游戏,我发现了这个错误:
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) 谢谢!
答案 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);
}