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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.11.2007, 18:25
lukish вне форума Посмотреть профиль Найти все сообщения от lukish
  № 1  
Ответить с цитированием
lukish
Banned
[+6 13.11.07]
[+6 05.03.08]
[+6 07.09.08]

Регистрация: Oct 2005
Сообщений: 102
По умолчанию Непойму почему невыполняется условие

Здравствуйте Уважаемые флешеры, немогу понять почему невыполняется условие :
Код:
if (с == 9) {
	trace("oh");
}
в
Код:
c = 0;
arr = new Array(null, null);
// заполним массив пустыми элементами
keyListener = new Object();
keyListener.onKeyDown = function() {
	arr.shift();
	// выкидываем первый элемент массива
	arr.push(Key.getCode());
	// добавляем в конец второй
	if (arr[0] == 80 && arr[1] == 70) {
		setFlower(zwet1);
	} else if (arr[0] == 80 && arr[1] !== 70) {
		_root.teremosha.play();
	}
	if (arr[0] == 68 && arr[1] == 70) {
		setFlower(zwet2);
	} else if (arr[0] == 68 && arr[1] !== 70) {
		_root.teremosha.play();
	}
	......
             ......
             ......
	if (arr[0] == 72 && arr[1] == 70) {
		setFlower(zwet9);
	} else if (arr[0] == 72 && arr[1] !== 70) {
		_root.rukawiza.play();
	}
};
Key.addListener(keyListener);
function setFlower(flower) {
	flower.gotoAndStop(2);
}
pySound = new Sound();
pySound.attachSound("sobrat");
pySound.start();
if (c == 9) {
	trace("oh");
}
И вроде всё впорядке, а условие почемуто не выполняется
Переменную с проверяю она изменяется до 9 как положенно.

Старый 04.11.2007, 18:32
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
А когда оно у вас должно выполняться?

Старый 04.11.2007, 18:34
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 3  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
У Вас проверка выполняется 1 раз в самом начале выполнения ролика.
__________________
4am is time to rock

Старый 04.11.2007, 18:37
BigDan вне форума Посмотреть профиль Отправить личное сообщение для BigDan Найти все сообщения от BigDan
  № 4  
Ответить с цитированием
BigDan
 
Аватар для BigDan

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
я вообще не заметил, что с меняет свое значение.

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
lukish, я же вам писал нормальный код для получения слога, зачем этот огород городить?
Код:
var s:String = "  ";
var keyListener:Object = new Object();
keyListener.onKeyDown = function()
{
	s = s.concat(String.fromCharCode((Key.getAscii()))).substr(1);
	
	if (s == "ya") {
		trace(s);
	} else if (s == "hi") {
		trace(s);
	} // и так далее...
};
Key.addListener(keyListener);

Старый 04.11.2007, 21:48
lukish вне форума Посмотреть профиль Найти все сообщения от lukish
  № 6  
Ответить с цитированием
lukish
Banned
[+6 13.11.07]
[+6 05.03.08]
[+6 07.09.08]

Регистрация: Oct 2005
Сообщений: 102
udaaff - То условие о котором я спрашиваю оно выполняет другую функцию, то о чём Вы поправляетет меня с тем у меня всё впорядке, я имею в виду конец фильма когда цветы все собранны 9 цветов - переменная с прибовляется 9 раз и вот это условие которое должно выполнится - если с ==9 то (к примеру trace("oh") переход к концу.
Переменная меняется в конструкторе каждого из цветков например:
Код:
this._x = 640;
this._y = 200;
this._xscale = 35;
this._yscale = 70;
this._rotation = 35;
_root.teremosha.rot.play();
pySound = new Sound();
pySound.attachSound("ka")
pySound.start()
_root.c += 1;
trace(_root.c);
Darklight - Ваша версия более правдоподобна, но фольм не линейке статичный стоит на одном кадре, только цветы меняют положнние
this._x = 640;
this._y = 200;
Поэтому я думаю что проверку условия с он проверяет постоянно, а может я не прав?

Старый 04.11.2007, 21:51
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 7  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Вы не правы. Если мувик стоит на одном кадре, ты выполняется только onEnterFrame, интервалы и обработчики событий. Остальной код выполняется при каждом прохождении через кадр с другого, чего у Вас не наблюдается. Проверить можно поставив в else какой-нибудь дрйгой trace
__________________
4am is time to rock

Старый 04.11.2007, 22:28
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 8  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
var s:String = "  ";
var str:String = "ya^hi^ui^";

var keyListener:Object = new Object();
keyListener.onKeyDown = function()
{
	s = s.concat(String.fromCharCode((Key.getAscii()))).substr(1);
	if (s == "ya" || s == "hi" || s == "ui") {
		str = del(str, s + "^");
		if (str.length == 0) {
			trace("the end");
		}
	}
};
Key.addListener(keyListener);

function del(src:String, s:String):String
{
	return src.split(s).join("");
}
upd: Можно проще

Код:
var s:String = "  ";
var str:String = "ya^hi^ui^";
var keyListener:Object = new Object();
keyListener.onKeyDown = function()
{
	if ((str = str.split((s = s.concat(String.fromCharCode((Key.getAscii()))).substr(1)) + "^").join("")).length == 0) trace("the end");
};
Key.addListener(keyListener);
upd: Можно еще немного сократить =)
Код:
var s:String = "  ";
var str:String = "ya^hi^ui^";
Key.addListener({onKeyDown: function(){if ((str = str.split((s = s.concat(String.fromCharCode((Key.getAscii()))).substr(1)) + "^").join("")).length == 0) trace("the end")}})
upd3: Можно еще чутка подсократить.. и все пожалуй на этом.
Код:
Key.addListener({onKeyDown:function(){if((r=(r?r:"ya^hi^ui^").split((s=(s?s:"  ").concat(String.fromCharCode((Key.getAscii()))).substr(1))+"^").join("")).length==0)trace("the end")}})


Последний раз редактировалось udaaff; 04.11.2007 в 23:35.
Создать новую тему Ответ Часовой пояс GMT +4, время: 13:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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