[résolu] : Comment detecter un temps de latence et lancer une
#1
Posté 21 décembre 2005 - 05:04
Voilà, je développe une application sur Director et je suis bloqué sur un truc qui doit être tout bête, j'explique.
C'est un programme qui doit tourner sur une borne interactive, or comme la plupart des gens qui utilisent dce type de bornes ne vont pas jusqu'à "gentiment" cliquer sur un éventuel bouton de réinitialisation du programme, j'ai donc besoin d'utiliser une fonction pour que le programme le fasse à leur place. En gros j'ai besoin que le programme détecte qu'il n'y a eu aucune "activité" du clavier ou dela souris et qu'au bout d'un temps à définir relance mon programme de base..ah, oui...c'est parce que j'utilise un launcher qui me sers de programme "parent" et deux programmes "enfants".
J'ai cherché à utiliser la fonction time Out mais apparement je me suis planté dans mes scripts...ça donne rien.
Si quelqu'un pouvait me filer un coup de main, ce serait HYPER SYMPA...c'est pour la fin de la semaine.
Merci, ...(plouf !!! une bouteille à la mer...)
#3
Posté 21 décembre 2005 - 07:52
#4
Posté 22 décembre 2005 - 11:16
on start movie
cursor 200,
preload member 0,519
the timeoutlength = 5*60
the timeoutScript = "Finlatence"
the timeoutkeydown = TRUE
the timeoutmouse = TRUE
end startmovie
on Finlatence
open "launcher.exe"
quit
end
Mais rien ne se passe...
1- Pourtant le script devrait bien tourner en fond puisqu'il est dans mon StartMovie.
2- j'ai bien redéfini le time out length à 5 secondes
3 - les options de détection de non activité clavier et souris sont activées.
Peut-être est-ce dans la définition de l'événement à lancer en cas de non activité.
Je reprécise que mon but est qu'en permanence durant le programme une routine détecte une non activité d'une durée variable que je pourrai définir, et qu'en cas de non activité un événement se produise, en l'occurence la fermeture de mon programme "enfant" et l'ouverture de mon programme "parent".
Merci pour votre aide..
#5
Posté 22 décembre 2005 - 11:56
J'aborderais plutôt le problème avec :
un timeout lancé à l'initialisation de l'appli et qui toutes les [5 minutes] va [réinitialiser] SAUF SI une variable d'activité ets positionnnée à vrai. Si la variable est vrai le timeout va la mettre à faux.
Et dans chaque action tu va positionner cette variable à vrai.
Ainsi ton programme, au bout de [<5minutes] d'inactivité va passer sa variable à faux et dans [5 minutes] il va se [réinitialiser]
EDIT : evidemment si tu as des films ou autres séquences supérieure à [5 minutes] il te faut une variable [activité non humaine en cours]...
#6
Posté 22 décembre 2005 - 12:44
preload member 0,519
strange !!!
dans ce cas, essaie de véfifier cette variable 1/0 condittion dans un exitframe
normalement le timer devrait fonctionner
#7
Posté 22 décembre 2005 - 01:43
Leedoriden...ta réponse m'interpelle, j'utilise le preload de cette manière depuis longtemps et il ne m'a jamais dit "OOPS"...hihihi...et j'ai la quasi certitude qu'il préload bien mes acteurs.
Quant à mon script...je n'entrevois toujours pas la solution idéale...je continue à chercher....n'hésitezpas à renvoyer un post si vous pouvez encore m'aider à me mettre sur la voie
#8
Posté 22 décembre 2005 - 02:04
Où l'on reparle de la nécessité de la POO en lingo. Cela dit je crois avoir un truc sur le net à propos de la regénération des événements "standard" pour les appliquer à W3D, peut être cette technique pourrait s'appliquer dans ton cas
Attention : code fictif, voir avec les ténors du lingo si ca existe
on genericEvent theEvent, theParams
activiteEnCours = true
do theEvent&"("theParams&")"
end
#9
Posté 22 décembre 2005 - 02:41
#10
Posté 22 décembre 2005 - 03:19
<span class="kw2">preload <span class="kw2">member <span class="nu0">0,<span class="nu0">519
effectivement je croyais que sous DIR 8.5
preloadMember 1, 500
chargeait les acteurs 1 à 500
et
preload 1,500
chargeait les acteurs des frames 1 à 500
#11
Posté 22 décembre 2005 - 03:31
#12
Posté 22 décembre 2005 - 03:41
mais ne serait il pas plus simple d’avoir un projecteur "animdepart" qui te lance une animation
par un _movie.go("anim01") ou _movie.go("anim02")
et en cas de non événement dans ces anim un _movie.go("animdepart")
#13
Posté 22 décembre 2005 - 04:36
c'est un programme interactif pour une borne destinée aux handicapés.
L'application est divisée en trois parties, la première est un générique de présentation, la deuxième est l'application qui fait suite à destination des personnes valides, la troisième partie est la même application que pour les valides mais à destination des personnes invalides. Le programme est donc divisé en trois fichiers .exe, le premier est le générique. A la fin du générique il y a un écran de choix...en fonction du choix...valide ou invalide...c'est une autre projection qui est lancée qui contient l'application....bon....le seul truc c'est que tout le monde ne va pas prendre le temps de quitter l'application en cours....j'ai donc besoin d'insérer une routine dans chaque application (hormis le générique donc) qui fasse en sorte qu'au bout de trois minutes (par exemple) d'inactivité, ni clavier, ni souris, qui fasse en sorte donc de fermer l'applicaion en cours et de relancer mon projecteur générique pour que le prochain utilisateur potentiel puisse à nouveau se retrouver avec le choix des applications valide ou invalide...j'essaye donc de créer dans mon script Start movie de mes applications une routine permanente qui déclenche la fermeture du programme en cours et le lancement de mon générique au bout de trois minutes d'inactivité clavier ou souris , quelque soit l'endroit où le programme est arrêté,...ouf ! Voilà....lol
#14
Posté 22 décembre 2005 - 05:06
tes trois applications sont elles des projections director ?
#15
Posté 22 décembre 2005 - 05:26
#16
Posté 22 décembre 2005 - 05:34
un seul suffit
disons "monappli.exe"
avec un script d’animation
on startMovie
_movie.go("generique")
end
un fichierdir ou dxr "generique"
et deux fichier .dir ou .dxr "PartOne" et" PartTwo"
dans le fichier "generique"
en fonction du choix
sur le choix 1
on mouseUp me
_movie.go("PartOne")
end
sur le choix 2
on mouseUp me
_movie.go("PartTwo")
end
dans ces deux fichier un script qui après une periode donnée d’innactivité
exécute le script
on VousEtesDesFeignantsOnSeBarre
_movie.go("generique")
end
de cette façon tu ne recharges pas à chaque fois le runtime
#17
Posté 22 décembre 2005 - 06:27
#18
Posté 22 décembre 2005 - 07:46
cela vient peut être de demander à lancer un …exe qui n’a pas été quitter
j’avoue mon ignorance du monde PC
#19
Posté 23 décembre 2005 - 07:56
#20
Posté 23 décembre 2005 - 11:16
#21
Posté 23 décembre 2005 - 12:30
en fait pour preload member 0,159 j'ai tendance à oublier les anciennes versions que pour Moi qui utilise MX2004 la syntaxe est
preloadmember()
-- Utilisation
-- Syntaxe Lingo
_movie.preloadmember({réfObjActeur})
_movie.preloadmember(nomOuNumDacteurInitial, nomOuNumDacteurFinal)
d'ou mon oops
#22
Posté 05 mai 2010 - 12:59
Je me permet de relancer ce sujet car le lien proposé à l'époque ne fonctionne plus, et je ne trouve pas de sujet similaire dans le forum.
Y-a-t-il quelqu'un qui peut m'aider?
Mon problème étant donc le même: quand il n'y a plus d'activité, l'anim revient à un certain endroit.
Un grand merci,
Elyse
1 utilisateur(s) li(sen)t ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)









