 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Fragen stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
22.07.2007, 23:16
|
#1
|
|
TP-Junior
Registriert seit: Jul 2007
|
einen 00:00:00:00 Timecode mit Flash erstellen
Hi Leute,
ich möchte einen Video TimeCode in einem Flashprojekt verwenden.
Also: 00:00:00:00 - dann sollen die letzten immer von 00 auf 25 hochzählen - daraus dann kontinuierlich 00:00:01:00, 00:00:02:00 und so weiter werden.
Ich habe momentan in Frames ein Testimecode gebaut, der auch gut funktioniert, aber ich würde gerne, dass der Timecode sozusagen so lange läuft, wie jemand auf einer bestimmten "Seite" ist - also z.B. fängt der Timecode bei 00:00:00:00 an, der Besucher bleibt 23 Sekunden, 18 Frames = 00:00:23:18
Wenn ich das in Frames bauen muss, dann muss ich um auf die 23 zu kommen, 23x24 Frames bearbeiten - da werde ich ja verrückt. :-)
Ich denke daher es wäre sinnvoll einen Timecode zu basteln, der ca. 5 Minuten kontinuierlich hochzählt.
Also von 00:00:00:00 auf 00:05:00:00
Gibt es da vielleicht einen einfacheren Weg als das mit einzelnen Frames zu machen?
Vielen Dank!
und schöne Grüße!
Charles
|
|
|
23.07.2007, 19:34
|
#2
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Hallo,
ja gibt es
PHP-Code:
var zeit:Number = getTimer (); String.prototype.searchReplace = function (find, replace) { var f = this.split (find).join (replace); f = f.slice (0, 2); (parseFloat (f) < 10) ? 0 + f : ""; return f; }; this.onEnterFrame = function () { //Millesekunden var m = ((getTimer () - zeit) / 1000) % 1; m = m.toString ().searchReplace ("0.", ""); //Sekunden var sek = int ((getTimer () - zeit) / 1000); //Minuten var min = int (sek / 60); //Stunden var std = int (min / 60); sek = sek % 60; min = min % 60; std = std % 24; (sek < 10) ? sek = "0" + sek : ""; (min < 10) ? min = "0" + min : ""; (std < 10) ? std = "0" + std : ""; trace ("std: " + std + " min: " + min + " sek: " + sek + " mill: " + m); };
was die einzelne Befehle genau machen, einfach mal die Hilfe quälen.
Achso ja, dieses Script kommt auf dein erstes Schlüsselbild 
Geändert von Wanderratte (23.07.2007 um 19:45 Uhr).
|
|
|
23.07.2007, 20:17
|
#3
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
tja, da war mal wieder der ralf schneller, coole lösung
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
23.07.2007, 20:36
|
#4
|
|
TP-Junior
Registriert seit: Jul 2007
|
Hi Wanderratte,
vielen, vielen Dank für den Code!
Allerdings habe ich natürlich noch nicht 100 % verstanden, wie es geht.
Muss ich mit dem Textool 00:00:00:00 erstellen und dem Inputtext dann die jeweiligen Variablen geben? Oder muss ich jeweils nur 4 x 00 erstellen und denen dann die Variablen min, sek, std, mill geben?
Vielen Dank für die Hilfe schonmal!
Charles
|
|
|
23.07.2007, 20:59
|
#5
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Hallo,
die Zeile ist eigentlich das was dich Hauptsächlich zu interessieren hat:
PHP-Code:
trace ("std: " + std + " min: " + min + " sek: " + sek + " mill: " + m);
es reicht ein Textfeld und der vergibst du einen Variable:
PHP-Code:
textVar = std + ": " + min + ": " + sek + ": " + m;
Der Code sieht schon zwei 00 vor 
Übrigens reicht auch ein dynamisches Textfeld, der User soll ja nichts eingeben 
|
|
|
23.07.2007, 21:40
|
#6
|
|
TP-Junior
Registriert seit: Jul 2007
|
Ah! Es läuft! Super! Danke für die Hilfe! Danke und schönen Abend noch!
Charles
|
|
|
23.07.2007, 22:10
|
#7
|
|
TP-Junior
Registriert seit: Jul 2007
|
Alles läuft, aber ich bekomme die letzten 00 nicht zu 25 bzw. 24 Frames...
Ich habe versucht, mit den Zahlen ein bisschen hin und her zu spielen, aber leider kriege ich es nicht hin, das die letzten 00 nur immer bis 24 laufen (Filmtimecode).
Ich versuchs mal weiter.
Charles 
|
|
|
23.07.2007, 22:16
|
#8
|
|
TP-Moderator
Registriert seit: Mar 2002
|
getTimer zählt die Millesekunden.
1000 Millesekunden = 1 Sek
Eigentlich hättest du dort ein 3 stellige zahl 
Ich weiß nicht was du mit den 24 bzw 25 bezwecken willst.
|
|
|
23.07.2007, 22:21
|
#9
|
|
TP-Junior
Registriert seit: Jul 2007
|
Hi Wanderratte,
im Filmbereich ist es so, dass nach FRAMES gezählt wird - das bedeutet, dass 1 Sekunde aus 24 Bildern besteht. Wenn man einen Film z.B. schneidet, dann wird das Material nicht in Millisekunden, sondern in Frames aufgeteilt.
So sind z.B. 10 Sekunden Film = 240 Frames - oder als Timecode geschrieben:
00:00:09:24.
Ich möchte den Zähler als grafisches Element verbauen!
Charles
|
|
|
23.07.2007, 22:34
|
#10
|
|
TP-Moderator
Registriert seit: Mar 2002
|
Hallo,
sag doch gleich das du FPS / bzw BPS meinst 
Stelle aber deinen Film auf 25 FPS ein, sonst geht er nicht genau
PHP-Code:
var zeit:Number = getTimer ();
var fps:Number = 0;
String.prototype.searchReplace = function (find, replace) {
var f = this.split (find).join (replace);
f = f.slice (0, 2);
(parseFloat (f) < 10) ? 0 + f : "";
return f;
};
this.onEnterFrame = function () {
//Millesekunden
var m = ((getTimer () - zeit) / 1000) % 1;
m = m.toString ().searchReplace ("0.", "");
//Sekunden
var sek = int ((getTimer () - zeit) / 1000);
//Minuten
var min = int (sek / 60);
//Stunden
var std = int (min / 60);
sek = sek % 60;
min = min % 60;
std = std % 24;
fps++;
(fps < 10) ? fp = "0" + fps : fp = fps;
if (fps > 25) {
fp = "00";
fps = 0;
} else {
fp = fps;
}
(sek < 10) ? sek = "0" + sek : "";
(min < 10) ? min = "0" + min : "";
(std < 10) ? std = "0" + std : "";
trace ("std: " + std + " min: " + min + " sek: " + sek + " mill: " + fp);
textVar = std + ": " + min + ": " + sek + ": " + fp;
};
|
|
|
23.07.2007, 22:43
|
#11
|
|
TP-Junior
Registriert seit: Jul 2007
|
Super! Das ist echt supernett von dir, dass du immer allen hilfst! Danke!
Charles
|
|
|
24.07.2007, 00:20
|
#12
|
|
TP-Junior
Registriert seit: Jul 2007
|
Aber eine kleine Frage habe ich noch...wie kann man die Frames denn so einstellen, dass sie immer zweistellig bleiben - also 00....01...02...03...04 und so weiter. Sonst gibt es nach dem 24 Frame immer einen kleinen Ruckler. :-)
Vielen, vielen dank!
Charles
|
|
|
16.08.2007, 00:10
|
#13
|
|
TP-Junior
Registriert seit: Jul 2007
|
Ein kleiner Tipp?
|
|
|
16.08.2007, 07:33
|
#14
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
Hat doch Ralf oben schon beschrieben, z.B.:
Zitat:
|
(min < 10) ? min = "0" + min : "";
|
Wenn Deine Werte kleiner als 10 sind, dann verkette diese doch einfach mit ner "0" vorweg
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
16.08.2007, 23:54
|
#15
|
|
TP-Junior
Registriert seit: Jul 2007
|
Hi Stephan -
ja, Ralf hat es netterweise auch sehr ausführlich gemacht. Aber leider habe ich es nicht hinbekommen, dass da steht: 00....01...02...03...04 sondern nur 1.2.3.4.5.6.7.....
Ich finde den Parameter einfach nicht....
Wie verkette ich denn den Wert...
Danke!
CB
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:44 Uhr.
|
 |