AS3将图像添加到“扩展”影片剪辑

时间:2011-12-13 21:41:15

标签: actionscript-3

在AS3中 - 我使用通用按钮处理程序来处理影片剪辑对象上的点击事件。在过去的4个小时里,我一直在尝试将图像添加到此影片剪辑(请参阅* * *)对象。

代码(我剪切并粘贴了一点,但这一切都编译没有任何错误)

btPlay  =   new mcButtonPlay(this,"ClickMe",GameImage); //  GameImage is an BitmapData object

public class mcButtonPlay extends navigationButtonHandler {
    public function mcButtonPlay(Parent:MovieClip,Text:String,GameImage:BitmapData)  {
        super(Text);
        if (GameImage != null) {                
            var ImageBitMap:Bitmap  = new Bitmap(GameImage);
            this.addChild(ImageBitMap); // * * * This doesn’t show
            Parent.addChild(ImageBitMap);   // Works just to test the image
        }                       
    }
} 

public class navigationButtonHandler extends MovieClip {
    public function navigationButtonHandler(Text:String)  {
        ChangeButtonTargetText(Text);
        Parent.addChild(this);
    }
}

3 个答案:

答案 0 :(得分:0)

        this.addChild(ImageBitMap); // * * * This doesn’t show
        Parent.addChild(ImageBitMap);   // Works just to test the image

使用此代码,ImageBitMap已从“this”移除并置于“Parent”中,因此您永远不会在“this”中看到它。< / p>

删除第二行并告诉我它是否仍然有效。

编辑:

您是否将btPlay添加到舞台或显示层次结构中?

例如。

btPlay  =   new mcButtonPlay(this,"ClickMe",GameImage); 
this.addChild(btPlay);

答案 1 :(得分:0)

public class navigationButtonHandler extends MovieClip {
    public function navigationButtonHandler(Text:String)  {
        ChangeButtonTargetText(Text);
        Parent.addChild(this); //<--------????
    }
}

Parent来自问题中复制的上述代码?看起来navButtonHandler类似乎永远不会被添加到舞台上,因为它没有得到Parent?因此,扩展类也永远不会添加到舞台中,这就是为什么如果你将它添加到你的mcButtonPlay类中,你的图像永远不会显示的原因。 扩展构造函数DOES传递Parent参数,但基类不传递。这对我来说似乎很奇怪,不应该编译。或者你在幕后做一些静态的事情?

并按照评论中的说明开始研究您的大写形式。如果您遵循常见惯例,阅读和查找错误会更容易!

答案 2 :(得分:0)

管理通过交换超级并添加子逻辑来修复它:

public class mcButtonPlay extends navigationButtonHandler {
    public function mcButtonPlay(Parent:MovieClip,Text:String,GameImage:BitmapData)  {
        if (GameImage != null) {                
            var ImageBitMap:Bitmap  = new Bitmap(GameImage);
            this.addChild(ImageBitMap); // * * * This doesn’t show
            Parent.addChild(ImageBitMap);   // Works just to test the image
        }                       
        super(Text);
    }
}

不知道为什么!