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

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

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

Регистрация: May 2008
Адрес: г. Макеевка
Сообщений: 200
По умолчанию Маска и глубина вложения клипа

В управляющем мувике динамически создаю клип, в который подгружаю мувик с контентом.
При попытке накрыть этот клип маской - ничего не выходит:
Код:
createEmptyMovieClip("content", 0);
content.setMask (mask_mc);
content.loadMovie("content.swf");
Однако, если внутри созданного клипа создать ещё один клип и грузить туда - всё получается:
Код:
createEmptyMovieClip("content", 0);
content.setMask (mask_mc);
content.createEmptyMovieClip("content_in", 0);
content.content_in.loadMovie("content.swf");
Почему так происходит?
И нельзя ли обойтись без создания клипа в клипе?


Последний раз редактировалось vikingcompany; 06.07.2008 в 01:30.
Старый 06.07.2008, 02:31
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Маску надо назначать после полной загрузки подгружаемого клипа.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 06.07.2008, 21:11
vikingcompany вне форума Посмотреть профиль Отправить личное сообщение для vikingcompany Найти все сообщения от vikingcompany
  № 3  
Ответить с цитированием
vikingcompany
 
Аватар для vikingcompany

Регистрация: May 2008
Адрес: г. Макеевка
Сообщений: 200
Перенёс команду setMask на последний кадр управляющего мувика,
дав, таким образом, подгружаемому мувику полностью загрузиться.
Действительно, маска наложилась.
Однако уже при следующей загрузке (контент-то периодически меняется!) маска снялась :-(
Приходится мудрить, куда дополнительно вписывать setMask - удовольствия мало.

Удивительно, что при создании "клипа в клипе" ничего подобного не происходит -
маска надёжно накрывает верхний клип и не снимается.
Понять, почему так происходит, здравому человеку не дано ...


Последний раз редактировалось vikingcompany; 06.07.2008 в 21:15.
Старый 06.07.2008, 21:19
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 4  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Лучше,если контент не стабилен,как раз такую матрешку делать,надежнее.

Старый 06.07.2008, 21:35
vikingcompany вне форума Посмотреть профиль Отправить личное сообщение для vikingcompany Найти все сообщения от vikingcompany
  № 5  
Ответить с цитированием
vikingcompany
 
Аватар для vikingcompany

Регистрация: May 2008
Адрес: г. Макеевка
Сообщений: 200
Ну он не то чтобы "нестабилен", просто обновляется периодически :-)
Отлично сказано - "матрёшка"! А я пытался слово подобрать!
И знаешь, я тоже пришёл к вывод такому выводу ...

Но только мне, всё-таки, хотелось бы понять: ну почему, ПОЧЕМУ так происходит?

Старый 06.07.2008, 21:38
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Понять, почему так происходит, здравому человеку не дано ...
Дело в том, что после загрузки содержимого в мувик весь код, действовавший на него до этого, сбрасывается. Это уже ДРУГОЙ мувик, даже если лежит тамже и также называется - он как будто только что был создан. Поэтому маска перестает действовать - она действовала на тот, предыдущий мувик, а этот - другой, новый.
По этой причине маска, повешенная на внешний для загружаемого мувик-контейнер, продолжает действовать - ведь контейнер сам не изменился, только его содержимое.
Вот еще пример. Вы грузите свф-файл в некий мувик mc. Как Вы будете к нему адресоваться? Например, чтобы произвести в этом загруженном свф переход на третий кадр, Вы напишите mc.gotoAndStop(3); потому что mc и есть теперь этот свф. Так понятно? И то, что Вы вешали некогда маску на mc - отменится, потому что ТОГО mc уже нет, есть совершенно новый mc, НЕ СОДЕРЖАЩИЙ в себе свф-файл, а им и ЯВЛЯЮЩИЙСЯ.
__________________
Reality.getBounds(this);

Старый 06.07.2008, 23:35
vikingcompany вне форума Посмотреть профиль Отправить личное сообщение для vikingcompany Найти все сообщения от vikingcompany
  № 7  
