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

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

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

Регистрация: Oct 2013
Сообщений: 11
Attention Кодовый замок

Делаю для игры кодовый замок, вот код:
Код AS3:
btn1.addEventListener(MouseEvent.CLICK,btn1Click );
 
function btn1Click (event:MouseEvent):void
{
	trace ("1");
	txt.text += String("1");
 
}
btn2.addEventListener(MouseEvent.CLICK,btn2Click );
 
function btn2Click (event:MouseEvent):void
{
	trace ("2");
	txt.text += String("2");
 
}
btn3.addEventListener(MouseEvent.CLICK,btn3Click );
 
function btn3Click (event:MouseEvent):void
{
	trace ("3");
	txt.text += String("3");
 
}
btn4.addEventListener(MouseEvent.CLICK,btn4Click );
 
function btn4Click (event:MouseEvent):void
{
	trace ("4");
	txt.text += String("4");
 
}
btn5.addEventListener(MouseEvent.CLICK,btn5Click );
 
function btn5Click (event:MouseEvent):void
{
	trace ("5");
	txt.text += String("5");
 
}
btn6.addEventListener(MouseEvent.CLICK,btn6Click );
 
function btn6Click (event:MouseEvent):void
{
	trace ("6");
	txt.text += String("6");
 
}
btn7.addEventListener(MouseEvent.CLICK,btn7Click );
 
function btn7Click (event:MouseEvent):void
{
	trace ("7");
	txt.text += String("7");
 
}
btn8.addEventListener(MouseEvent.CLICK,btn8Click );
 
function btn8Click (event:MouseEvent):void
{
	trace ("8");
	txt.text += String("8");
 
}
btn9.addEventListener(MouseEvent.CLICK,btn9Click );
 
function btn9Click (event:MouseEvent):void
{
	trace ("9");
	txt.text += String("9");
 
}
btn0.addEventListener(MouseEvent.CLICK,btn0Click );
 
function btn0Click (event:MouseEvent):void
{
	trace ("0");
	txt.text += String("0");
 
}
Как сделать что бы после ввода 4 цифр происходила проверка на правильность введённого кода, если правильно то я отправляю команду в движок своей игры, если не правильный код, то стираются цифры и вводить заного.

Старый 13.10.2013, 18:19
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 2  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Можно вот так -
Код AS3:
package 
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
 
public class Main extends Sprite implements IBaseObserver 
{
	private var _text:TextField;
 
	public function Main() 
	{
		if (stage)
		{
			init();
		}
		else
		{
			addEventListener(Event.ADDED_TO_STAGE, init);
		}
	}
 
	private function init(event:Event=null):void 
	{
		removeEventListener(Event.ADDED_TO_STAGE, init);
 
		stage.addEventListener(MouseEvent.MOUSE_DOWN, stage_mouseDownHandler);
		_text = new TextField();
		super.addChild(_text);
	}
 
	private function stage_mouseDownHandler(event:MouseEvent):void 
	{
		_text.text += String(1);
		checkLength(_text);
	}
 
	private function checkLength(text:TextField):void 
	{
		if (text.length >= 4)
		{
			if (Number(text.text) == 1111)
			{
				trace("Правильная комбинация");
			}
			else
			{
				trace("Не правильная комбинация");
			}
			trace("Выполнить действия");
		}
		else
		{
			trace("Выполнить дрогое действие");
		}
	}
 
}
}

Старый 13.10.2013, 18:30
Родион вне форума Посмотреть профиль Отправить личное сообщение для Родион Найти все сообщения от Родион
  № 3  
Ответить с цитированием
Родион

Регистрация: Oct 2013
Сообщений: 11
Спасибо, но в коде я не силён, можно как то добавить к моему коду? пробую дописать функцию в конце кода:
Код AS1/AS2:
function checkLength(text:TextField):void 
	{
		if (text.length >= 4)
		{
			if (Number(text.text) == 1111)
			{
				trace("Правильная комбинация");
			}
			else
			{
				trace("Не правильная комбинация");
			}
			trace("Выполнить действия");
		}
		else
		{
			trace("Выполнить дрогое действие");
		}
	}
но что-то не выходит.

Старый 13.10.2013, 18:33
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 4  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Вам в каждом оброботчике нужно добавить вот таку строчку -
Код AS3:
checkLength(txt);
чтобы вот так было во всех обработчиках -
Код AS3:
function btn1Click (event:MouseEvent):void
{
	trace ("1");
	txt.text += String("1");  
           checkLength(txt);
}

Старый 13.10.2013, 18:49
Родион вне форума Посмотреть профиль Отправить личное сообщение для Родион Найти все сообщения от Родион
  № 5  
