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

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

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

Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
Question Как "пририсовать" спрайт к спрайту без использования addChild()

Чую я, что сабж должен был обсуждаться, но поиском ничего не нашел.
Уж слишком сильно addChild() понижает fps. Может можно без добавления спрайта к спрайту каким-то образом перерисовать спрайт мишени?

Код AS3:
package  
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.ui.Mouse;
	import General.FpsCounter;
 
	public class Question extends Sprite
	{
		private var aim:Sprite;
		private var target:Sprite;
		static public var m_fpsCounter:FpsCounter = new FpsCounter();
 
		public function Question() 
		{
			createAndAddAim();
			addATarget();
 
			m_fpsCounter.x = 7;
			m_fpsCounter.y = 5;
			addChildAt(m_fpsCounter, 0);
 
			addEventListener(Event.ENTER_FRAME, update);			
		}
 
		private function update(e:Event):void 
		{
			m_fpsCounter.update();
		}
 
		private function addATarget():void 
		{
			target = new Target();
			target.x = 150;
			target.y = 100;
			target.addEventListener(MouseEvent.MOUSE_DOWN, onTargetMouseDown);
			addChildAt(target, 0);
		}
 
		private function onTargetMouseDown(e:MouseEvent):void 
		{
			for (var i:int = 0; i < 8; i++) 
			{
				var bulletHole:Sprite = new BulletHole();
				bulletHole.x = (mouseX - target.x) + (Math.random() * 40 - 20);
				bulletHole.y = (mouseY - target.y) + (Math.random() * 40 - 20);
				target.addChild(bulletHole);
			}			
		}
 
		private function createAndAddAim():void 
		{
			aim = new Aim();
			aim.mouseEnabled = false;
			aim.x = mouseX;
			aim.y = mouseY;
			addChild(aim);
 
			stage.addEventListener(MouseEvent.MOUSE_MOVE, moveAim);
			Mouse.hide();	
		}
 
		private function moveAim(e:Event):void 
		{
			aim.x = mouseX;
			aim.y = mouseY;
		}		
	}
}
Изображения
 
Вложения
Тип файла: rar Question.rar (37.4 Кб, 61 просмотров)

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

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

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


 


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


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