Actionscript 3 我的var似乎不想从自定义类继承
我真的很抱歉,如果这最终成为一个noob问题 我有一个var,它被设置为类的一个新对象。然而,每当我测试它时,我总是得到错误1120。我知道这个错误意味着它是一个未定义的属性。我试着把它的范围改到主课上所有可能的地方。即在导入和构造函数之后的类 该代码应该是龙与地下城4e角色创建者的一部分 我已经试了好几个小时想找到解决办法,但我就是不确定。如果有任何帮助,将包括我的属性类Actionscript 3 我的var似乎不想从自定义类继承,actionscript-3,class,flash,undefined,Actionscript 3,Class,Flash,Undefined,我真的很抱歉,如果这最终成为一个noob问题 我有一个var,它被设置为类的一个新对象。然而,每当我测试它时,我总是得到错误1120。我知道这个错误意味着它是一个未定义的属性。我试着把它的范围改到主课上所有可能的地方。即在导入和构造函数之后的类 该代码应该是龙与地下城4e角色创建者的一部分 我已经试了好几个小时想找到解决办法,但我就是不确定。如果有任何帮助,将包括我的属性类 var Humon:Attributes = new Attributes 它被声明为我的主类的一部分: package
var Humon:Attributes = new Attributes
它被声明为我的主类的一部分:
package
{
//imports
import com.Classes.Attributes;
import flash.text.*;
public class Main extends MovieClip()
{
private var Humon:Attributes = new Attributes;
public function Main()
{
Atties.text = (Humon.getStr()+", "+Humon.getDex()+", "+Humon.getCon()+", "+Humon.getInt()+", "+Humon.getWis()+", "+Humon.getCha()+".");
var res:int = Humon.getStr();
trace("Humon Str is "+res+".");
}
}
}
下面是类属性
//This class defines the frame work for all classes used
package
{
public class Attributes extends Object
{
//vars go here
//saves variables (get auto updated through function makeDefaultModsAndSaves())
static var refSave:int = 0;
static var forSave:int = 0;
static var wilSave:int = 0;
//attribute modifiers (get auto updated through function makeDefaultModsAndSaves())
static var StrMod:int = 0;
static var DexMod:int = 0;
static var ConMod:int = 0;
static var IntMod:int = 0;
static var WisMod:int = 0;
static var ChaMod:int = 0;
//2d array to store attributes [x][y] where x is str/dex/con/int/wis/cha and y is value
static var Attrs:Array = new Array();
Atts[0] = [10];
Atts[1] = [10];
Atts[2] = [10];
Atts[3] = [10];
Atts[4] = [10];
Atts[5] = [10];
function Attributes()
{
//constructor
trace("Attributes loaded");
}
//functions to GET Attributes
function getStr():int
{
var Str:int = 0;
Str = Atts[0][0];
trace ("Getting Str. It is " + Str);
return Str;
}
//different functions, same syntax as getStr above
function getDex():int
{
var Dex:int = 0;
Dex = Atts[1][0];
trace ("Getting Dex. It is" + Dex);
return Dex;
}
function getCon():int
{
var Con:int = 0;
Con = Atts[2][0];
trace ("Getting Con. It is" + Con);
return Con;
}
function getInt():int
{
var Int:int = 0;
Int = Atts[3][0];
trace ("Getting Int. It is" + Int);
return Int;
}
function getWis():int
{
var Wis:int = 0;
Wis = Atts[4][0];
trace ("Getting Wis. It is" + Wis);
return Wis;
}
function getCha():int
{
var Cha:int = 0;
Cha = Atts[5][0];
trace ("Cha is" + Cha);
return Cha;
}
//functions to SET Attributes
function setStr(input:int)
{
//trace old value
trace("Old Strength is: "+Atts[0][0]+".");
//assign new value from whatever source
Atts[0][0] = input;
//check new strength
trace("New Strength is: "+Atts[0][0]+"./n");
//and update mods/saves
makeDefaultModsAndSaves()
}
//different functions, same syntax as getStr above
function setDex(input:int)
{
trace("Old Dexterity is: "+Atts[0][0]+".");
Atts[1][0] = input;
trace("New Dexterity is: "+Atts[0][0]+"./n");
makeDefaultModsAndSaves()
}
function setCon(input:int)
{
trace("Old Constitution is: "+Atts[2][0]+".");
Atts[2][0] = input;
trace("New Constitution is: "+Atts[2][0]+"./n");
makeDefaultModsAndSaves()
}
function setInt(input:int)
{
trace("Old Intelligence is: "+Atts[3][0]+".");
Atts[3][0] = input;
trace("New Intelligence is: "+Atts[3][0]+"./n");
makeDefaultModsAndSaves()
}
function setWis(input:int)
{
trace("Old Wisdom is: "+Atts[4][0]+".");
Atts[4][0] = input;
trace("New Wisdom is: "+Atts[4][0]+"./n");
makeDefaultModsAndSaves()
}
function setCha(input:int)
{
trace("Old Charisma is: "+Atts[5][0]+".");
Atts[5][0] = input;
trace("New Charisma is: "+Atts[5][0]+"./n");
makeDefaultModsAndSaves()
}
//function to calculate and apply modifiers based off of ATTRIBUTES ONLY
function makeDefaultModsAndSaves():int
{
for(var i:int = 0; i < Atts.length; i++)
{
var modifier: int = 0;
trace("Current loop: "+i);
modifier = (((Atts[i][0])-10)/2);
switch (i)
{
case 0:
StrMod = modifier;
trace("Strength is "+Atts[i] +" and has a modifier of "+StrMod+".\n");
break;
case 1:
DexMod = modifier;
trace("Dexterity is "+Atts[i]+" and has a modifier of "+DexMod+". The reflex save bonus is "+refSave+".\n");
break;
case 2:
ConMod = modifier;
forSave = modifier;
trace("Constitution is "+ Atts[i]+" and has a modifier of "+ConMod+". The fortitude save bonus is "+forSave+".\n");
break;
case 3:
IntMod = modifier;
trace("Intelligence is " +Atts[i]+" and has a modifier of "+IntMod+".\n");
break;
case 4:
WisMod = modifier;
trace("Wisdom is "+Atts[i]+" and has a modifier of "+WisMod+". The will save bonus is "+wilSave+".\n");
break;
case 5:
ChaMod = modifier;
trace("Charisma is "+Atts[i]+" and has a modifier of "+ChaMod+".\n");
break;
}
}
return modifier;
}
//temporary var to initialise function.
var arse:int = makeDefaultModsAndSaves()
}
}
删除括号:
public class Main extends MovieClip()
public class Main extends MovieClip
确保Main.as和Attributes.as位于同一文件夹中。
删除不必要的导入语句:
import com.Classes.Attributes;
这里有一个错误:
static var Attrs:Array = new Array();
Atts[0] = [10];
Atts[1] = [10];
Atts[2] = [10];
...
将Attrs重命名为Atts
在Main.as类中,您向Atties地址。什么是服装?
Atties是舞台上的一个文本框,应该显示返回的任何统计信息。你做了些改变,看起来好多了。这一次没有错误,但也没有其他任何事情发生。没有痕迹什么的。2-为什么进口是不必要的?我想如果你想让一个对象继承你需要访问它继承的类的属性。或者是因为类共享同一个文件夹,它可以引用它,而不必使用import语句?1我看到了所有跟踪。2如果两个类放在同一个文件夹中,您不需要使用导入语句。请再次尝试并神奇地使用它,一切正常,谢谢您的帮助