我正在完成一个在线教程并操纵它适合我的网站。我遇到过这段代码......
`// Create a menu item movie clip in the menu_mc instance on the main timeline
// for each item element offsetting each additional further down the screen
var item_mc = menu_mc.attachMovie("movieitem","item"+item_count, item_count);
item_mc._x = item_count * item_spacing;
item_count++;`
以下行给我一个问题(不再支持该方法)
var item_mc = menu_mc.attachMovie("movieitem","item"+item_count, item_count);
我怎样才能实现这个目标?
我尝试了下面没有快乐的事情。消息太多了?
var mItem:movieitem = new movieitem;
var item_mc = menu_mc.addChild(mItem,mItem+item_count, item_count);
答案 0 :(得分:0)
addChild()只接受1个参数,即显示对象本身。此外,在您创建对象时,您似乎缺少括号,按照惯例,类名称是大写的。
var mItem:movieitem = new movieitem();
查看针对AS2的attachMovie()的文档(哇,自从我看过这个以来已经有一段时间了),它需要3个参数:
id:String,name:String,depth:Number
现在 id 用于从库中获取动画片段。不再需要这个,因为您之前已经从库中创建了一个movieclip对象:
var mItem:Movieitem = new Movieitem();
第二个参数 name 用于为库中创建的moviclip创建唯一的实例名称。你真的不需要这个。在创建动画片段的行中(见上文),您已经拥有了一个可用于访问动画片段的唯一引用。有趣的是,attachMovie()还返回了一个引用 - 我从来没有找到过使用' name'论点。我只是使用返回的引用来访问它,你已经在做了。
第三个参数 depth 决定了动画片段的放置深度。在你的情况下,我猜测' ITEM_COUNT'只是一个增加的数字,它有效地将该影片剪辑放在执行该行时的最高深度。默认情况下,addChild()将自动为您执行此操作,并在添加时将显示对象(您的movieclip)放在父级中的最高深度。所以,除非你想要一个特定的深度/重叠顺序,否则你真的不需要传递它。如果您确实想要在特定深度添加内容,请查看addChildAt()
因此,如前所述,您只需将对movieclip / display对象的引用传入addChild()即可。