【发布时间】:2013-09-10 09:00:59
【问题描述】:
在下面的代码中,我在一个精灵(noteholder)中创建了 4 个精灵(picn)。如何获取我创建的 picn 实例的绝对值?我知道 localToGlobal 函数,但我不知道在这种情况下如何使用它。在这一点上,我认为我需要容器,因为我需要能够在创建后移动精灵。任何帮助是极大的赞赏。谢谢!
package
{
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Point;
import Main;
public class Notes extends Sprite
{
private var speed:int = 14;
[Embed(source="../lib/Dodgethis.jpg")]
private var picn:Class;
private var noteholder:Sprite = new Sprite();
public function appear() {
trace ("appear ran")
var arr1:Array = new Array;
var numnotes:Number = 4;
Main.StageRef.addChild(noteholder);
trace (noteholder.x, noteholder.y);
for (var i = 0; i < numnotes; i++)
{
//trace (i);
var nbm:Bitmap = new picn;
noteholder.addChild(nbm);
nbm.y = i * 50;
arr1.push(nbm);
【问题讨论】:
-
谢谢,但我无法引用我想使用 localToGlobal 方法的点,因为它不是在运行时创建的,我无法通过名称引用它(至少我可以'由于变量范围,t弄清楚如何按名称引用它们)
-
鉴于您上面的代码,您可以通过两种方式引用这些位图——通过
arr1[0]之类的数组或从精灵noteholder.getChildAt(0)— 您可能应该更喜欢arr1,并且您可能应该将其范围对象并将其重命名为noteSprites或更清晰的名称。你真的不需要为动态创建的显示对象命名。
标签: actionscript-3 nested sprite global private