Ответить с цитированием
vikingcompany
 
Аватар для vikingcompany

Регистрация: May 2008
Адрес: г. Макеевка
Сообщений: 200
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Дело в том, что после загрузки содержимого в мувик весь код, действовавший на него до этого, сбрасывается. Это уже ДРУГОЙ мувик ...
Цитата:
Сообщение от Wolsh Посмотреть сообщение
По этой причине маска, повешенная на внешний для загружаемого мувик-контейнер, продолжает действовать - ведь контейнер сам не изменился, только его содержимое.
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Вы грузите свф-файл в некий мувик mc.
...mc и есть теперь этот свф. ... И то, что Вы вешали некогда маску на mc - отменится, потому что ТОГО mc уже нет, есть совершенно новый mc, НЕ СОДЕРЖАЩИЙ в себе свф-файл, а им и ЯВЛЯЮЩИЙСЯ.
Что ж, теперь всё стало на свои места. Спасибо за столь подробные разъяснения.
Мне ясно одно: всё это - просто особенность программы.
Бывает встречюсь с такой особенностью - так аж злость берёт: уж больно баг напоминает!
А потом, подумав, понимаю: если звёзды зажигаются - значит это кому-нибудь мужно ;-)

Старый 07.07.2008, 00:29
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Очень просто понять, зачем так, "кому это нужно", если вспомнить, что в подгружаемом мувике тоже может содержаться код, в том числе управляющий роисходящим в отцовском клипе и даже в руте основной флэшки. И вот представьте себе ситуацию - сайт, страницы подгружаются отдельно как файлы свф в некий мувик page_mc. Страница загрузилась и сказала -
Код:
this.onEnterFrame = function  () {
	this._x = Math.random()*150;
}
И она дергается))) Юзер жмет меню и грузится следующий файл свф в мувик page_mc. И он дергаться не будет, потому что код, запущенный предыдущей флэшкой, перестал действовать. А теперь представьте, сколько всякого кода пришлось бы писать в каждой флэшке-странице, чтобы наотменять всё, запущенное предыдущими? Хватает и того ужаса, что простые свойства вроде альфы всётаки сохраняются (((((.
__________________
Reality.getBounds(this);

Старый 07.07.2008, 11:58
vikingcompany вне форума Посмотреть профиль Отправить личное сообщение для vikingcompany Найти все сообщения от vikingcompany
  № 9  
Ответить с цитированием
vikingcompany
 
Аватар для vikingcompany

Регистрация: May 2008
Адрес: г. Макеевка
Сообщений: 200
Цитата:
Сообщение от Wolsh Посмотреть сообщение
... представьте себе ситуацию - сайт, страницы подгружаются отдельно как файлы свф в некий мувик page_mc ...
В проекте, над которым я сейчас работаю, всё именно так.

Цитата:
Сообщение от Wolsh Посмотреть сообщение
И он дергаться не будет, потому что код, запущенный предыдущей флэшкой, перестал действовать.
Цитата:
А теперь представьте, сколько всякого кода пришлось бы писать в каждой флэшке-странице, чтобы наотменять всё, запущенное предыдущими?
Это хорошо лишь в том случае, когда нам больше не надо, чтобы тот дёргался.
А вот если надо? Всё равно придётся писать код :-)


Последний раз редактировалось vikingcompany; 07.07.2008 в 12:05.
Старый 07.07.2008, 12:45
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Да. Только в этом случае Вы знаете, какой код писать, и пишете о том, чего хотите от этого мувика, а не всё то, чего Вы от него не хотите . Нередко Вы и знать не знаете, что другой мувик мог наделать. Во всяком случае, в проекте сложнее трех заранее известных страниц)))
Да что тут спорить, просто всегда когда сталкиваешься с необходимостью сделать лишнее, как тебе кажется, движение начинаешь ругать разрабов. А когда этот же принцип в другом твоем проекте отлично работает, этого просто не замечаешь.
__________________
Reality.getBounds(this);

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

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

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


 


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


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