我有一个看似非常简单的问题。我需要创建一个形状并将其添加到另一个影片剪辑中的影片剪辑中。
我目前使用的代码如下:
var enemy_beacon:Shape = new Shape();
fullmenu_mc.menu_map_mc.addChild(enemy_beacon);
fullmenu_mc.menu_map_mc.enemy_beacon.graphics.lineStyle(1, 0xFF0000, 1);
fullmenu_mc.menu_map_mc.enemy_beacon.graphics.beginFill(0xFFBB00,1);
fullmenu_mc.menu_map_mc.enemy_beacon.graphics.drawCircle(50, 50, 25);
fullmenu_mc.menu_map_mc.enemy_beacon.graphics.endFill();
但是,此代码会抛出Error #1010: A term is undefined and has no properties.
似乎创建了很好的形状,但添加形状(通过addChild)或访问其任何属性会使一切变得混乱。
我已经检查了影片片段的实例名称,所有内容拼写正确且嵌套正确。
有什么想法吗?
答案 0 :(得分:0)
问题是你没有给你的Shape命名。
fullmenu_mc.menu_map_mc
不知道您的enemy_beacon
变量与您添加到其子项中的变量相同。
针对这样的孩子意味着您正在使用他们的实例名称。因此,fullmenu_mc.menu_map_mc.enemy_beacon
表示您正在enemy_beacon
内搜索名为menu_map_mc
的儿童。在前两行中,您刚刚将某些子项添加到该菜单项,但未指定名称。
实例名称与变量不同。看看这个:
var myShape:Shape = new Shape();
myShape.name = 'otherShape';
this.addChild(myShape); // you add specific item, name doesn't matter
trace (this.getChildByName('otherShape') == myShape); // you get child by NAME
// and because the child is the same as you've added, this will output: TRUE
答案 1 :(得分:0)
由于你有enemy_bacon
个实例,你可以直接访问它:
var enemy_beacon:Shape = new Shape();
fullmenu_mc.menu_map_mc.addChild(enemy_beacon);
enemy_beacon.graphics.lineStyle(1, 0xFF0000, 1);
enemy_beacon.graphics.beginFill(0xFFBB00,1);
enemy_beacon.graphics.drawCircle(50, 50, 25);
enemy_beacon.graphics.endFill();