Почему setMask не работает, это пример после того, как он сработал один раз

Я пытаюсь использовать setMask для создания 3 "окон" замаскированных мувиклипов в AS2 (CS3).

Главное окно маскируется нормально.

После нажатия кнопки создаю два дополнительных окна, но маскироваться отказывается Нет ошибки, просто маска не применена, а прямоугольник маски все равно виден.

Все 3 окна маскируются с помощью одной и той же функции с разными параметрами MC.

У меня есть вложенные MC, но в основном главное окно маскируется как:

_level0.GUI.OBJ.mainWinMC.mainWindowMC.mainWindow.setMask(_level0.GUI.OBJ.mainWinMC.mainWindowMC.mainWindow_PlanMask);

где mainWindow_PlanMask содержит MC с красным прямоугольником. (Примечание: я использую переменные MovieClip, и я разместил здесь их путь трассировки мувиклипа. Это работает нормально.

После нажатия кнопки я устанавливаю еще две маски:

_level0.GUI.OBJ.mainWinMC.side0MC.side0.setMask(_level0.GUI.OBJ.mainWinMC.side0MC.side0_PlanMask);

_level0.GUI.OBJ.mainWinMC.side1MC.side1.setMask(_level0.GUI.OBJ.mainWinMC.side1MC.side1_PlanMask);

side0_PlanMask and side1_PlanMask тоже содержат прямоугольники. Но в этих случаях красный прямоугольник остается видимым, а маска не применяется. Понятия не имею почему. Любая помощь будет оценена.

[Изменить] применение cacheAsBitmap ко всем MC как из маски, так и из маскированных MC к _root привело к тому, что первая операция маски также не работала.


person Eliram    schedule 16.04.2009    source источник


Ответы (2)


Маски во Flash могут быть непредсказуемыми. Попробуйте установить для cacheAsBitmap значение true для всего.

ОБНОВИТЬ:

Попробуйте установить для cacheAsBitmap значение true для каждого мувиклипа, спускающегося с _root. Попробуйте внедрить все шрифты в любые текстовые поля, которые находятся внутри мувиклипа, который вы маскируете - на самом деле убедитесь, что вы внедрили все свои шрифты везде.

person Iain    schedule 16.04.2009
comment
Я установил для cacheAsBitmap значение true на MC и MC маски перед setMask и после setMask. Не работает. Хотя это была хорошая идея. Я ищу такие идеи, так как я уже испробовал так много изменений... Спасибо. - person Eliram; 16.04.2009

трудно помочь вам отладить с предоставленной информацией

можешь попробовать:

  1. убедитесь, что вы правильно назвали мувиклипы с неправильными именами экземпляров (иногда вы обнаружите, что забыли назвать некоторые мувиклипы)

  2. откройте новый файл и сделайте гораздо более простую версию того, что вы хотите сделать, чтобы вы могли изолировать ошибки.

кстати, не обязательно, но попробуйте использовать _root вместо _level0, так будет понятнее.

person Unreality    schedule 16.04.2009
comment
Я не использую _level0 и _root. Я использую переменные MovieClip, я просто разместил здесь их пути (как показано командой трассировки). 1. Все MC создаются динамически в AS, так что я не могу забыть назвать ни одного. 2. Первый пример работает, и я использую ту же функцию. - person Eliram; 16.04.2009