Forums Développement Multimédia

Aller au contenu

Bibliothèque Flash sur la machine du client

CODE Actionscript

15 réponses à ce sujet

#1 patrick mantout

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 345 messages

Posté 19 November 2008 - 16:24 PM

Bonjour,

C'est une question simple, mais je ne sais pas très bien où chercher.

Pour un site Internet, je réalise une trentaine de modules Flash (on va dire des jeux) qui se chargent les uns après les autres suivant ce que choisit l'utilisateur.

Je voudrais avoir la possibilité de laisser sur la machine du client une bibliothèque de plusieurs mégas et qui contiendrait certains éléments (décors, boutons, sons, …) qui se trouvent dans la plupart des modules de jeux (afin d'économiser de la bande passante et le temps de chargement).

1) Est ce possible ? (je pense que oui)

2) Dans quel endroit puis-je stocker cette bibliothèque (Mac, PC, Linux) ?

3) Comment puis-je transférer cette bibliothèque de mon site vers le disque dur de l'utilisateur ?
Est il possible de le faire en ligne, d'une manière transparente invisible pour l'utilisateur, c.a.d. sans installeur ?

4) Est-il possible de faire des mises à jour de cette bibliothèque ?

Je cherche un tutorial sur Internet

Merci

Modifié par patrick mantout, 19 November 2008 - 16:25 PM.


#2 Ffred

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3671 messages

Posté 19 November 2008 - 16:43 PM

Dans les livedocs, tu as cette classe qui devrait pouvoir t'intéresser:
http://livedocs.adobe.com/flash/9.0_fr/Act...eReference.html

Par contre attention, il me semble que le téléchargement est limité à un certain volume (10Mo peut-être, ne me souviens plus)

#3 patrick mantout

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 345 messages

Posté 19 November 2008 - 17:06 PM

Citation (fred @ Nov 19 2008, 04:43 PM) Voir le message
Dans les livedocs, tu as cette classe qui devrait pouvoir t'intéresser:
http://livedocs.adobe.com/flash/9.0_fr/Act...eReference.html

Ce n'est pas ce que je cherchais car avec FileReference, l'utilisateur doit choisir où le fichier doit aller.
Moi, je veux pouvoir copier ce fichier dans un endroit que j'aurais choisi au préalable (un dossier temporaire du navigateur par exemple) et qui serais le même pour toutes les machines.
Que l'on demande à l'utilisateur s'il veut charger la bibliothèque, à la limite Oui, mais par contre je veux pouvoir choisir son emplacement, mais je ne sais pas où le mettre ? icon_confused.gif

Merci icon_biggrin.gif

Modifié par patrick mantout, 19 November 2008 - 17:07 PM.


#4 Ffred

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3671 messages

Posté 19 November 2008 - 17:17 PM

Dans ce cas, SO.

http://livedocs.adobe.com/flash/9.0_fr/Act...aredObject.html

Citation
Vous pouvez choisir de rendre les objets partagés distants persistant sur le client, sur le serveur ou sur les deux. Par défaut, Flash Player enregistre localement les objets partagés distants persistants dont la taille est inférieure à 100 Ko. Lorsque vous tentez d'enregistrer un objet plus volumineux, Flash Player ouvre une boite de dialogue de stockage local qui permet à l'utilisateur d'autoriser ou d'interdire le stockage local de l'objet partagé. Assurez-vous que la taille de votre scène est d'au moins 215 x 138 pixels ; il s'agit de la taille minimale requise par Flash pour afficher cette boîte de dialogue.


#5 Logic

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 2733 messages

Posté 19 November 2008 - 17:23 PM

On sort complètement du Flash là... je veux dire dans toute la philosophie du Flash au niveau de la sécurité et tout ça. Vaudrait mieux à mon avis faire télécharger une application Air.

#6 Ffred

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3671 messages

Posté 19 November 2008 - 18:14 PM

