Feuerwerk einbinden

Begonnen von Eismann1976, 30 Dezember 2008, 16:22:07

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Eismann1976

Hi,

ich wollt morgen wieder ein Feuerwerk einbinden. Das hab ich bisher immer per Hand über die Fusszeilen gemacht.

Das müßte man doch auch automatisieren können (ähnlich dem X-MAS Block) so das man das Script in einem Block unterbringt und diesen nur vom 31.12. (vielleicht sogar ab ner bestimmten Uhrzeit) bis zum 01.01. anzeigt. Fänd ich praktisch.

Stell ich mir das mal wieder zu leicht vor ?

Gruß Eismann

PS: Das Script sähe so aus:
<SCRIPT TYPE="text/javascript">
/**
  * You may use this code for free on any web page provided that
  * these comment lines and the following credit remain in the code.
  * Cross Browser Fireworks from http://www.javascript-fx.com
  */
/*************************************************/
if(!window.JSFX) JSFX=new Object();

if(!JSFX.createLayer)
{/*** Include Library Code ***/

var ns4 = document.layers;
var ie4 = document.all;
JSFX.objNo=0;

JSFX.getObjId = function(){return "JSFX_obj" + JSFX.objNo++;};

JSFX.createLayer = function(theHtml)
{
var layerId = JSFX.getObjId();

document.write(ns4 ? "<LAYER  NAME='"+layerId+"'>"+theHtml+"</LAYER>" :
   "<DIV id='"+layerId+"' style='position:absolute'>"+theHtml+"</DIV>" );

var el = document.getElementById ? document.getElementById(layerId) :
document.all ? document.all[layerId] :
  document.layers[layerId];

if(ns4)
el.style=el;

return el;
}
JSFX.fxLayer = function(theHtml)
{
if(theHtml == null) return;
this.el = JSFX.createLayer(theHtml);
}
var proto = JSFX.fxLayer.prototype

proto.moveTo     = function(x,y){this.el.style.left = x;this.el.style.top=y;}
proto.setBgColor = function(color) { this.el.style.backgroundColor = color; }
proto.clip       = function(x1,y1, x2,y2){ this.el.style.clip="rect("+y1+" "+x2+" "+y2+" "+x1+")"; }
if(ns4){
proto.clip = function(x1,y1, x2,y2){
this.el.style.clip.top =y1;this.el.style.clip.left =x1;
this.el.style.clip.bottom=y2;this.el.style.clip.right =x2;
}
proto.setBgColor=function(color) { this.el.bgColor = color; }
}
if(window.opera)
proto.setBgColor = function(color) { this.el.style.color = color==null?'transparent':color; }

if(window.innerWidth)
{
gX=function(){return innerWidth;};
gY=function(){return innerHeight;};
}
else
{
gX=function(){return document.body.clientWidth;};
gY=function(){return document.body.clientHeight;};
}

/*** Example extend class ***/
JSFX.fxLayer2 = function(theHtml)
{
this.superC = JSFX.fxLayer;
this.superC(theHtml + "C");
}
JSFX.fxLayer2.prototype = new JSFX.fxLayer;
}/*** End Library Code ***/

/*************************************************/

/*** Class Firework extends FxLayer ***/
JSFX.Firework = function(fwImages)
{
window[ this.id = JSFX.getObjId() ] = this;
this.imgId = "i" + this.id;
this.fwImages  = fwImages;
this.numImages = fwImages.length;
this.superC = JSFX.fxLayer;
this.superC("<img src='"+fwImages[0].src+"' name='"+this.imgId+"'>");

this.img = document.layers ? this.el.document.images[0] : document.images[this.imgId];
this.step = 0;
this.timerId = -1;
this.x = 0;
this.y = 0;
this.dx = 0;
this.dy = 0;
this.ay = 0.2;
this.state = "OFF";
}
JSFX.Firework.prototype = new JSFX.fxLayer;

JSFX.Firework.prototype.getMaxDy = function()
{
var ydiff = gY() - 130;
var dy    = 1;
var dist  = 0;
var ay    = this.ay;
while(dist<ydiff)
{
dist += dy;
dy+=ay;
}
return -dy;
}
JSFX.Firework.prototype.setFrame = function()
{
// this.img.src=this.fwName+"/"+this.step+".gif";
this.img.src=this.fwImages[ this.step ].src;
}
JSFX.Firework.prototype.animate = function()
{

if(this.state=="OFF")
{

this.step = 0;
this.x = -200;
this.y = -200;
this.moveTo(this.x, this.y);
this.setFrame();
if(Math.random() > .95)
{
this.x = (gX()-100)*Math.random();
this.y = (gY()-100)*Math.random();
this.moveTo(this.x, this.y);
this.state = "EXPLODE";
}
}
else if(this.state == "EXPLODE")
{
this.step++;
if(this.step < this.numImages)
this.setFrame();
else
this.state="OFF";
}
}
/*** END Class Firework***/

