Chargement anim flash d'une page à l'autre

cs_jumpin Messages postés 13 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 6 juin 2006 - 2 juin 2006 à 13:35
cs_jumpin Messages postés 13 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 6 juin 2006 - 6 juin 2006 à 11:41
bonjour!
je m'excuse tout d'abord en espérant que ma question n'est pas trop stupide, mais je ne suis pas pro en actionscript.
je vais essayer d'être le plus clair possible dans mon explication de mon problème.

disons que j'ai 3 pages d'un site internet et que sur ces 3 pages, j'ai la même animation flash.
à chaque fois que je clique sur un lien pour aller à la page 2 par exemple, l'animation flash logiquement se recharge.
là est ma question: comment faire pour que l'animation se recharge mais reste au même point dans la timeline où elle était sur la page précédente. j'aurai besoin que l'anim ne recommence pas à chaque fois au début, lorsque je change de page (sans devoir faire 3 anim flash différentes pr chaque page). y-a-t-il un moyen en actionscript ou autre pour que le navigateur garde en mémoire où se trouve l'animation dans sa timeline?

j'espère que j'ai été assez claire...
merci

3 réponses

_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
3 juin 2006 à 17:07
Salut

Ca va pas etre facile, et si t un newbe en AS2, ma solution va te faire mal :
L'idée c'est d'uiliser la Class SharedObject (sorte de cookie Flash) pour gardé en mémoire là ou tu en est dans le timeline.
Donc soit a chaque frame tu enregistre le numéroe de frame courante (ce qui risque d'etre un peu violant pour les p'tites machine mais pourquoi pas)
Soit (et là c un mélange Flash et Javascript), lors du onUnload de la page, il faudrais appelé une fonction dans le swf qui enregistre la frame courante.
Pour la solution 1, il te faut voir : SharedObject et onEnterFrame.
pour la solution 2, look SharedObject, ExternalInterface (surtout la registration de callback pour JS) et onUnload en JS.
Dans les 2 cas, lorsque tu passe a la page suivante, il te suffira au début du Flash de vérifier s'il y a un numéro de frame stocké dans ton cookie et d'y ammené le curseur (tete de lecture, gotoAndPlay).
Voilou
bon courage



Flash sans Limites


_Benjy
  chez kOlapsis




Composants Flash8 : http://composants.kolapsis.net
- kSql pour se connecter à mysql et executer des requètes depuis Flash
- kImage : gestionnaire d'image avec diaporama, redimentionnement automatique des image et zoom
- kTextInput : champ TextInput évolué avec de multiples controles de saisie intégrés
- kColorPicker : un simple petit selecteur de couleur


merci de penser a accepter les réponse qui vous aident...

 
0
cs_jumpin Messages postés 13 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 6 juin 2006
5 juin 2006 à 09:47
merci bien pour la réponse _Benjy!
en effet ça va être dur dur, mais j'vais m'y atteler :-)
0
cs_jumpin Messages postés 13 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 11:41
bon ben comme je le pensais... et comme tu m'avais averti _Benjy, c'est pas facile facile pour qqn qui n'est pas pro en AS2.

alors voilà où j'en suis.

mon animation a 5 btns. sur chaque btn, j'ai mis un code pour aller à une frame définie et lors du clic atteindre une nouvelle URL qui à ce moment ouvre une nouvelle page avec la même anim.

btn.onRollOver = function() {
    gotoAndStop (2);
};

btn.onRelease = function() {
    getUrl ("blabla.htm");
};

jusque là aucun prob... bon pas difficile.
pour la question que j'ai posée, j'ai essayé d'utiliser sharedObject comme tu me l'as recommandé.

sur un calque j'ai mis le code suivant:
var my_so = SharedObject.getLocal("kookie", "/");

if (my_so.data.user != undefined) {
    this.user = my_so.data.user;
    this.gotoAndStop(my_so.data.frame);
}

sur chaque frame de l'anim (5), j ai mis le code suivant pour enregistrer la frame:

function rememberframe() {
    my_so.data.frame=this._currentframe;
    my_so.data.user="Fed";
}

j'ai mis sur la première frame de l'anim, pour récupérer le cookie et aller à la bonne frame direct.

var my_so = SharedObject.getLocal("kookie","/");
this.gotoAndStop(my_so.data.frame);

bien évidemment ça ne fonctionne pas... :-( est-ce que tu pourrais m'aiguiller sur ce que je fais de faux?
merci infiniment
0
Rejoignez-nous