我想动态地将按钮的图形加载到按钮的每个框架内的mc中(向上和向上)。 在每个帧内我都有一个影片剪辑(canvas和canvas_over)
绿色框是按钮对象(header_btn):
这是我的代码:
var hLoader:Loader = new Loader();
hLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, hLoaded);
hLoader.load(new URLRequest("http://django.liveproject.is/misc/current_flash_header/image.png"));
function hLoaded(event:Event):void {
var image:Bitmap = new Bitmap(event.target.content.bitmapData);
header_btn.canvas.addChild(image);
}
var hoLoader:Loader = new Loader();
hoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, hoLoaded);
hoLoader.load(new URLRequest("http://django.liveproject.is/misc/current_flash_header_over/image.png"));
function hoLoaded(event:Event):void {
var image:Bitmap = new Bitmap(event.target.content.bitmapData);
header_btn.over_canvas.addChild(image);
}
我得到的错误是:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at MethodInfo-78()
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at MethodInfo-77()
header_canvas
和header_canvas_over
被放置在舞台上。 header_canvas_over
放在header_canvas
上。
代码:
var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = true;
var hLoader:Loader = new Loader();
hLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, hLoaded);
hLoader.load(new URLRequest("http://django.liveproject.is/misc/current_flash_header/image.png"), context);
function hLoaded(event:Event):void {
var image:Bitmap = new Bitmap(event.target.content.bitmapData);
header_canvas_up.addChild(image);
}
var hoLoader:Loader = new Loader();
hoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, hoLoaded);
hoLoader.load(new URLRequest("http://django.liveproject.is/misc/current_flash_header_over/image.png"), context);
function hoLoaded(event:Event):void {
var image:Bitmap = new Bitmap(event.target.content.bitmapData);
header_canvas_over.addChild(image);
header_canvas_over.visible = false;
header_btn.addEventListener(MouseEvent.MOUSE_OVER, onHover);
function onHover(event:Event):void {
header_canvas_over.visible = true;
}
header_btn.addEventListener(MouseEvent.MOUSE_OUT, onOut);
function onOut(event:Event):void {
header_canvas_over.visible = false;
}
}
如果as3允许按钮包含对象,那将是很好的。 :/
答案 0 :(得分:2)
SimpleButton类是从DisplayObject扩展而不是DisplayObjectContainer。这意味着您无法以这种方式访问按钮时间轴上的对象,也无法添加或删除子项。
对于您想要做的事情,可能值得创建一个扩展MovieClip的自定义按钮类。您必须自己添加代码才能在用户交互状态之间移动,但您可以更好地控制状态之间的视觉转换以及它们的内容。