当玩家走路时让项目发光

时间:2013-11-07 09:56:35

标签: actionscript-3

我正在制作游戏(点击和点按),我正试图让玩家在行走时发光。这很简单,但我不知道为什么我会失败。我一定错过了什么。

我已经有了代码,因为当我把它放在另一个可用的项目上时,我的可用项目会发光。所以我有一个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);

1 个答案:

答案 0 :(得分:0)

如果它是你要发光的DraggedItem类的一个实例,你可以像这样设置一个DraggedItem实例的过滤器(来自类中):

filters = [glow]; 

或:

this.filters = [glow];

这假定DraggedItem扩展DisplayObject,以访问filters属性 另外,在shineItems函数中,当它是一个函数时,你将itemGlow称为属性;它应该是:

draggedItem.itemGlow(true); 

draggedItem.itemGlow(false);