Ответить с цитированием
Родион

Регистрация: Oct 2013
Сообщений: 11
С этим разобрался, огромное спасибо, только подскажите как теперь очистить текстовое поле, если цифры не правильные.

Старый 13.10.2013, 18:53
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 6  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Код AS3:
else
{
	trace("Не правильная комбинация");
	text.text = '';
}

Старый 13.10.2013, 18:56
Родион вне форума Посмотреть профиль Отправить личное сообщение для Родион Найти все сообщения от Родион
  № 7  
Ответить с цитированием
Родион

Регистрация: Oct 2013
Сообщений: 11
Спасибо

Добавлено через 2 часа 45 минут
Вот благодаря пользователю Akopalipsis, у меня есть такой кодовый замок:
Код AS1/AS2:
import flash.sampler.clearSamples;
 
btn1.addEventListener(MouseEvent.CLICK,btn1Click );
 
function btn1Click (event:MouseEvent):void
{
	trace ("1");
	txt.text += String("1");
	checkLength(txt);
}
 
btn2.addEventListener(MouseEvent.CLICK,btn2Click );
function btn2Click (event:MouseEvent):void
{
	trace ("2");
	txt.text += String("2");
	checkLength(txt);
 
}
 
btn3.addEventListener(MouseEvent.CLICK,btn3Click );
 
function btn3Click (event:MouseEvent):void
{
	trace ("3");
	txt.text += String("3");
	checkLength(txt);
 
}
btn4.addEventListener(MouseEvent.CLICK,btn4Click );
 
function btn4Click (event:MouseEvent):void
{
	trace ("4");
	txt.text += String("4");
	checkLength(txt);
 
}
btn5.addEventListener(MouseEvent.CLICK,btn5Click );
 
function btn5Click (event:MouseEvent):void
{
	trace ("5");
	txt.text += String("5");
	checkLength(txt);
 
}
btn6.addEventListener(MouseEvent.CLICK,btn6Click );
 
function btn6Click (event:MouseEvent):void
{
	trace ("6");
	txt.text += String("6");
	checkLength(txt);
 
}
btn7.addEventListener(MouseEvent.CLICK,btn7Click );
 
function btn7Click (event:MouseEvent):void
{
	trace ("7");
	txt.text += String("7");
	checkLength(txt);
 
}
btn8.addEventListener(MouseEvent.CLICK,btn8Click );
 
function btn8Click (event:MouseEvent):void
{
	trace ("8");
	txt.text += String("8");
	checkLength(txt);
 
}
btn9.addEventListener(MouseEvent.CLICK,btn9Click );
 
function btn9Click (event:MouseEvent):void
{
	trace ("9");
	txt.text += String("9");
	checkLength(txt);
 
}
btn0.addEventListener(MouseEvent.CLICK,btn0Click );
 
function btn0Click (event:MouseEvent):void
{
	trace ("0");
	txt.text += String("0");
	checkLength(txt);
 
}
var Code1:Number = Math.round (Math.random() * 9);
trace (Code1);
var Code2:Number = Math.round (Math.random() * 9);
trace (Code2);
var Code3:Number = Math.round (Math.random() * 9);
trace (Code3);
var Code4:Number = Math.round (Math.random() * 9);
trace (Code4);
 
function checkLength(text:TextField):void 
	{
		if (text.length >= 4)
		{
			if (Number(text.text) == Code1 + Code2 + Code3 + Code4)
			{
				fscommand ("open_code_door");
				trace("Открываем дверь");
			}
			else
			{
				text.text = '';
				trace("Стираем цифры");
			}
 
		}
		else
		{
 
		}
	}
Я добавил случайную генерацию кода. Но что-то не так. При вводе кода, сгенерированого, ни чего не происходит, словно он не правильный, стирает всё в поле.

Старый 13.10.2013, 22:05
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 8  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Но что-то не так.
У Вас вот как получается, Вы вводите четыре числа и проверяете на число состоящее из четырёх чисел.
То есть - 4,5,1,2 == 4512.
Потом Вы создаетечетыре рандомных числа и в проверке их суммируете, то есть 4,5,1,2 == 12.
И потом вы проверяете, равно ли 4512 == 12. И ответ нет.

Старый 13.10.2013, 22:08
Родион вне форума Посмотреть профиль Отправить личное сообщение для Родион Найти все сообщения от Родион
  № 9  
Ответить с цитированием
Родион

Регистрация: Oct 2013
Сообщений: 11
А как исправить?

Старый 13.10.2013, 22:27
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 10  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Сделайте генерацию не четырёх чисел, а одного но 9999.

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

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

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


 


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


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