Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Изменение предметов в зависимости от времени. (http://www.flasher.ru/forum/showthread.php?t=101024)

Townshand 09.09.2007 21:04

Изменение предметов в зависимости от времени.
 
Делаю сайт для своей флеш игрушки
типа в хедере стоит большая флешка где типа воин с мечем стоит на поляне, а на заднем плане небо. Я хочу чтобы небо меняло свой цвет в зависимости от времени. Тоесть утром ораньжевое, днем голубое, вечером темно синее итп.
Подскажите плиз как сделать это.

Было бы не плохо если бы периодически начинался дождь, снег и так далее...

Townshand 09.09.2007 22:00

Есть кто живой?

as_68 09.09.2007 22:10

Делаешь мувики неба для разного времени суток.
Считываешь время с компа открывшего сайт или грузишь во флэшку переменную времени суток (если ты, например, используешь PHP).
И подгружаешь нужный мувик. ФСЁ!!!:yahoo:

udaaff 09.09.2007 22:11

Townshand, Это не чат, а форум, ответ можно и день прождать.

ActionScript 2.0 Language Reference > ActionScript classes > Date

etc 09.09.2007 22:17

Цитата:

Сообщение от Townshand
Есть кто живой?

Форум не является чатом. Вам могут ответить через день, через неделю, через месяц или вообще не ответить. Но вы не имеете права поднимать тему подобными постами. В следующий раз подобный пост будет расценен как флуд, со всеми вытекающими последствиями.

Townshand 09.09.2007 22:27

Ладно ладно, извините.
спасибо as_68
Сделал как сказал... получилось.

†‡Paladin‡† 09.09.2007 22:52

А можно сделать 1 прозрачный клип с динамическим задним фоном. Цвет менять в зависимости от текущего времени клиента. Гораздо более веселый и легковесный вариант. (Кто видел sps3 то наверняка знает, что ихняя волна меняет цвет в зависимости от времени, дня, недели и месяца. Типа фишка)

Kikasso 09.09.2007 23:48

как-то так:
Код:

var bg = createEmptyMovieClip('bg',1);
with(bg){
        beginFill(0);
        lineTo(Stage.width, 0);
        lineTo(Stage.width, Stage.height);
        lineTo(0, Stage.height);
        lineTo(0, 0);       
        endFill();
}
var bgColor = new Color(bg);
var __sec = 0;
var __val = 0;
addProperty('sec', getSec, setSec);
onEnterFrame = setCurrentSec;
//onEnterFrame = testIt;
               
function getSec(){ return __sec; }       
function setSec(val){
        if(val == __sec)return;
        __sec = val;
        setBgColor(val);
}       

function setBgColor(secNow){
        secNow = (secNow + 9*60*60)%(24*60*60); // 9 = 24 - 15
        val = Math.abs(Math.round( 0xFF - ( secNow * 0xFF)/ (60*60*12) ) );
        if( __val == val )return;
        __val = val;
//        trace(val);
        bgColor.setRGB( joinRGB(val,val,val) );
}

function setCurrentSec(){
        var now = new Date();               
        sec = now.getHours()*3600 + now.getMinutes()*60 + now.getSeconds();
}

function testIt(){
        if( i == undefined )i = 0;
        var now = new Date();               
        now.setHours(i);
        trace( "час: " + i++ );
        if(i>23)i=0;
        sec = now.getHours()*3600 + now.getMinutes()*60 + now.getSeconds();
}

function splitRGB( color:Number):Array {
        var r:Number = (color >> 16);
        var g:Number = (color >> 8) & 0xFF;
        var b:Number = color & 0xFF;
        return [r,g,b];
}
function joinRGB( r,g,b ){
        return ( r << 16 | g <<8 | b );
}

Самое яркое небо будет в 15:00, вроде бы солнечный полдень в России в это время ( декретное + летнее + еще какое-то ). Гуглить лень, надо днем глянуть в окно и посмотреть, если что поправить переменную. Я точно помню, что не в 12:00, ставил опыты на местности.

Townshand 10.09.2007 10:08

С этим кодом у меня все время небо получается серое.

Пытался делать по своему
тоесть создал клип в котором 24 кадра, и в каждом кадре типа небо определенного времени суток) тоесть если кадр 13 то речь идет о небе в 13:00

На первом кадре стоит чтото типа

Код:

time=new Date();
var hours = time.getHours()

а следом

Код:

if(hours<11)
{
GotoAndPlay(10);
}
if(hours<12)
{
GotoAndPlay(11);
}
if(hours<13)
{
GotoAndPlay(12);
}

и в таком духе... заканчивается все на

Код:

if(hours<24)
{
GotoAndPlay(23);
}
if(hours<1)
{
GotoAndPlay(24);
}

не втыкаю по чему все время останавливается на 23 кадре...
обьясните что не так.

etc 10.09.2007 10:11

Вероятно, потому что 0 меньше как 24, так и единицы.

з.Ы. Метода GotoAndPlay не существует, существует gotoAndPlay.


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

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