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

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

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
Arrow Изменение глубины объектов AS2 AS3

Помогите перевести строку из AS2 в AS3!
Вот код
Код AS3:
var numOfBalls:Number = 10;
var radiusX:Number = 250;
var radiusY:Number = 75;
var centerX:Number = stage.stageWidth / 2;
var centerY:Number = stage.stageHeight / 2;
var speed:Number = 0.05;
var ball_mc:Ball;
var ballsCont:Sprite = new Sprite();
var ballsCont2:Sprite = new Sprite();
 
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
 
function onMove(e:MouseEvent):void
{
	speed = (this.mouseX-centerX)/7500;
}
 
for(var i:uint=0;i<numOfBalls;i++)
{
	ball_mc = new Ball();
	ballsCont2.addChild(ball_mc);
	ball_mc.angle = i * ((Math.PI*2)/numOfBalls);
	ball_mc.addEventListener(Event.ENTER_FRAME, mover);
}
 
addChild(ballsCont);
ballsCont.addChild(ballsCont2);
ballsCont2.x -= ballsCont2.width;
ballsCont2.y -= ballsCont2.height;
ballsCont.rotation = 35;
 
function mover(e:Event):void
{
	e.target.x = Math.cos(e.target.angle) * radiusX + centerX;
	e.target.y = Math.sin(e.target.angle) * radiusY + centerY;
	var scale = e.target.y /(centerY+radiusY);
	e.target.scaleX = e.target.scaleY = scale;
	e.target.angle += speed;
	//this.swapDepths(Math.round(this.scaleX) + 100);
}
Не могу понять как изменить закоментированную строку, в которой происходит смена глубины объектов. Насколько я знаю в As3 нельзя назначить произвольный уровень глубины. Что делать?

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

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
В ActionScript 3.0 можно получить аналогичную функциональность, используя методы класса DisplayObjectContainer, например методы addChildAt(), setChildIndex(), swapChildren() и swapChildrenAt().
Из хелпа.
__________________
Нормально делай — нормально будет!

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
это понятно. Я просто не могу понять как именно в данном случае менять высоту. Это карусель обычная. Получается надо делать чтото вроде
Код AS3:
setChildIndex(e.target, numChildren-1);
Добавлено через 22 минуты
Изменил на следующую строку
Код AS3:
e.target.parent.setChildIndex(e.target, Math.floor(e.target.scaleX * (e.target.parent.numChildren)));
Вроде работает но появляется странный глюк. Первый объект, у которого индекс 0 - никогда не меняет индекс! Все остальные шары меняют индекс нормально!

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

Регистрация: Mar 2011
Сообщений: 38
Цитата:
Сообщение от tsarapkabel Посмотреть сообщение
...например методы addChildAt(), setChildIndex(), swapChildren() и swapChildrenAt()...
Используй swapChildrenAt() в цикле. Так будет без глюков

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

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

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


 


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


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