Показать сообщение отдельно
Старый 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 Кб, 94 просмотров)
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники


Последний раз редактировалось D12; 03.07.2008 в 01:50.