I’m having an issue with a little app I’m trying to create at the moment, it’s my first try and dealing with classes but for some reason I can’t create any instances of the class even if it’s imported into the document. Here’s the code for the class (named “Players”):
package
{
public class Player
{
public function Player(name_:String)
{
}
public var name_:String;
private var alignment:int;
public var healed:Boolean = false;
public var revealed:Boolean = false;
public var attacked:Boolean = false;
public var dead:Boolean = false;
public function action(target:Player)
{
}
public function describe():String
{
}
}
public class Citizen extends Player
{
public function Citizen(name_:String)
{
alignment = 1;
}
override public function action(target:Player)
{
}
override public function describe():String
{
return "Citizen";
}
}
public class Investigator extends Player
{
public function Investigator(name_:String)
{
alignment = 1;
}
override public function action(target:Player)
{
target.revealed = true;
}
override public function describe():String
{
return "Cop";
}
}
public class Doctor extends Player
{
public function Doctor(name_:String)
{
alignment = 1;
}
override public function action(target:Player)
{
target.healed = true;
}
override public function describe():String
{
return "Doctor";
}
}
public class Mafioso extends Player
{
public function Mafioso(name_:String)
{
alignment = -1;
}
override public function action(target:Player)
{
target.attacked = true;
}
override public function describe():String
{
return "Mafia";
}
}
}
And the code which creates the instance:
import Players;
stop();
var totalplayers:Number;
var playerArray:Array = new Array();
var playerType:Array = ["Citizen","Cop","Doctor","Mafia"];
var test:Citizen = new Citizen("James");
Both are in the same folder. I get the error code 1046 described in the title but I honestly have no idea why, flash picks it up in the code hints yet it comes up with that! Any help would be appreciated.
Also secondary question, I’ll never initiate the Player class (except through inheritance with the other classes), so can I make it private?
Thanks
I’m assuming all that code is in a file called
Players.as.This is wrong. Each file should contain one class and the class should be the same name as the
.asfile.You currently have two classes (
PlayerandCitizen) within one file.What you need to do is take the
Playerclass you’ve defined and place it in its own.as. file with the same name (Player). Do the same forCitizen.Then you can use:
Though this won’t be necessary because you don’t need to import classes that are in the same directory that you’re trying to access it from.
As for the error, you’re getting that because Flash is trying to find the class
Playersand you don’t have a class with that name (just a file with that name).