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

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

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

Регистрация: May 2006
Сообщений: 79
Question Оптимизация. на примере таблоида.

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

Стоило мне расставить около 3000 таких объектов и заставить их менять размер, фпс уже не поднимется выше 15.

Не думаю, что расчетов тут больше, чем, скажем, в 3д-движке, или 2д-физике.


Вывод: я делаю что-то координально неправильно)

Вопрос: Что именно? Какие подходы использовали бы Вы?

код 2х классов.

Код:
public class Main extends Sprite 
	{
		
		private var radius:uint = 10;
		private var tArray:Array = new Array();
		private var table:Sprite = new Sprite();
		private var bmd:BitmapData = new BitmapData(800, 400, true, 0x00FF33bb);//
		private var bm:Bitmap = new Bitmap(bmd);
		private var nullRect:Rectangle = bmd.rect;
		private var frame:uint = 0 ;
		private var field:Boolean = false ;
		
		public function Main() {
			fillTabloid();
			addChild(table);
			addChild( new Stats() )
			addEventListener(Event.ENTER_FRAME, render);
		}
		
		
		private function render(ev = null) {
			for (var i = 0; i < tArray.length;i++ ) {
					tArray[i].anim(frame);
				}
			frame++;
		}
		
		private function fillTabloid() {
			for (var i = 0; i < 80; i++) {
				for (var j = 0; j < 40; j++) {
					var t = new Tabl(i*radius*2, j*radius*2, radius);
					table.addChild(t);
					tArray.push(t);
				}
			}
		}
	}

Код:
	import flash.display.Shape;
	import flash.events.*;
	
	/**
	 * ...
	 * @author DefaultUser (Tools -> Custom Arguments...)
	 */
	public class Tabl extends Shape 
	{
		private var radius:uint;
		private var brightness:Number;
		private var offless:Number;
		private var frame:uint  = Math.round(Math.random() * 1000);
		private var tmp:uint = 0 ;
		private var color:Number = 0xFFFFFF * Math.random();
		
		public function Tabl(xx,yy,rr) {
			x = xx;
			y = yy;
			radius = rr;
		}
		
		
		public  function  anim(f:uint) {
			var n = 	this.graphics;
			n.clear();
			var aa = (1 + Math.sin((frame + f) * 0.1)) * 0.5;
			n.beginFill(color, aa);
			n.drawCircle(0, 0, radius * aa);
			n.endFill();
			
		}

	}
Вложения
Тип файла: rar Tabloid.rar (7.9 Кб, 287 просмотров)

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

Теги
графика , оптимизация
Опции темы
Опции просмотра

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

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


 


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


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