Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.08.2013, 15:37
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 1  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
По умолчанию ActionScript 3.0 и Слои (Layers)

Правильно ли я понимаю, что в экшнскрипт никто не работает со слоями?
То есть, слоёв не существуют для этого языка: нет ни свойств, ни методов, ни классов тождественных им.

И если есть, например, мувиклип с шестью слоями, на каждом из которых что-то есть, то он разбивается на 6 отдельных мувиклипов, и они уже обрабатываются каждый программно.

А если слоёный мувик имеет объекты, и его разбивать нельзя, то надо просто присвоить этим объектам классы и обращаться к ним непосредственно, опять же, игнорируя слоёность.

Старый 12.08.2013, 15:51
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 2  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Слои - удобный интсрумент для определения иерархий отображения. В конечном счёте, все отображаемые объекты оказываються в общем списке отображения родительского объекта.
http://help.adobe.com/ru_RU/FlashPla...Container.html
__________________
Дети не должны знать о своих родителях

Старый 12.08.2013, 15:54
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 3  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Слои есть только во Flash IDE, в as3 у каждого элемента разве что есть свой z-индекс. Но можно написать и свою реализацию слоёв в своём же приложении.
Цитата:
то надо просто присвоить этим объектам классы имена
Если внутри мувика mc1 есть мувик mc2, то обращаться к нему надо будет так
Код AS3:
mc1.mc2
, при условии что mc1 и mc2 это имена (instance name) этих мувиков. Если вы это имели в виду под "слоёностью".
Если во втором параграфе есть вопрос, я его не понял.
__________________
Oomph

Старый 12.08.2013, 16:11
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 4  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
Tails, просмотрел свойства класса, ну там вроде нет ничего со словом layers, то есть обходимся значениями индекса.

AlexLucas, Не совсем понимаю, почему вы зачеркнули слово классы.
Ведь если например я создал в библиотеке мувиклип Tw1, и пролинковал его к классу, то я могу управлять им как-то так:
Код AS3:
private var tw1:Tw1;
tw1 = new Tw1();
tw1.x = 100;
tw1.y = 100;
addChild(tw1);
В данном случае я же именно имя класса присвоил объекту, а не имя...
Если вы имеете ввиду имя инстанции. Но имя инстанции это, насколько я понимаю, либо:
1. вот это: private var tw1:Tw1;
2. либо вручную указанное для мувиклипа <Instance Name>.
Но это одно и тоже, разницы же нет, вроде. (Впрочем, возможно мы говорим об одном и том же).

Цитата:
Если вы это имели в виду под "слоёностью".
Если во втором параграфе есть вопрос, я его не понял.
Ну имелось ввиду, что есть например 6 слоев (layers) и на каждом свой мувиклип.
Выходит, обращение к каждому, обычное, никак не связанное с фактом что он на каком-то слое.

P.S. За хинт с вложенностью мувиков спасибо что напомнили, я еще не экспериментировал с доступом к различным вариациями этого плана.

Старый 12.08.2013, 16:19
belv вне форума Посмотреть профиль Отправить личное сообщение для belv Найти все сообщения от belv
  № 5  
Ответить с цитированием
belv
[+1 16.07.13]
[+4 16.07.13]

Регистрация: Oct 2005
Сообщений: 217
Понятия layers в AS3 нет, есть понятие глубина .Для управления глубиной есть несколько методов, например addChild добавляет визуальный объект с самым высоким индексом глубины.Смотрите методы DisplayObjectContainer.

Старый 12.08.2013, 16:46
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 6  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Цитата:
Если вы имеете ввиду имя инстанции. Но имя инстанции это, насколько я понимаю, либо:
1. вот это: private var tw1:Tw1;
2. либо вручную указанное для мувиклипа <Instance Name>.
Две разные вещи.
1) это ссылка на объект (может быть сколько угодно штук)
Код AS3:
private var objectLink:Object = {name:'myObject', x:0, y:0 ....} //objectLink это ссылка
private var objectLinkTwo:Object = objectLink; //ещё одна ссылка на тот же обжект созданный выше
2) это имя объекта (свойство name - оно одно такое у объекта)

