Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-08-2011, 09:47   #1 (permalink)
Banned
 
Registriert seit: Aug 2011
Beiträge: 5
Flash Uhr Pacific Standardtime Problem

Hallo liebe com ich habe da ein kleines Problem und hoffe ihr könnt mir helfen.

Ich habe eine flash erstellt welche mir 2 Uhren anzeigt. 1 Uhr mit Deutschland (GMT +2) und eine mit Pacific standard time (GMT -7). Beide Uhren haben 12 h anzeige mit pm / am.

Klappte soweit super.

Heut morgen jedoch beobachtete ich ein seltsammes Problem.

Bei der PST Uhr Zeigte es 0 -1:32:0 an. Was ich darauf zurückführe das er wohl in den negativ bereich subtrahiert hat. leider kann ich mein Problem im AS nicht finden, und hoffe ihr könnt mir helfen.

Hier mal das AS dazu:
Code:
time = new Date();// time object
var seconds = time.getUTCSeconds();
var minutes = time.getUTCMinutes();
var hours = time.getUTCHours() + 2;
var hours2 = time.getUTCHours() - 7;
if (hours < 12)
{
	ampm = "AM";
}
else
{
	ampm = "PM";
}
while (hours > 12)
{
	hours = hours - 12;
}
if (hours < 10)
{
	hours = "0" + hours;
}
if (hours2 < 12)
{
	ampm2 = "AM";
}
else
{
	ampm2 = "PM";
}
while (hours2 > 12)
{
	hours2 = hours2 - 12;
}
if (hours2 < 10)
{
	hours2 = "0" + hours2;
}
if (minutes < 10)
{
	minutes = "0" + minutes;
}
if (seconds < 10)
{
	seconds = "0" + seconds;
}
clock_txt.text = hours + ":" + minutes + ":" + seconds;
clock_txt2.text = hours2 + ":" + minutes + ":" + seconds;
ampm_txt.text = ampm;
ampm_txt2.text = ampm2;
Vielen Dank schonmal.

Greez

Geändert von Arik (12-08-2011 um 10:17 Uhr)
Arik ist offline   Mit Zitat antworten
Alt 12-08-2011, 10:00   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
willkommen im flashforum!

hours = "0" + hours;
typisiere deine variablen
mal ist es eine zahl, dann ein text ..

daher deine negativen stunden?
var hours2 = time.getHours() - 7;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (12-08-2011 um 10:33 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 12-08-2011, 10:11   #3 (permalink)
Banned
 
Registriert seit: Aug 2011
Beiträge: 5
danke für die fixe antwort aber wie typisiere ich die??

hab ma oben geändert es hätte heißen müssen: var hours2 = time.getUTCHours() - 7;

und die it "0" + hours ist ja das es die uhr anzeigt mit 01:01:22 und net 1:1:22 oder hab ich da was falsch verstanden?

Geändert von Arik (12-08-2011 um 10:19 Uhr)
Arik ist offline   Mit Zitat antworten
Alt 12-08-2011, 10:31   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
ungetestet, aber so in etwa?
Code:
var time:Date = new Date();
var seconds:Number = time.getUTCSeconds();
var minutes:Number = time.getUTCMinutes();
var hours:Number = time.getUTCHours()+2;
var hours2:Number = time.getUTCHours()-7;

/**
 * 2stellige zahl mit führender null
 * @param n eine zahl 0..99
 * @return string '09' .. '99'
 */
function nn (n:Number): String {
	return ('00'+String(n)).substr(-2);
}

/**
 * gibt die tageszeit
 * @param n eine zahl 0..23
 * @return "AM" oder "PM"
 */
function ampm (n:Number): String {
	return n<12 ? "AM" : "PM";
}

/**
 * rundet auf 12 stundenanzeige
 * @param n eine zahl 0..23
 * @return 0 .. 11
 */
function rnd12 (n:Number): Number {
	return (12+n)%12;
}

var minSecStr:String = ":" + nn(minutes) + ":" + nn(seconds);

clock_txt.text = nn(rnd12(hours)) + minSecStr;
clock_txt2.text = nn(rnd12(hours2)) + minSecStr;
ampm_txt.text = ampm(hours);
ampm_txt2.text = ampm(hours2);
dein fehler:
var hours2 = time.getUTCHours() - 7;
könnte z.b. -3 ergeben.
-3 ist < 10, da machst du dann '0' + '-3' daraus
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (12-08-2011 um 10:39 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 12-08-2011, 10:48   #5 (permalink)
Banned
 
Registriert seit: Aug 2011
Beiträge: 5
funktioniert super jedoch ein problem besteht ... die uhren zeigen mir statt 12:00 uhr --> 00:00 uhr an. im pm am modus gibt es ja aber eig kein 00:00 sondern 1-12 wie bekommt man das da rein? bzw ist das überhaupt möglich? is mittags sowie abends so

Geändert von Arik (12-08-2011 um 11:21 Uhr)
Arik ist offline   Mit Zitat antworten
Alt 12-08-2011, 11:41   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
das alte problem ;-) ist mitternacht um 24:00 oder um 0:00
ist mittag um 12:00 AM oder 0:00 PM
was kommt nach 11:59 AM ?

11:58 AM
11:59 AM
00:00 PM oder 12:00 AM ?
00:01 PM
00:02 PM

wenn du 12:00 AM/PM? sehen willst, dann musst du dafür eine extra abfrage schreiben!
sollte einfach sein: wenn hours==0 dann '12' anzeigen

wenn ich da mal nachsehe bei:
http://de.wikipedia.org/wiki/2-mal-1...n-Z%C3%A4hlung
dann muss man wohl nachmittags das AM/PM erstmal weglassen?
dein problem ;-)
das ganze erscheint mir mal wieder so eine "5 minuten vor halb neun"- regel zu sein. (halb neun ist 8:30)


