Flash: `sprite.visible = false` не скрывает спрайт сразу? - PullRequest
1 голос
/ 05 апреля 2011

У меня есть спрайт, который я хочу временно скрыть ... Но изменение свойства .visible не соответствует ожиданиям.Код выглядит примерно так:

childLayer.visible = false;
onLoadComplete(function():void {
    childLayer.visible = true;
});

Но childLayer не скрывается сразу (на самом деле он вообще не скрыт, если я не удалю childLayer.visible = true,в этом случае он в конце концов скрывается).

Однако, если я удаляю childLayer из родительского, все работает так, как я ожидал:

parentLayer.removeChild(childLayer);
onLoadComplete(function():void {
    parentLayer.addChild(childLayer);
});

Зачем удалять ребенкаработать при настройке .visible = false «не работает»?

Редактировать : оказывается, я просто идиот.Какой-то другой компонент устанавливал childLayer.visible = true до вызова обратного вызова onLoadComplete.

1 Ответ

2 голосов
/ 05 апреля 2011

Привет, Дэвид, трудно сказать, не видя больше кода. Одна вещь, которую я знаю, может вызвать проблемы, - это использовать cacheAsBitmap, который установлен в списке отображения над этим объектом? Если установлено, оно может обновляться неправильно. Он должен работать немедленно (следующий цикл рендеринга).

Как выглядит onLoadComplete?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...