Форум 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=125463)

mymyboy 25.05.2009 11:15

Часы.
 
Привет :)

Сделал я тут часы электронные, каждая цифра в которых картинка. Так вот, все нормально, все работает, но не получается у меня сделать так, чтобы они менялись а не были статичны (сейчас просто показывается время на момент генерации скрипта).

Может кто подскажет как это реализовать?

Код AS1/AS2:

stop();
 
tm = new Date();
var min = tm.getMinutes();
var hr = tm.getHours();
 
if (hr < 10) {
        attachMovie("c0", "c0_h", this.getNextHighestDepth(), {_x:0, _y:0});
} else if (hr > 9 & hr < 20) {
        attachMovie("c1", "c1_h", this.getNextHighestDepth(), {_x:1.5, _y:0});
} else {
        attachMovie("c2", "c2_h", this.getNextHighestDepth(), {_x:0, _y:0});
}
 
if (hr == 1) {
        attachMovie("c1", "c1", this.getNextHighestDepth(), {_x:19.5, _y:0});
} else if (hr == 11) {
        attachMovie("c1", "c1", this.getNextHighestDepth(), {_x:19.5, _y:0});
} else if (hr == 21) {
        attachMovie("c1", "c1", this.getNextHighestDepth(), {_x:19.5, _y:0});
} else if (hr < 10) {
        attachMovie("c"+h, "c"+h, this.getNextHighestDepth(), {_x:18, _y:0});
} else if (hr > 9 & hr < 20) {
        attachMovie("c"+(hr-10), "c"+(hr-10), this.getNextHighestDepth(), {_x:18, _y:0});
} else {
        attachMovie("c"+(hr-20), "c"+(hr-20), this.getNextHighestDepth(), {_x:18, _y:0});
}
 
if (min < 10) {
        attachMovie("c0", "c0_m", this.getNextHighestDepth(), {_x:48, _y:0});
} else if (min > 9 & min < 20) {
        attachMovie("c1", "c1_m", this.getNextHighestDepth(), {_x:49.5, _y:0});
} else if (min > 19 & min < 30) {
        attachMovie("c2", "c2_m", this.getNextHighestDepth(), {_x:48, _y:0});
} else if (min > 29 & min < 40) {
        attachMovie("c3", "c3_m", this.getNextHighestDepth(), {_x:48, _y:0});
} else if (min > 39 & min < 50) {
        attachMovie("c4", "c4_m", this.getNextHighestDepth(), {_x:48, _y:0});
} else {
        attachMovie("c5", "c5_m", this.getNextHighestDepth(), {_x:48, _y:0});
}
 
if (min < 10) {
        attachMovie("c"+min, "c"+min+"_m1", this.getNextHighestDepth(), {_x:66, _y:0});
} else if (min > 9 & min < 20) {
        attachMovie("c"+(min-10), "c"+min+"_m1", this.getNextHighestDepth(), {_x:67.5, _y:0});
} else if (min > 19 & min < 30) {
        attachMovie("c"+(min-20), "c"+min+"_m1", this.getNextHighestDepth(), {_x:66, _y:0});
} else if (min > 29 & min < 40) {
        attachMovie("c"+(min-30), "c"+min+"_m1", this.getNextHighestDepth(), {_x:66, _y:0});
} else if (min > 39 & min < 50) {
        attachMovie("c"+(min-40), "c"+min+"_m1", this.getNextHighestDepth(), {_x:66, _y:0});
} else {
        attachMovie("c"+(min-50), "c"+min+"_m1", this.getNextHighestDepth(), {_x:66, _y:0});
}


Juice_Green 25.05.2009 11:40

обновление времени веди в событие onEnterFrame

mymyboy 25.05.2009 12:08

А перерисовать как по грамотному их? Клипы-то созданные останутся.

Или не останутся?

Juice_Green 25.05.2009 12:13

если аттачить в мувиклип, который уже существует, то старое содержимое заменится новым аттачем.

mymyboy 25.05.2009 12:33

Либо быжи не греют, либо я что-то не понимаю...

Запихал весь этот скрипт в клип clock, создал другой клип clock_m и в нем аттачил клип clock. Происходит наслоение постоянное цифр одна на другую и жутко тормозит :(

Juice_Green 25.05.2009 13:43

Вложений: 1
вот примерчик, привел на примере секунд:
Код AS1/AS2:

var s0=this.createEmptyMovieClip('s0', this.getNextHighestDepth());
var s1=this.createEmptyMovieClip('s1', this.getNextHighestDepth());
 
this.onEnterFrame=function(){
        var now=new Date();
        var cur_s=now.getSeconds();
        var cur_s0=Math.floor(cur_s/10);
        var cur_s1=cur_s%10;
        s0['num'].removeMovieClip();
        s1['num'].removeMovieClip();
        s0.attachMovie('num'+cur_s0, 'num', s0.getNextHighestDepth(),{_x:30,_y:40});
        s1.attachMovie('num'+cur_s1, 'num', s1.getNextHighestDepth(),{_x:50,_y:40});
}

, где num0....num9 символы из библиотеки

ниже аттач с примером, сохранил под flash 8


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

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