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

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

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

блогер
Регистрация: Jan 2004
Адрес: D
Сообщений: 1,592
Записей в блоге: 2
Привет

вот на вскидку =)
Код:
package
{
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.display.DisplayObject;
    import flash.events.Event;
    import flash.ui.Mouse;
	
    [SWF(width='500', height='400', backgroundColor='#669999', frameRate='31')]
/*____________________________________________________*/
	
	
    public class Rotations extends Sprite
    {
        private var spriteQuantity: Number = 7;
        private var spritePlayer: Sprite;
        private var widthParabola: Number = 150;
        private var heightParabola: Number = 36;
        private var positionParabolaSpriteX: Number = 250;
        private var positionParabolaSpriteY: Number = 200;
        private var reductionScale: Number = 1.4;
        private var speedRotations: Number = 40;
        private var oneRadian: Number = Math.PI/180;
        private var degreeParabola: Number = 0;
        private var degreeParabolaOneRadian: Number = degreeParabola*oneRadian;
        private var spriteSectorParabola: Number = Math.floor(360/spriteQuantity);
        private var workArray: Array = new Array();
        private var positionArrayX: Array = new Array();
	

        public function Rotations()
        {
            drawPlayer();
			
            numX();
        }
		
		
        private function drawPlayer(): void
        {
            for (var i:int = 0; i < spriteQuantity; i++)
            {
                spritePlayer = new Sprite;
				
                spritePlayer.graphics.beginFill(0xFFFF00);
                spritePlayer.graphics.drawCircle(0, 0, 10);
                spritePlayer.graphics.endFill();
				
                spritePlayer.name = "spritePlayer" + i;
				
                addChild(spritePlayer);
				
                workArray.push(i * spriteSectorParabola);
				
                spritePlayer.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
				
                trace(workArray);
            }
        }
		
		
        private function numX(): void
        {
            for (var z:int = 0; z < spriteQuantity; z++)
            {
               positionArrayX.push(z);
            }
			
            trace(positionArrayX);
        }

	
        private function enterFrameHandler(event:Event): void
        {
            if (stage.mouseX < positionParabolaSpriteX)
            {
               workArray[positionArrayX[parseInt(event.target.name.substr(12))]] += (stage.mouseX - positionParabolaSpriteX) / speedRotations;
            }
            else if (stage.mouseX > positionParabolaSpriteX)
            {
               workArray[positionArrayX[parseInt(event.target.name.substr(12))]] -= (positionParabolaSpriteX - stage.mouseX) / speedRotations;
            }
			
            var thisParabolaX: Number = new Number;
            thisParabolaX = widthParabola * Math.cos(workArray[positionArrayX[parseInt(event.target.name.substr(12))]] * oneRadian);
			
            var thisParabolaY: Number = new Number;
            thisParabolaY = heightParabola * Math.sin(workArray[positionArrayX[parseInt(event.target.name.substr(12))]] * oneRadian);
			
            event.target.x = positionParabolaSpriteX + thisParabolaX * Math.cos(degreeParabolaOneRadian) - thisParabolaY * Math.sin(degreeParabolaOneRadian);
            event.target.y = positionParabolaSpriteY + thisParabolaX * Math.sin(degreeParabolaOneRadian) + thisParabolaY * Math.cos(degreeParabolaOneRadian);
        }
    }
}
правда перекрытие по уровням глубин не делал и уменьшение тоже, как не будь после
Вложения
Тип файла: rar Rotation.rar (2.4 Кб, 87 просмотров)
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники


Последний раз редактировалось D12; 03.07.2008 в 01:50.
Старый 03.07.2008, 11:03
N1ka вне форума Посмотреть профиль Отправить личное сообщение для N1ka Найти все сообщения от N1ka
  № 22  
Ответить с цитированием
N1ka
 
Аватар для N1ka

Регистрация: Mar 2007
Адрес: Ужгород (UA)
Сообщений: 62
Цитата:
Сообщение от D12 Посмотреть сообщение
Привет

вот на вскидку =)
Здравствуй. Спасибо, будем разбиратся, только вот вижу код в два раза больше. Но спасибо и на этом, попробую для своего взять из твоего немного ума, думаю там есть чему поучится.

Цитата:
Сообщение от ramshteks Посмотреть сообщение
то что переворачивается... это у тя дело просто в геометрии...
задавать угол поворота тока через rotation, задавать надо в градусах
angle вообще первый раз слышу такое свойство, скажи где ты его взял?)
кинь сюда свой проект как он есть плиз! хочу посмотреть воочую!
Я этого ждал...

Вот даю рабочий пример карусели на AS1/AS2, там видно что за angle и еще многое видно.
И вот еще даю ту карусель что у нас получилась на AS3, чтоб увидеть наглядно что и как. Кстати уже скорость карусели указывает положение курсора мышки.
Вложения
Тип файла: rar ExampleCarousel(AS1-AS2).rar (20.3 Кб, 78 просмотров)
Тип файла: rar MyCarousel(AS3).rar (9.6 Кб, 88 просмотров)


Последний раз редактировалось N1ka; 03.07.2008 в 12:54.
Старый 03.07.2008, 15:34
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 23  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
Smile ИЗУЧАЙ!!)

изучай студент ) оба класса подробно изучи

Удачи в начинаиях)
а проблема именно в геометрии у тебя была)

и обрати внимание на то что такое angle!
я блин до этого не вдовался в подробности)
англе отвечает за расстановку по круга итемов) а я думал те надо сам итем повернуть )))
Вложения
Тип файла: rar MyCarousel(AS3)_from_Ramshteks.rar (8.0 Кб, 86 просмотров)

Старый 03.07.2008, 18:20
D12 вне форума Посмотреть профиль Отправить личное сообщение для D12 Найти все сообщения от D12
  № 24  
Ответить с цитированием
D12
меценат
 
Аватар для D12

блогер
Регистрация: Jan 2004
Адрес: D
Сообщений: 1,592
Записей в блоге: 2
вот есть не большой еще пример

В подобных карусельках весь принцип базируется на следующей формуле:
почитай
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники

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

Регистрация: Mar 2007
Адрес: Ужгород (UA)
Сообщений: 62
О, спасибо вам, друзья. Буду стараться так, чтобы больше не задавать вопросов, а самому быть способным отвечать на них, но у меня впереди еще много планов...

Старый 03.07.2008, 20:37
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 26  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
Дерзай)
Удачи )

Старый 04.07.2008, 20:42
N1ka вне форума Посмотреть профиль Отправить личное сообщение для N1ka Найти все сообщения от N1ka
  № 27  
Ответить с цитированием
N1ka
 
Аватар для N1ka

Регистрация: Mar 2007
Адрес: Ужгород (UA)
Сообщений: 62
Вернулся все-таки.
Но тут уже аномалия для меня, смотрите сами:
Есть 10 итемов, все сидят на своих местах кроме одного, т.е. если дергать мышкой туда-сюда чтобы итемы дергались также в одну сторону и потом резко в другую, то выделяется один итем, он со старта поясвляется самый правый. Так вот, если дергать туда-сюда, то он будто по льду ездит, т.е. не сидит на своем месте, все дергаются резко, а этого одного итема заносит.

Этой проблемы небыло когда к мувиклипе item в присвоенном классе main.Item была написана функция с просчетом движения этих итемов. Но когда я эту функцию перенес по причине в класс Carousel который присвоен Document class, то вот появилась такая проблема.

Это не должно быть, почему оно так и как его устранить?

Вот мувик:
Вложения
Тип файла: rar MyCarousel.rar (2.4 Кб, 60 просмотров)


Последний раз редактировалось N1ka; 04.07.2008 в 20:59.
Старый 04.07.2008, 20:47
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 28  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
такой своего рода разрыв цепи.. кидай проект, ща посмотрю, все равно делать нефик)

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

Регистрация: Mar 2007
Адрес: Ужгород (UA)
Сообщений: 62
Цитата:
Сообщение от ramshteks Посмотреть сообщение
такой своего рода разрыв цепи.. кидай проект, ща посмотрю, все равно делать нефик)
Вот, там уже немного изменений.
Вложения
Тип файла: rar MyCarousel.rar (10.1 Кб, 74 просмотров)

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

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
честно говоря проблемы не увидел! все вроде норм...

Слушай хочешь бесплатный совет! он тебе потом оч поможет)

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

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

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


 


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


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