Мой код просто перебирает XML-файл и создает «страницы» (которые впоследствии анимируются).
Это все работало нормально, но теперь я хочу добавить спрайт для всего содержимого страницы, если содержимое 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 определяет, создана страница или нет), тогда ни одна из других страниц не работает.