J'ai réfléchi, et je ne vois pas en quoi...
Les so sont placés dans un répertoire safe. On reste dans un contexte sandboxé. Et pour finir, si l'application est un site internet, AIR ne peut pas être une solution.

#7 Logic

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 2733 messages

Posté 19 November 2008 - 18:19 PM

Je dis ça je dis rien... je vous regarde faire attentivement icon_wink.gif

#8 patrick mantout

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 345 messages

Posté 20 November 2008 - 00:37 AM

Je vous remercie pour vos réponses, franchement je ne sais comment faire.
J'ai une centaine de fichier Flash de 3 Mégas chacun.
On suppose que par session, un utilisateur va regarder 30 fichiers soit 30x3 = 90 Mégas

Chaque fichier à (plus ou moins) des éléments en commun, (sons graphisme, …).
Si j'ai une bibliothèque de 40 Mo sur la machine du client, chaque lecture de fichier va se ramener à 1 Mégas.
Donc pour 30 fichiers lus, je gagen un coefficient de 1 pour 3.
Sachant que de très nombreuses personnes vont voir ce site, le gain en bande passante donc en coût va être très important.
De plus les utilisateurs vont être amenés à revenir sur le site.

Maintenant la solution de mettre un fichier de 40 Mo à partir du navigateur Flash sur le disque dur ne me parait pas très simple.
La taille du cache est limité par défaut à 100 K, il faut faire appel aux options de sécurité de Flash, bref pas simple.
Est ce, vraiment, réalisable de copier un fichier de 40 Mo pour après le recopier sur le disque ????

Maintenant, passer sous Air semble être une bonne solution, mais je perd l'accès au navigateur.
Dans ce cas, je dirai, je fais une application de 200 Mo, on télécharge tout une fois pour toute et on en parle plus.
Dans un sens, c'est tentant.

J'ai regardé le site www.dofius.com
c'est un peu ce qu'il font, on télécharge un GROS zip que l'on décompresse sur le disque dur et après on n'accède au site que pour les données de positionnement ou les positions des autres joueurs.

Air est t'il mature ???
Je n'ai pas l'impression qu'il soit tellement utilisé ???
JE dis, peut-être uune grosse bêtise ??

bref je vois pas icon_cry.gif





#9 Ffred

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3671 messages

Posté 20 November 2008 - 09:52 AM

Hmmm smile.gif
Dofus (pas Dofius ^^) fonctionne plus ou moins comme ça, mais bon...

Air n'est pas mâture. Il propose ceci dit plus de fonctionnalités qu'un player en plugin ou stand-alone, mais bon... Qui plus est, il faut déployer le runtime chez les utilisateurs, etc...

Devant la même situation, je me pose deux solutions:
- Tant qu'à écrire un programme local, j'en fais un portable en C, qui communique avec le client pour pouvoir enregistrer les données sur le disque dur (en envoyant paître la sandbox de flash icon_biggrin.gif )
- J'utilise des shared objects, qui sont fiables, même s'ils demandent à l'utilisateur de dire "ok" au téléchargement. Enfin... L'utilisateur l'a déjà dit une fois en cliquant sur le jeu, une deuxième fois ne devrait pas être si gênant. (Flash fait la demande une seule fois si je ne dis pas de conneries).

Par ailleurs, un fichier swf de 40Mo... hmm... ounch? smile.gif

#10 frederic.dufau

  • Members
  • PipPipPipPipPipPipPipPip
  • 684 messages

Posté 20 November 2008 - 10:02 AM

Hello,

