![]() |
ActionScript 3.0 и Слои (Layers)
Правильно ли я понимаю, что в экшнскрипт никто не работает со слоями?
То есть, слоёв не существуют для этого языка: нет ни свойств, ни методов, ни классов тождественных им. И если есть, например, мувиклип с шестью слоями, на каждом из которых что-то есть, то он разбивается на 6 отдельных мувиклипов, и они уже обрабатываются каждый программно. А если слоёный мувик имеет объекты, и его разбивать нельзя, то надо просто присвоить этим объектам классы и обращаться к ним непосредственно, опять же, игнорируя слоёность. |
Слои - удобный интсрумент для определения иерархий отображения. В конечном счёте, все отображаемые объекты оказываються в общем списке отображения родительского объекта.
http://help.adobe.com/ru_RU/FlashPla...Container.html |
Слои есть только во Flash IDE, в as3 у каждого элемента разве что есть свой z-индекс. Но можно написать и свою реализацию слоёв в своём же приложении.
Цитата:
Код AS3:
Если во втором параграфе есть вопрос, я его не понял. |
Tails, просмотрел свойства класса, ну там вроде нет ничего со словом layers, то есть обходимся значениями индекса.
AlexLucas, Не совсем понимаю, почему вы зачеркнули слово классы. Ведь если например я создал в библиотеке мувиклип Tw1, и пролинковал его к классу, то я могу управлять им как-то так: Код AS3:
Если вы имеете ввиду имя инстанции. Но имя инстанции это, насколько я понимаю, либо: 1. вот это: private var tw1:Tw1; 2. либо вручную указанное для мувиклипа <Instance Name>. Но это одно и тоже, разницы же нет, вроде. (Впрочем, возможно мы говорим об одном и том же). Цитата:
Выходит, обращение к каждому, обычное, никак не связанное с фактом что он на каком-то слое. P.S. За хинт с вложенностью мувиков спасибо что напомнили, я еще не экспериментировал с доступом к различным вариациями этого плана. |
Понятия layers в AS3 нет, есть понятие глубина .Для управления глубиной есть несколько методов, например addChild добавляет визуальный объект с самым высоким индексом глубины.Смотрите методы DisplayObjectContainer.
|
Цитата:
1) это ссылка на объект (может быть сколько угодно штук) Код AS3:
Создавать на каждый объект по классу это не правильно. Класс это как шаблон по которому создаются объекты. Вы же не будете для каждой кнопки создавать по классу. Есть класс - Button (есть и другие естественно), и уже пользуясь им вы создаёте экземпляры кнопок. У меня не установлен флеш IDE сейчас, точно не могу сказать что там и как с библиотекой, не помню. Да, слои только в IDE. |
На мой взгляд термин layer относится к визуальному дизайну, а не к программированию. Вы пишете
Цитата:
Например, если создать в среде Flash два слоя; в одном нарисовать мувиклип с именем layer1, в другом - мувиклипы с именами layer2_1 и layer2_2; затем в коде написать команды Код AS3:
|
Tails, AlexLucas, belv, SvetozarPNZ, по слоям в целом понятно, благодарю за разъяснения.
Цитата:
Причем их на стэйдже нет, они только в библиотеке. Как же тогда быть, если не создавать класс для каждого? Или может быть прописать им всем некий общий класс: Shape1, и... как-тогда обращаться к каждому экземпляру? Имен инстанций у нас еще нет, и как отличить звезду от эллипса, юзая только Shape1 - непонятно. Можно, конешно вручную помесить все три на стэйдж, вручную же прописать им <Instance name>, но... Что-то здесь не так, наверняка можно как-то проще и чисто кодом всё разрулить. |
В библиотеке нажимаете правой кнопкой мыши на символ, выбираете popeties.В свойствах ставите галочку Export for ActionScript, в поле Class пишите имя класса Star и жмете ok.
После чего в коде Вы уже можете создавать их экземпляры и добавлять на сцену. Код AS3:
|
Fogflasher, вы уж определитесь где они лежат :) Вы до этого сказали что объекты в мувике
Цитата:
Цитата:
Если есть в библиотеке некий мувик, а в него вложены другие, то при создании экземпляра этого мувика вы сможете к ним обращаться внутри клипа так же как, если бы он изначально лежал на сцене. Имелось ввиду, что нет смысла создавать свой класс, для каждого объекта внутри мувика экземпляр которого не будет создаваться в коде отдельно и существовать как самостоятельный объект. |
Цитата:
Нет никакой ложки |
Цитата:
Цитата:
Просто AlexLucas сказал, что не обязательно для каждого объекта свой класс создавать. Мне это показалось непонятным. А если он имел ввиду, именно то как вы это поняли: Цитата:
Добавлено через 3 минуты Цитата:
Иными словами - слои заменяются индексами объектов, получается так. |
| Часовой пояс GMT +4, время: 22:22. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.