Создавать на каждый объект по классу это не правильно. Класс это как шаблон по которому создаются объекты. Вы же не будете для каждой кнопки создавать по классу. Есть класс - Button (есть и другие естественно), и уже пользуясь им вы создаёте экземпляры кнопок.
У меня не установлен флеш IDE сейчас, точно не могу сказать что там и как с библиотекой, не помню.

Да, слои только в IDE.
__________________
Oomph


Последний раз редактировалось AlexLucas; 12.08.2013 в 17:18.
Старый 12.08.2013, 17:38
SvetozarPNZ вне форума Посмотреть профиль Отправить личное сообщение для SvetozarPNZ Найти все сообщения от SvetozarPNZ
  № 7  
Ответить с цитированием
SvetozarPNZ
 
Аватар для SvetozarPNZ

Регистрация: Dec 2009
Сообщений: 125
Записей в блоге: 1
На мой взгляд термин layer относится к визуальному дизайну, а не к программированию. Вы пишете
Цитата:
в экшнскрипт никто не работает со слоями?
Словно AS 3 какой-то ограниченный. У него есть средства для работы с z-последовательностью объектов, что аналогично модели слоев.

Например, если создать в среде Flash два слоя; в одном нарисовать мувиклип с именем layer1, в другом - мувиклипы с именами layer2_1 и layer2_2; затем в коде написать команды

Код AS3:
trace(getChildIndex(layer1));
trace(getChildIndex(layer2_1));
trace(getChildIndex(layer2_2));
то можно увидеть z-индексы объектов. Это слои в понимании языка AS, а не в визуальном представлении дизайнерской среды.

Старый 12.08.2013, 17:40
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 8  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
Tails, AlexLucas, belv, SvetozarPNZ, по слоям в целом понятно, благодарю за разъяснения.

Цитата:
Создавать на каждый объект по классу это не правильно.
Странно. Ну вот например есть три созданные вручную мувиклипа: звезда, эллипс, квадрат.
Причем их на стэйдже нет, они только в библиотеке.

Как же тогда быть, если не создавать класс для каждого?
Или может быть прописать им всем некий общий класс: Shape1, и... как-тогда обращаться к каждому экземпляру?
Имен инстанций у нас еще нет, и как отличить звезду от эллипса, юзая только Shape1 - непонятно.

Можно, конешно вручную помесить все три на стэйдж, вручную же прописать им <Instance name>, но...
Что-то здесь не так, наверняка можно как-то проще и чисто кодом всё разрулить.

Старый 12.08.2013, 18:25
belv вне форума Посмотреть профиль Отправить личное сообщение для belv Найти все сообщения от belv
  № 9  
Ответить с цитированием
belv
[+1 16.07.13]
[+4 16.07.13]

Регистрация: Oct 2005
Сообщений: 217
В библиотеке нажимаете правой кнопкой мыши на символ, выбираете popeties.В свойствах ставите галочку Export for ActionScript, в поле Class пишите имя класса Star и жмете ok.
После чего в коде Вы уже можете создавать их экземпляры и добавлять на сцену.
Код AS3:
var star = new Star();
addChild(star);
var elipse = new Elipse();
addChildAt(elipse,0);
Так вот элипс будет под звездой.

Старый 12.08.2013, 18:38
Котейка вне форума Посмотреть профиль Отправить личное сообщение для Котейка Найти все сообщения от Котейка
  № 10  
Ответить с цитированием
Котейка
 
Аватар для Котейка

Регистрация: Aug 2013
Сообщений: 56
Fogflasher, вы уж определитесь где они лежат Вы до этого сказали что объекты в мувике
Цитата:
А если слоёный мувик имеет объекты, и его разбивать нельзя, то надо просто присвоить этим объектам классы и обращаться к ним непосредственно, опять же, игнорируя слоёность.
На что и получили ответ
Цитата:
надо просто присвоить этим объектам имена
Потом говорите что они не в мувике, а в библиотеке. Это все-таки разные вещи
Если есть в библиотеке некий мувик, а в него вложены другие, то при создании экземпляра этого мувика вы сможете к ним обращаться внутри клипа так же как, если бы он изначально лежал на сцене.
Имелось ввиду, что нет смысла создавать свой класс, для каждого объекта внутри мувика экземпляр которого не будет создаваться в коде отдельно и существовать как самостоятельный объект.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
actioscript 3.0 , layers , классы , слои

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:37.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.