Pour l'avoir déja fait sur un projet, Air te permet sans probleme de copier des fichiers sur la machine client à l'endroit ou tu veux. (moi je copier un exe ou un app en fonction de l'os).

Ca marche nickel sous mac et windows.

Pour ce qui est du runtime, il est tout à fait possible de faire un installer (NSIS) par exemple qui installe le runtime puis démarre ton fichier Air.

Par contre je n'ai pas d'iinfo sur le coté légale de la manip.

Et dans tous les cas, avec Air tu peux faire un badge d'installation via le web, qui installera le runtime et ton appli.

a+

#11 nicoptere

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3946 messages

Posté 20 November 2008 - 10:06 AM

salut,

je ne vois pas trop non plus ... le SharedObject ça me paraît bancal.
théoriquement on peut aller au delà de 100 Ko en spécifiant une taille via la méthode flush()

Action Script

so.flush( 1024 * xKo );
j'ai des doutes quant à la mise en oeuvre ; il faudrait stocker du bytecode (le So ne stocke que du texte :/) et le reconstituer à a volée et de toutes façons si l'utilisateur fait le ménage dans son navigateur, il faudra tout refaire.

et si tu responsabilisais ton visiteur ? (je sais, c'est pas gagné mais bon...)
tu lui proposes d'enregistrer un fichier en loacl, où il veut, en lui disant combien ce sera plus simple, puis au lancement de chaque appli tu demandes s'il a téléchargé la bibliothèque et s'il veut s'en servir. auquel cas tu la charges depuis le disque dur.
la bibliothèque peut vérifier s'il existe une version plus récente d'elle même.
NB: c'est casse gueule aussi avec les restrictions d'accès à internet.

AIR, je ne m'avance pas trop car je connais mal. en tous cas ça marche et il peut manipuler et stocker des fichiers plus importants.
il peut aussi lancer une requête pour voir s'il faut recharger tout ou partie de la bibliothèque.
+ niveau performances, on a plus de marge de manoeuvre.

EDIT :
fred > 40 MO : ouch ! << je plussoie ^^
fidman > NSIS est opensource légalement c'est ok de créer un instaleeur pour un exécutable (le cas d'un player stand alone).

#12 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 20 November 2008 - 12:20 PM

Stocker des objets AS dans le SharedObject n'est pas un problème et reste simple et rapide à implémenter, mais s'il y a du graphisme c'est plus chaud. ^^

#13 patrick mantout

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 345 messages

Posté 25 November 2008 - 00:42 AM

Je vais poser une question "idiote" mais je voudrais avoir la confirmation.

Je me suis aperçu que sous Internet Explorer, lorsque l'on regarde un fichier Flash, ce dernier est copié dans le dossier internet Temporaire
C:\Documents and Settings\pmantout\Local Settings\Temporary Internet Files

Après tout, pourquoi ne pas se contenter de cette solution, qui ne nécessite aucun développement et qui inscrit bien les données sur le disque dur ?




#14 nicoptere

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3946 messages

Posté 25 November 2008 - 00:54 AM

salut,

dada > oui pour tout ce qui est configuration, objets, scores le SO c'est nickel.
là il faudrait stocker 40Mo de médias.
sous forme de bytecode ?

patrick > parce que des gens (dont je fais partie) désactivent le cache d'une part et d'autre part parce qu'ils peuvent en limiter la taille. s'il la limite à 10Mo par exemple, quelqu'un ne pourra pas charger ta bibliothèque en entier.
le cache peut aussi être effacé donc il n'y a aucune garantie que les infos persistent d'un jour jour sur l'autre.

#15 patrick mantout

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 345 messages

Posté 25 November 2008 - 01:19 AM

Citation (nicoptere @ Nov 25 2008, 12:54 AM) Voir le message
patrick > parce que des gens (dont je fais partie) désactivent le cache d'une part et d'autre part parce qu'ils peuvent en limiter la taille. s'il la limite à 10Mo par exemple, quelqu'un ne pourra pas charger ta bibliothèque en entier.
le cache peut aussi être effacé donc il n'y a aucune garantie que les infos persistent d'un jour jour sur l'autre.


Merci pour cette réponse.
Que ce passe t'il quand le cache est plein, ça se vide en fonction de l'ancienneté, … ??



#16 frederic.dufau

  • Members
  • PipPipPipPipPipPipPipPip
  • 684 messages

Posté 25 November 2008 - 09:00 AM

Air le fait trés bien et c'est trés facile. Au pire tu fais un installer NSIS c'est aussi trés facile..



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP