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

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

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

Регистрация: Dec 2008
Сообщений: 3
Tools Подгруженные из XML вращающиеся иконки,как прицепить на них маску?

Доброй ночи

Я пытаюсь сделать что-то вроде меню - карусель.
В него подгружаются иконки из XML файла, которые должны летать по орбите вокруг центральной.. колонны)). Они реагируют на курсор и вращаются обратно пропорционально его отдалению от центра.

Фактически нужно чтобы передние иконки проходили перед ней, а задние за ней. Для этого явно удобнее всего использовать маску.

Вот код который генерит иконки и применяет к ним все функции.


Код:
xml.onLoad = function()
{

var nodes = this.firstChild.childNodes;
numOfItems = nodes.length;

for(var i=0;i<numOfItems;i++)
{

var t = home.attachMovie("item","item"+i,i+1);

t.angle = i * ((Math.PI*2)/numOfItems);
t.onEnterFrame = mover;
t.toolText = nodes[i].attributes.tooltip;
t.content = nodes[i].attributes.content;

t.imagp = nodes[i].attributes.img;

t.icon.inner.loadMovie(nodes[i].attributes.image)
t.r.inner.loadMovie(nodes[i].attributes.image);
t.icon.onRollOver = t.setMask(swapper),over;
t.icon.onRollOut = out;
t.icon.onRelease = released;
//t.setMask(swapper);


}
}
Сверху серым команда которую я внес чтобы маска применялась, и она применяться в точности как надо, Но только для Одной иконки. Явно первой.

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

И возможно как бонус, подскажите как соединить функции такого кода с кнопкой поставленной на сцене, чтобы не прерывался цикл вращения. при моих попытках он останавливается. в коде сверху это функция "mover".

За ранее спасибо

Старый 10.12.2008, 21:55
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Один клип не может служить маской для >1 клипа одновременно. Чтобы применить к нескольким объектам один клип-маску, надо все эти объекты сложить в один контейнер, и применить маску к контейнеру
__________________
4am is time to rock

Старый 10.12.2008, 22:09
Ragamuffin вне форума Посмотреть профиль Отправить личное сообщение для Ragamuffin Найти все сообщения от Ragamuffin
  № 3  
Ответить с цитированием
Ragamuffin

Регистрация: Dec 2008
Сообщений: 3
Как можно применить контейнер тут?, чтобы не наружить работу. Я могу выложить полный код.
Парралельно сейчас буду сам разбираться с контейнерами, спасибо за этот совет..

Старый 11.12.2008, 14:53
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Я бы использовал свойство movieClip.swapDepth(число)
число - номер слоя на который Вы хотите запихнуть мувик
чем выше мувик на экране - тем меньше номер слоя для него

ЗЫ
КАК можно было придумать тут маску? =))

UPD
Вообще в подобного рода имитации 3D удобнее всего использовать массивы и методы их сортировки
Т.е. :
1)сложили _у всех клипов в массив
2)сложили их имена в том же порядке в другой массив
3)сортируем массив с _у клипов нужным образом
4)используем Array.RETURNINDEXEDARRAY и получаем массив с номерами клипов согласно их _у
5)по полученным номерам выдаем через swapDepth() слой каждой превьюхе

этот способ быстрее всего работает при значительном числе объектов
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 11.12.2008 в 15:03. Причина: просто совет
Старый 11.12.2008, 23:29
Ragamuffin вне форума Посмотреть профиль Отправить личное сообщение для Ragamuffin Найти все сообщения от Ragamuffin
  № 5  
Ответить с цитированием
Ragamuffin

Регистрация: Dec 2008
Сообщений: 3
Маску пришлось использовать от того, что при .swapDepth весь ряд иконок начинал мигать. 1\5 он на нужном слое, остальное время сверху над всем. Это еще веселее чем пытаться натянуть на них маску.

Если бы кто подсказал как применить контейнер, сразу бы все решилось

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

На зарубежных ресурсах никто даже н ответил в тему, спасибо)


Последний раз редактировалось Ragamuffin; 11.12.2008 в 23:49.
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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