Farmville - heure et combo list images

Description

Petit utilitaire pour un jeu sur FaceBook : FarmVille.
Calcul des heures de récolte en fonction du % de croissance et du type de produit cliqué.

Je poste ici pour des fonctionnalités qui pourraient vous être utiles :
- afficher l'heure toutes les secondes
- rafraîchir une image à l'aide d'un comboList sans recharger la page

Source / Exemple :


Deux codes disponibles :

1 - génération des listes avec php et fichier data.txt -> le fichier à lancer est index2.php
2 - Code html sans php (les données sont écrites dans le fichier html) -> le fichier à lancer est index_sans_php.html mais l'heure distante ne sera pas à l'heure (normal)

------------------------------

Les données javascript sont stockées dans des tableaux à 1 dimension (jsTabidCombo() jsTabTheme() ... etc)
Avec deux dimensions, je n'ai pas réussi à ce que les variables soient visibles partout (global)

En php, c'est data.txt qui est lu pour affecter les tableaux javascript

L'heure du serveur ne fonctionne qu'avec php, normal, je fais appel à date()
	$hd = trim(date("H"));
	$hm = trim(date("i"));
	$hs = trim(date("s"));
	
	et je stocke ces valeurs en javascript dans var dist_h, m et s

<img  src='/compteurs/compteur.php?cp=img/ym_led_white/&id=11' alt='Compteur'><br>
C'est une image compteur, pas disponible car je n'ai pas mis les codes dans ce zip

Le flash clock.swf n'est pas de moi. Je l'ai eu sur vbfrance.com (inclus dans un projet vb6) il y a longtemps mais je ne me rappelle plus où exactement(le zip n'affiche pas le commentaire de bienvenue). Il affiche en fonction de l'heure de votre ordi.

---------------------------
JAVASCRIPT
---------------------------
a) heure :
----------
2 champs actualisé à l'aide de .innerHTML avec un timer javascript dans la fonction time_timer() avec setTimeout('time_timer()', 1000);
champ_time_dist.innerHTML = ' ' + time_dist();
champ_time_loc.innerHTML = ' ' + time_local();	

Dans le html, on retrouve donc les champs à mettre à jour : <span id ='champ_time_dist'></span> et <span id ='champ_time_loc'>

b) Combos et rafraîchissement image
-----------------------------------

En cliquant sur un comboList, la fonction javascript onChange=affiche_img(id_cmb) passe l'id du combo (car il y a 2 combos qui affectent l'image à afficher, ainsi que les paramètres du formulaire)
Dans affiche_img() On récupère via l'id du combo, la valeur de l'item cliqué que j'appelle id_img :

Avec un seul combo, ce serait simplement : 
onChange=affiche_img()
et dans la fonction affiche_img() ->  id_img = document.form_main.select1.value;

Comme j'ai des noms multiples (plusieurs combos) genre select1 select2... je passe donc l'id du combo en argument onChange=affiche_img(id_cmb)
Donc, pour récurérer le "value" (l'item cliqué), il faut faire :

id_img = document.form_main.elements[(idCmb - 1)].value;

Ensuite, c'est gagné, avec un autre champ_img à l'aide de champ_img.innerHTML
	quote1 contient l'apostrophe pour créer le code html de l'image plus facilement
	
	var quote1 = String.fromCharCode(39);
	
	fich_img = 'images/' + jsTabImage[id_img];		
	img_html = '<img name=' + quote1 + 'image1' + quote1 + ' border='+ quote1 + '0'+ quote1 + ' src='+ quote1 + fich_img + quote1 + '>';
	champ_img.innerHTML = img_html;	
	
---------------------------------------------------------------
ENJOY,
ym_trainz Novembre 2009

Conclusion :


All in the zip

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.