PDA

Просмотр полной версии : Рандомный выбор изображений - слишком быстро


Crimean_Wind
15.07.2006, 21:59
Доброго времени суток.

Заранее прошу прощения, скорее всего решение всей проблемы простое, но дело в том, что я просто не вижу где его искать, занимаюсь Флэш нечасто, для себя, опыта немного. Честно искал решение проблемы самостоятельно.

Что нужно:

Это шапка на сайте.
В зависимости от времени суток, выбирается одна из пяти картинок, рандомно. Она выбирается и спокойно ждет своей участи до перезагрузки страницы. Затем она может смениться... может нет, несущественно, рандом.

Делалось это так (кусок для одного промежутка времени):

Спрайт:
if (!_load)
{
_load = 1;
tellTarget("..")
{
myDate = new Date();
hours = myDate.getHours();
if (!(hours <= 3 ? (true) : (hours > 6)))
{
_root.gotoAndStop(random(5)+32);
}
}
}

В соответствующих фреймах содержится инфомация:

loadMovieNum("img/rassvet/1-5.jpg", 1);
stop ();

Проблема:

Картинки меняются. Но со скоростью 3 в секунду. Не останавливаясь на одной :)

Заранее спасибо за помощь и за понимание :)

Usnul
16.07.2006, 01:30
if (!_load)
{
_load = true;
tellTarget("..")
{
myDate = new Date();
hours = myDate.getHours();
if (!(hours <= 3 ? (true) : (hours > 6)))
{
_root.gotoAndStop(random(5)+32);
}
}
}
вообще в том что ты написал есть немного путаницы, но в общем никаких логических ошибок. Я думаю что переменная _load получает значение false где-то еще. Давай исходник или весь код, тогда можно будет судить.

iNils
16.07.2006, 01:57
2 Usnul:
flag = 0;
trace (flag == true);
flag = 1;
trace (flag == true);

Crimean_Wind
16.07.2006, 22:56
Факт, что роли в данном случае это не играет. Load вобще нигде не используется, только там и в прелоадере. Причем в прелоадере точно также: если _load=true, тогда поехали.

Может еще идеи будут? Вобще если есть желание помочь - я скину исходник, если даю не исчерпывающую информацию о проблеме.

Crimean_Wind
17.07.2006, 01:09
Спасибо Usnul. Дал направление где искать ошибку

Usnul
17.07.2006, 02:11
iNils, теперь попробуй то же самое в AS3. Нужно-ли говорить о том что 1,0 и прочие численные значения не имеют ничего общего с логическими значениями true и false?

я не утверждаю что оно "не работает", я просто указываю на то что это не верно.

iNils
17.07.2006, 02:23
Usnul, найди сначала в AS3 tellTarget. Нужно-ли говорить что 1,0 и прочие численные значения имеют общее с логическими значениями true и false не в AS3?

Nirth
17.07.2006, 22:12
function checkTrue(value:*):Boolean
{
if(value)
{
trace("true");
}else
{
trace("false");
}
}
var num:Number = 1.1;
checkTrue(num);
var str:String = "foo";
checkTrue(str);

checkTrue(1);
checkTrue(<xml><node></node></xml>);

checkTrue(0);

аутпутит

true
true
true
true
false

Crimean_Wind
18.07.2006, 00:44
Сейчас посидел, посмотрел еа чужие работы, оценил свою, переписал заново )), не раскидывая код по всей флэшке.

Кстати, вся проблема заключалась-таки в использовании random(5). Как только переделал на Math.random(5)*10, все заработало как надо :)

Usnul
18.07.2006, 04:11
trace("Saying that 1 is a logic value is a "+(1 is Boolean)+" statement.");
дайте мне плюс или бан уже.

Techmaker
18.07.2006, 08:59
2Usnul: во флэш это пока не имеет значения =))
trace(1==true);//true

если конечно делать не так, как это ещё можно делать =))
trace(new Number(1)==new Boolean(true));//false
неужели классы? =))

хех куда там до классов =))
var b:Number=new Number(1);
var c:Number=new Number(1);
trace(b==c);//false
trace(typeof(b));// object

Usnul
19.07.2006, 06:47
не люблю глупые и бессмысленные споры.

iNils
19.07.2006, 10:49
не люблю глупые и бессмысленные споры.Значит признать, что был не прав силы воли не хватает?