我的代码只是循环一个xml文件并创建'pages'(稍后动画)。AS3不添加Sprite到MovieClip
这一切都工作正常,但现在我想添加一个精灵覆盖整个页面的内容如果XML的内容包含一个URL。
在运行时,我可以看到正在处理对URL的检查,并且正在生成覆盖图,但我无法在页面上“看到”它。
下面的代码位于一个for循环在XML文件中的每个页面:
var page:Page = new Page(); //MovieClip in my library
// ... other stuff
var textMC:FadeText = new FadeText(xml); //load the text from the xml fragment for this page
//if the text contains a URL (using RegExp)
if(textMC.hasLink())
{
var button:Sprite = new Sprite();
button.graphics.beginFill(0x000000);
button.graphics.drawRect(0, 0, 1, 1);
button.name= textMC.getLink();
button.x = button.y = button.alpha = 0;
button.width = rectangle.width;
button.height = rectangle.height;
button.buttonMode = true;
button.addEventListener(MouseEvent.CLICK, goToUrl, false, 0, true);
page.addChildAt(button, page.numChildren);
}
//... more code - such as add page to stage.
从(使用Firebug FlashBug)正在创建的按钮控制台,但我不能看到它在屏幕上所以我猜测addChild位有问题。
什么是错,我该如何解决?
[编辑] 设定了阿尔法1我可以看到覆盖IS被添加到页面,但它没有改变我的光标或响应鼠标点击。
我现在认为这是XML错误。它是正确解析的XML(否则FlashPlayer会在我的脸上抛出异常),看起来这个代码在除了第二个页面以外的每个页面上都能正常工作。此外,如果第二个页面被设置为可见(如果创建页面或不创建页面中的XML标记),则其他页面覆盖页面都不起作用。
你的动画片段添加到舞台上了吗? – JNDPNT
我已将按钮的alpha值更改为1 - 是的,它绝对被添加到页面中。 –
是的,它被添加到页面...但是页面添加到某处?这就是我想知道的:-)。你说这是一个图书馆动画片段。该movieclip是否也添加到您的文档根/阶段? – JNDPNT