我有一个关于敌人类的公共变量。
如何在主类中访问此变量?还是英雄课?还是任何一个班级?
我知道您可以使用_root访问主类变量。 (在定义之后),但如何访问外部类值?
ALSO:
如何从特定动画片段上的TIMELINE访问这些外部类值?
以下是代码:
在Worker.as中,我有
This part of code is part of a continuous ENTER_FRAME loop..
if(isFlying)
{
if(!faceLeft)
{
gotoAndStop(8);
}
if(faceLeft)
{
gotoAndStop(7);
}
if(flyingDestination < this.x)
{
if(this.x > flyingDestination)
{
this.x -= 3;
}
else
{
isFlying = false;
_root.mainIsFlying = false;
}
}
else
{
if(this.x < flyingDestination)
{
this.x += 3;
}
else
{
isFlying = false;
_root.mainIsFlying = false;
}
}
}
if(_root.isPunching)
{
if(this.hitTestObject(_root.ceo))
{
isFlying = true;
if(this.x < _root.ceo.x)
{
flyToTheLeft();
}
if(this.x > _root.ceo.x)
{
flyToTheRight();
}
}
}
And these are separate functions, a.k.a not part of the ENTER_FRAME function.
private function flyToTheLeft():void
{
flyingDestination = this.x - 100;
faceLeft = true;
}
private function flyToTheRight():void
{
flyingDestination = this.x + 100;
}
在工作者动画片段的第8帧上是飞行动画。在这个飞行动画中,我希望,在这个飞行动画的最后一帧,代码可以说:
stop();
WORKER.as.isFlying = false;
^^^^^ 我不知道如何编码。
谢谢
答案 0 :(得分:0)
我不完全确定我是否理解你的问题,你能传递一些代码吗? 小提示,您应该使用私有变量作为良好的OOP练习和getter / setter方法。在这里你可以找到如何做到这一点: http://code.tutsplus.com/tutorials/as3-101-oop-inheritance-setters-getters-basix--active-6104
答案 1 :(得分:0)
如果在WORKER.as中定义了isFlying变量,并且您想要更改所有实例的变量,则应将变量定义为public static var isFlying = false
,然后可以像WORKER.isFlying = false
一样更改它而不使用。this.parent.isFlying = false
。作为扩展。
如果您希望每个实例{{1}}更改的变量可以正常工作。