#flash #actionscript-3
#flash #actionscript-3
Вопрос:
Допустим, я поместил видеоролик внутри видеоролика A_Mc (представляющего ClassA). Теперь, если я размещу другой видеоролик (без присвоения имен и убедившись, что автоматическое присвоение имен экземплярам отключено через flash IDE), все работает нормально. Но когда я указываю имя экземпляра, скажем, b_Mc , тогда оно ДОЛЖНО быть общедоступным.
Какова логика этой настройки. Почему при проектировании я не могу создать вложенный видеоролик, который является закрытым и недоступным для других?
Комментарии:
1. Если он находится в стеке отображения, он всегда общедоступен через
getChildAt()
.
Ответ №1:
У меня такое чувство, что это просто для простоты. Среда разработки Flash IDE предназначена для дизайнеров, поэтому это может привести к путанице, если вы начнете говорить о общедоступных и частных.
Я не могу придумать ни одной причины, по которой вам все равно нужна частная графика. Я не вижу ничего плохого в доступе ко всей дочерней графике.
Ответ №2:
В документации AS3 указано, что любые символы, размещенные на сцене, являются общедоступными. Причина этого в том, что нет способа объявить экземпляр сцены как общедоступный или закрытый из временной шкалы IDE. Поэтому единственный случай, который допускает публичный или частный доступ, — это использовать public . Конечно, есть проблемы со всеми участниками you stage, которые являются общедоступными.
Но с точки зрения Adobe — они пытаются сделать Flash IDE дружественным для пользователей, ориентированных на дизайн и анимацию, которым незнакома идея общедоступных и закрытых элементов. Таким образом, они не предоставляют поле, позволяющее указать имя символа элемента как частное.
Но хорошим обходным путем является экспорт графики в виде класса без реализации, только общедоступные экземпляры. Затем добавьте это в свой класс реализации в качестве частной переменной. Затем добавьте его на этап класса реализации, если этот класс является отображаемым объектом. Если вы здесь, в StackOverflow, я думаю, вы справитесь с задачей 😉
Ответ №3:
Проигрыватель Flash не может поместить ваш экземпляр в переменную, на которую указывает имя экземпляра, если оно не является общедоступным. Подробнее об этом читайте в http://www.developria.com/2010/04/combining-the-timeline-with-oo.html