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

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

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

Регистрация: Aug 2013
Сообщений: 10
По умолчанию Превращение фигур и их движение

Есть такой код:

Код AS3:
package 
{
import flash.display.*; 
import flash.events.*; 
import fl.controls.* 
 
 
public class Main extends Sprite //объявляем основной класс
	{ 
		public var moveObject1: MyCirc; 
		public var moveObject2: MyRect;
		public var myButton1: Button;
		public var btnPause: Button; 
		private var pauseFlag: Boolean = true;
		private var currentForm: Sprite;
 
		public function Main():void 
		{ 
			moveObject1 = new MyCirc(stage); 
			moveObject2 = new MyRect(stage);
 
			myButton1 = new Button();
			btnPause = new Button();
 
			addChild(myButton1);
			myButton1.label = "Change";
			myButton1.move(260, 125); 
 
			addChild(btnPause);
			btnPause.label = "On";
			btnPause.move(205, 100);
 
			currentForm = moveObject1;
			addChild(moveObject1);
			currentForm.x = stage.stageWidth / 2;
			currentForm.y = stage.stageHeight / 2;
			moveObject2.x = stage.stageWidth / 2;
			moveObject2.y = stage.stageHeight / 2;
 
			myButton1.addEventListener(MouseEvent.CLICK, replaceObj);
			btnPause.addEventListener(MouseEvent.CLICK, onBtPause);
		}
 
		//Определяем действия для кнопок основного класса Main:
 
		public function replaceObj(e:MouseEvent): void
		{
			if (stage.contains(moveObject1)) 
			{
				removeChild(moveObject1); 
				addChild(moveObject2); 
				currentForm = moveObject2;
			}
			else if (stage.contains(moveObject2)) 
			{
				removeChild(moveObject2); 
				addChild(moveObject1); 
				currentForm = moveObject1;
			}
		}
		///////////////////////////////////////////////////
		public function onBtPause(e:MouseEvent):void
		{
				if (pauseFlag)
				{
					//если кнопка нажата
					(currentForm as PreObject).stopObj();
					pauseFlag = false; //сбрасываем флаг, тк отжали кнопку
					btnPause.label = "Off";
				}
				else 
				{
					(currentForm as PreObject).startObj();
					pauseFlag = true; //устанавливаем флаг, тк нажали кнопку
					btnPause.label = "On";
				}
		}
		// ================================================================================ //
 
	}			
}
Плюс ещё класс PreObject, описывающий фигуру и её положение в пространстве и включающий событие Enter_Frame. А также наследуемые классы MyCirc -- круг и MyRect -- квадрат. Одну фигуру можно превращать в другую, нажатием на кнопку. А также запускать и останавливать движение другой кнопкой. Но вот проблема...если я останавливаю движение круга и делаю превращение в квадрат, то на квадрат остановка движения не распространяется -- он двигается. И наоборот. А нужно, чтобы фигура стопарилась, а после превращения не нужно было стопарить и вторую фигуру. Как это сделать?

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

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

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


 


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


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