/*** Class FireworkDisplay extends Object ***/
JSFX.FireworkDisplay = function(n, fwImages, numImages)
{
window[ this.id = JSFX.getObjId() ] = this;
this.timerId = -1;
this.fireworks = new Array();
this.imgArray = new Array();
this.loadCount=0;
this.loadImages(fwImages, numImages);

for(var i=0 ; i<n ; i++)
this.fireworks[this.fireworks.length] = new JSFX.Firework(this.imgArray);
}
JSFX.FireworkDisplay.prototype.loadImages = function(fwName, numImages)
{
for(var i=0 ; i<numImages ; i++)
{
this.imgArray[i] = new Image();
this.imgArray[i].obj = this;
this.imgArray[i].onload = window[this.id].imageLoaded;
this.imgArray[i].src = fwName+"/"+i+".gif";
}
}
JSFX.FireworkDisplay.prototype.imageLoaded = function()
{
this.obj.loadCount++;
}

JSFX.FireworkDisplay.prototype.animate = function()
{
status = this.loadCount;
if(this.loadCount < this.imgArray.length)
return;

for(var i=0 ; i<this.fireworks.length ; i++)
this.fireworks[i].animate();
}
JSFX.FireworkDisplay.prototype.start = function()
{
if(this.timerId == -1)
{
this.state = "OFF";
this.timerId = setInterval("window."+this.id+".animate()", 40);
}

}
JSFX.FireworkDisplay.prototype.stop = function()
{
if(this.timerId != -1)
{
clearInterval(this.timerId);
this.timerId = -1;
for(var i=0 ; i<this.fireworks.length ; i++)
{
this.fireworks[i].moveTo(-100, -100);
this.fireworks[i].step = 0;;
this.fireworks[i].state = "OFF";
}
}
}
/*** END Class FireworkDisplay***/

JSFX.FWStart = function()
{
if(JSFX.FWLoad)JSFX.FWLoad();
myFW.start();
}
myFW = new JSFX.FireworkDisplay(num_fireworks=20, firework_images="fw01", num_frames=21);
JSFX.FWLoad=window.onload;
window.onload=JSFX.FWStart;

</SCRIPT>
LG Eismann


Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI



http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5

reddragon


Eismann1976

Joa, die Variante hab ich fürs Schneescript. Das ist ja ne *.js Datei. Das Feuerwerk hab ich so nicht anslaufen bekommen.   :red:
LG Eismann


Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI



http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5

Eismann1976

Sorry Doppelpost edit ging nichtmehr

Ich hab das Script jetzt mal in eine feuerwerk.js gepackt. Ruf ich das ganze per

<script type="text/javascript" src="script/feuerwerk.js"></script>

in den Einstellungen / Fusszeile auf, funktioniert es wie gewünscht. Binde ich das ganze per

/* Beginn der Anzeige Feuerwerk (Datum, ohne Jahr) */
$beginn = '31.12.';

/* Ende der Anzeige (Datum, ohne Jahr) */
$ende = '1.1.';

/* nur Startseite */
if (defined('MX_HOME_FILE')) {
/* Berechnung / Bedingung */
if ((time() >= strtotime($beginn . date('Y')) && time() <= mktime(0, 0, 0, 12, 31, date('Y')))
|| (time() >= mktime(0, 0, 0, 1, 1, date('Y')) && (time() <= strtotime($ende . date('Y'))))) {

/* das Javascript... */
pmxHeader::add('<script type="text/javascript" src="script/feuerwerk.js"></script>');

}
}


anstatt des Schneescripts in die my_header.php ein kommt nix. Sehr komisch.

Nochwas, würde es reichen wenn man $beginn und $ende in $beginn2 und $ende2 ändert um das für Schnee und Feuerwerk getrennt einstellbar über die my_header.php zu steuern ?
LG Eismann


Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI



http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5

matze0709

Hallo zusammen,

ich bin neu hier und bin aber schon öfter als Gast in diesem Forum unterwegs um für meine HP zu lernen.

Aber zum Thema:
@ Eismann1976

Kann es daran liegen, dass du dieses Einbindung in die my_header am 30.12. testen möchtest?
Du hast doch aber im Script geschrieben "Beginn der Anzeige: 31.12."

Das kann ja dann heute noch nicht laufen, oder?

Eismann1976

Moin,

der Tip war garnicht schlecht. Sowas kann schonmal passieren. Das Datum ist aber richtig (hab einfach kurz das Schneescript ersetzt).
LG Eismann


Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI



http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5

GerhardSt

Hi Eismann1976, :)

hast du in der feuerwerk.js oben noch <SCRIPT TYPE="text/javascript"> stehen und unten </SCRIPT>


Dann kann das nicht funktionieren ;)

Lösche das mal raus und dein Script müsste laufen :BD:

Eismann1976

Ne, ist natürlich raus.

Es geht ja wenn ich es in die Fusszeile einbinde (hab ich heute mangels Alternative). Deswegen nervt mich es ja so, dass es nicht mit Andis Codeschnippsel funzt.
LG Eismann


Kein Support per PN/ICQ/MSN ect.
Bitte schreibt eure Frage ins Forum, so haben Alle was von der Antwort.
Viele Antworten findest du auch im DOKUWIKI



http://www.wtj-clan.de | pragmaMx 0.1.11.2 &  1.12 RC2 | PHP: 5.2.9 | mysql: 5.1.33 | apache: 2.2.11 (Win32) & Microsoft-IIS/7.5