ist dir klar, was das da macht?
return (12+n)%12;

% modulo (bitte auch in der flash-hilfe nachsehen) gibt den rest nach einer division
11%12 == 0 mal rest 11
12%12 == 1 mal rest 0
13%12 == 1 mal rest 1
..
und mit dem 12+n verhindere ich, dass bei deiner -7 rechnung der wert negativ ist.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (12-08-2011 um 11:52 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 12-08-2011, 12:03   #7 (permalink)
Banned
 
Registriert seit: Aug 2011
Beiträge: 5
danke werd da mal nachschauen.
ja mir war so im groben klar was es bewirkt^^ habs mir denken können mit logischem 1x1^^
werd mich trotzdem noch kundig machn in der fh damit ichs ganz raff^^

/edit: ich rall das net habe die funktion

Code:
if (hours == 0)
{
	hours = 12;
}
eigefügt aber nix tut sich :s

beim pm / am is das so, das es normal nur am anzeigt wenn auch am is pm fällt da weg... is für mich aber nicht relevant, da ich so oder so beides angezeigt haben will, wenn es so is.

das mit dem modulo hab ich schonmal soweit geschnallt... is um den zahlenbereich einzugrenzen.

zb.:

25%12 == 1

Modulo 12 Zahlenreihenfolge 0,1,2,3,4,5,6,7,8,9,10,11,12 genauso in den negativbereich und dann wieder von vorn.. richtig?

Geändert von Arik (12-08-2011 um 12:24 Uhr)
Arik ist offline   Mit Zitat antworten
Alt 12-08-2011, 12:45   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
negativ und modulo ist auch so ein ding. die einen sagen so, die anderen so ...

// nimm mal das da:
function rnd12 (n:Number): Number {
var m:Number = (12+n)%12;
return m ? m : 12;
}

// ist m dann nimm m andernfalls ist m==0, dann nimm 12
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 12-08-2011, 18:10   #9 (permalink)
Banned
 
Registriert seit: Aug 2011
Beiträge: 5
funktioniert prima vielen dank wieder was dazu gelernt^^
Arik ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Flash Alpha Maske problem bei Flash Player 10 rib Flash CS3 Professional 0 18-06-2010 16:24
[Flash CS4] Von Flash 2004 mx auf Flash CS4 AS3 Problem mit Url-Verlinkung Jens_M Flash Einsteiger 9 18-08-2009 14:11
Problem: Flash-IDE, auf Klassen eines Flash-Films zugreifen ... medianetic ActionScript 3 2 13-08-2009 02:27
Javascript -> Flash - Problem: Flash Stoppt und Spielt erst nach ein paar Sekunden we unbenannt Flash 8 1 31-01-2007 15:07
Flash -> PHP 5 Problem -> EBay API Problem... mirzahat Server-Seite allgemein 2 22-09-2006 21:36


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele