0

我正在制作一个游戏(指向和点击),并且我试图在玩家行走时使可用的物品发光。这很简单,但我不知道为什么我会失败。我肯定错过了什么。

我已经有了代码,因为当我将它放在其他可用物品上时,我的可用物品会发光。所以我有一个Engine类,我试图在其中放置让玩家行走时使项目发光的代码。和一个DraggedItem班级。此类允许用户在舞台上拖动库存项目。

在我的DraggedItem课上,我有这个功能:

private function itemGlow(isGlowing:Boolean):void{
    if (isGlowing){
        var glow:GlowFilter = new GlowFilter();
        glow.color = 0xFFFF00;
        glow.alpha = .75;
        glow.blurX = 10;
        glow.blurY = 10;
        glow.quality = BitmapFilterQuality.MEDIUM;

        draggedItem.filters = [glow];
    } else {
        draggedItem.filters = null;
    }
}

在我的Engine课堂上,我想在我的玩家走路时使用这个功能。

我坚持我可以这样说:

back = new Background(stage, thisBack);
back.currentBack.ground.addEventListener(MouseEvent.MOUSE_DOWN, shineItems, false, 0, true);

private function shineItems(e:MouseEvent):void{
    trace(shineItems);
    var thisClip = usableItems
    if (playerControl){
        stage.dispatchEvent(new Event("playerMoving"));
        draggedItem.itemGlow(true); 
    }
}

但事实并非如此。我必须以错误的方式导入该函数。

所以我尝试添加Engine类并更改draggedItem.itemGlow;itemGlow;.

private function itemGlow(isGlowing:Boolean):void{
    if (isGlowing){
        var glow:GlowFilter = new GlowFilter();
        var thisClip = usableItems
        glow.color = 0xFFFF00;
        glow.alpha = .75;
        glow.blurX = 10;
        glow.blurY = 10;
        glow.quality = BitmapFilterQuality.MEDIUM;


        thisClip.filters = [glow];
    } else {
        thisClip.filters = null;
    }
}

但它也不起作用。

任何想法 ?


编辑

我放了draggedItem.itemGlow(true); 在shineItems 函数中,我现在遇到了这个错误:TypeError:错误#1009:无法访问空对象引用的属性或方法。在 com.laserdragonuniversity.alpaca::Engine/shineItems()[C:\Users\stephanberger4\Desktop\07 novembre\Tactile\com\laserdragonuniversity\alpaca\Engine.as:321]

第 321 行是:draggedItem.itemGlow(true);

4

1 回答 1

0

如果它是您想要发光的 DragdItem 类的一个实例,您可以设置一个 DraggItem 实例的过滤器(在类中),如下所示:

filters = [glow]; 

或者:

this.filters = [glow];

这假定 DragedItem 扩展了 DisplayObject,以访问过滤器属性。
另外,在shineItems 函数中,当itemGlow 是函数时,您将其称为属性;它应该是:

draggedItem.itemGlow(true); 

或者

draggedItem.itemGlow(false);
于 2013-11-07T11:25:12.087 回答