我想在动画加载后立即隐藏符号(格栅图像)。 目前我收到错误,E:\ Burger Game \ DragandDrop \ Dragable.as,第4行,第8列1119:通过带有静态类型Class的引用可访问可能未定义的属性。你可能会说,我是flash的新手。
package DragandDrop
{
Grill.visible=false;
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.geom.Point;
public class Dragable extends MovieClip
{
protected var homePos:Point;
var totalToBowl:int =3;
var i:int = 0;
public function Dragable ()
{
homePos=new Point( x, y);
buttonMode =true;
addEventListener ( MouseEvent.MOUSE_DOWN, move);
}
//egg functions
protected function move(event:MouseEvent) :void
{
parent.addChild(this);
startDrag();
stage.addEventListener(MouseEvent.MOUSE_UP, stageUp)
}
//item drop function
protected function stageUp(event:MouseEvent):void
{
stopDrag();
if (event.target.dropTarget != null &&dropTarget.parent.name == "Bowl")
{
scaleX=scaleY=0;
alpha=0.5;
y= stage.stageHeight-height -700;
x=stage.stageWidth-width- 1400;
buttonMode=false;
removeEventListener(MouseEvent.MOUSE_DOWN, stageUp)
i++
}if (i == totalToBowl){
i=10
trace(i);
event.target.dropTarget.visible = false;
}
if (i==10 )
{
dropTarget.parent.visible = false;
}else{
returnToHome();
}
}
protected function returnToHome():void
{
x = homePos.x;
y= homePos.y;
}
}
我知道为什么会收到此错误?
任何帮助都会受到大力赞赏。 非常感谢,
罗布
答案 0 :(得分:1)
有两个问题:
Grill
是一个类,但似乎你试图像实例一样使用它。这就像你正在使用时所期望的那样:
public class Grill extends MovieClip {
public static var visible:Boolean;
}
但更有可能的是,您需要做的是使用实例,而不是类本身:
var g:Grill = new Grill();
g.visible = false;
如果此类链接到时间轴实例,则必须使用您提供的实例名称(并确保实例名称不与任何类名称冲突 - 或使用getChildByName
)。
假设这不是静态代码,则在函数/方法之外的代码会导致另一个错误。
在类文件中,所有非静态功能代码都需要在函数中。您需要将有问题的行(Grill.visible = false)移动到函数中。最有可能的是,您希望这相当于时间轴代码。因此,放置的最佳位置是:
public function Dragable ()
{
homePos=new Point( x, y);
buttonMode =true;
addEventListener ( MouseEvent.MOUSE_DOWN, move);
//addedToStage is the best equivalent of when timeline code would run
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
private function addedToStage(e:Event):void {
//where grillinstance is the instance name of your grill
grillInstance.visible = false;
}
现在,假设您在时间轴上链接了此类,其上有一个Grill实例。如果这是一个不正确的假设,请通过评论澄清或更新您的问题。