Показать сообщение отдельно
Старый 20.04.2015, 17:46
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 15  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Изменил немного код Rotator, чтобы было более похоже на мой вариант. На Galaxy Tab FPS упал с 60 до 35, но при этом гладкость осталась приемлемой. Видимо, мои проблемы в чем-то другом.

Код AS3:
package 
{
	import starling.animation.Tween;
	import starling.core.Starling;
	import starling.display.Sprite;
	import starling.events.Event;
	import starling.utils.deg2rad;
	import starling.utils.HAlign;
	import starling.utils.VAlign;
 
	/**
	 * ...
	 * @author Roma Kraminskij - kraminskij@gmail.com
	 */
	public class Rotator extends Sprite 
	{
		private const REV:int = 24;
		private var _wheel : Sprite = new Sprite();
 
		public function Rotator() 
		{
			super();
 
			this.alignPivot( HAlign.CENTER, VAlign.CENTER );
 
			x = 300;
			y = 300;
 
			// wheel's back
			for ( var i:int = 0; i < 5; i++ )
			{
				p = new Part();
				p.x = -100 + 20 * i;
				p.y = -100 + 20 * i;
				_wheel.addChild(p);
			}
 
			// wheel's sectors
			for ( i = 0; i < REV; i++ )
			{
				var p:Part = new Part();
				p.rotation = Math.PI * 2 / REV * i;
				_wheel.addChild(p);
			}
 
			addChild( _wheel );
 
			// objects over wheel
			for ( i = 0; i < 5; i++ )
			{
				p = new Part();
				p.x = 200;
				p.y = -300 + 100 * i;
				addChild(p);
			}
 
			this.addEventListener(Event.ADDED_TO_STAGE, addHandler );
		}
 
		private function addHandler(e:Event):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, addHandler);
 
			var t:Tween = new Tween(_wheel, 1000 );
			t.animate("rotation", deg2rad(360*REV));
 
			Starling.juggler.add(t);
		}
 
	}
 
}