Dans l'affichage d'une liste par exemple, l'action de la touche flechée
bas a pour effet de descendre d'une ligne.
Si je laisse cette touche enfoncée, il ne se passe rien. Normal,
l'action se déclenche au relachement de la touche.
Néanmoins, suivant le fonctionnement général d'un système
d'exploitation, une touche qui reste enfoncée agit en rafale après un
court laps de temps.
Afin de faire proprement, j'aimerais vos avis sur la façon de réaliser
ce comportement (ou si ça existe déjà tout fait) afin de l'applique dans
de nombreuses situations.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ned
Salut,
perso je testerai le keypressed(code_de_la_touche) sur exitframe. Il faudra certainement le traiter après un petit délai pour éviter que ça fuse trop vite. genre :
propert pTim
on keyDown me if keyPressed(code_de_la_touche) thne pTim = the timer + 30 end if end
on exitframe me if keyPressed(code_de_la_touche) and pTim < the timer then -- just do it ;o) end if end
hth -- ----- Ned ------------------------------------ Bien faire et laisser braire ... mais après avoir lu & compris ceci : http://faqmm.free.fr ------------------------------------
Salut,
perso je testerai le keypressed(code_de_la_touche) sur exitframe.
Il faudra certainement le traiter après un petit délai pour éviter que
ça fuse trop vite. genre :
propert pTim
on keyDown me
if keyPressed(code_de_la_touche) thne
pTim = the timer + 30
end if
end
on exitframe me
if keyPressed(code_de_la_touche) and pTim < the timer then
-- just do it ;o)
end if
end
hth
--
-----
Ned
------------------------------------
Bien faire et laisser braire ...
mais après avoir lu & compris ceci :
http://faqmm.free.fr
------------------------------------
perso je testerai le keypressed(code_de_la_touche) sur exitframe. Il faudra certainement le traiter après un petit délai pour éviter que ça fuse trop vite. genre :
propert pTim
on keyDown me if keyPressed(code_de_la_touche) thne pTim = the timer + 30 end if end
on exitframe me if keyPressed(code_de_la_touche) and pTim < the timer then -- just do it ;o) end if end
hth -- ----- Ned ------------------------------------ Bien faire et laisser braire ... mais après avoir lu & compris ceci : http://faqmm.free.fr ------------------------------------
Wolfy
Slt, moi j'avais fait un petit jeu où l'on pouvait soit bouger unn sprite avec les touches, soit en cliquant sur des images signalant les déplacements. ça donnait un script bien trop long à mettre ici, mais juste l'essentiel pour les touches du clavier :
---Dans un script d'animation - preparemovie ----------------------------- -- Déplacements de mon image : ----------------------------- on gBougeMonImage
-- Déplacement à Gauche if the keycode = 123 and sprite(4).locH > 120 then sprite(MonImage).locH = sprite(MonImage).locH - 15 end if
-- Déplacement à Droite if the keycode = 124 and sprite(4).locH < 850 then sprite(MonImage).locH = sprite(MonImage).locH + 15 end if
end gBougeMonImage -----------------------------
ensuite, dans un script d'animation placé sur la piste de script, juste ça suffit:
----------- on keyDown me gBougeMonImage end ----------
Donc dans tout ça, rien ne se place dans un enterframe ou exiteframe. Mais avec la gestion de la souris, ne pas oublier d'insérer un updatestage, sinon, l'image ne bouge qu'une fois si on reste appuyé sur le clic de la souris. Alors que là, ça bouge jusqu'à relachement. Avec ça, logiquement, mon script marche exactement de la même facon qu'une touche pressé avec le mode répétition.
j'espère que ça t'a aidé un peu. Bon courage.
Wolfy
"KRS" a écrit dans le message de news: dtf97j$qqh$
Dans l'affichage d'une liste par exemple, l'action de la touche flechée bas a pour effet de descendre d'une ligne. Si je laisse cette touche enfoncée, il ne se passe rien. Normal, l'action se déclenche au relachement de la touche. Néanmoins, suivant le fonctionnement général d'un système d'exploitation, une touche qui reste enfoncée agit en rafale après un court laps de temps.
Afin de faire proprement, j'aimerais vos avis sur la façon de réaliser ce comportement (ou si ça existe déjà tout fait) afin de l'applique dans de nombreuses situations.
Merci d'avance
Slt,
moi j'avais fait un petit jeu où l'on pouvait soit bouger unn sprite avec
les touches, soit en cliquant sur des images signalant les déplacements.
ça donnait un script bien trop long à mettre ici, mais juste l'essentiel
pour les touches du clavier :
---Dans un script d'animation - preparemovie
-----------------------------
-- Déplacements de mon image :
-----------------------------
on gBougeMonImage
-- Déplacement à Gauche
if the keycode = 123 and sprite(4).locH > 120 then
sprite(MonImage).locH = sprite(MonImage).locH - 15
end if
-- Déplacement à Droite
if the keycode = 124 and sprite(4).locH < 850 then
sprite(MonImage).locH = sprite(MonImage).locH + 15
end if
end gBougeMonImage
-----------------------------
ensuite, dans un script d'animation placé sur la piste de script, juste ça
suffit:
-----------
on keyDown me
gBougeMonImage
end
----------
Donc dans tout ça, rien ne se place dans un enterframe ou exiteframe. Mais
avec la gestion de la souris, ne pas oublier d'insérer un updatestage,
sinon, l'image ne bouge qu'une fois si on reste appuyé sur le clic de la
souris. Alors que là, ça bouge jusqu'à relachement.
Avec ça, logiquement, mon script marche exactement de la même facon qu'une
touche pressé avec le mode répétition.
j'espère que ça t'a aidé un peu. Bon courage.
Wolfy
"KRS" <fogia@flashmail.com> a écrit dans le message de news:
dtf97j$qqh$1@forums.macromedia.com...
Dans l'affichage d'une liste par exemple, l'action de la touche flechée
bas a pour effet de descendre d'une ligne.
Si je laisse cette touche enfoncée, il ne se passe rien. Normal, l'action
se déclenche au relachement de la touche.
Néanmoins, suivant le fonctionnement général d'un système d'exploitation,
une touche qui reste enfoncée agit en rafale après un court laps de temps.
Afin de faire proprement, j'aimerais vos avis sur la façon de réaliser ce
comportement (ou si ça existe déjà tout fait) afin de l'applique dans de
nombreuses situations.
Slt, moi j'avais fait un petit jeu où l'on pouvait soit bouger unn sprite avec les touches, soit en cliquant sur des images signalant les déplacements. ça donnait un script bien trop long à mettre ici, mais juste l'essentiel pour les touches du clavier :
---Dans un script d'animation - preparemovie ----------------------------- -- Déplacements de mon image : ----------------------------- on gBougeMonImage
-- Déplacement à Gauche if the keycode = 123 and sprite(4).locH > 120 then sprite(MonImage).locH = sprite(MonImage).locH - 15 end if
-- Déplacement à Droite if the keycode = 124 and sprite(4).locH < 850 then sprite(MonImage).locH = sprite(MonImage).locH + 15 end if
end gBougeMonImage -----------------------------
ensuite, dans un script d'animation placé sur la piste de script, juste ça suffit:
----------- on keyDown me gBougeMonImage end ----------
Donc dans tout ça, rien ne se place dans un enterframe ou exiteframe. Mais avec la gestion de la souris, ne pas oublier d'insérer un updatestage, sinon, l'image ne bouge qu'une fois si on reste appuyé sur le clic de la souris. Alors que là, ça bouge jusqu'à relachement. Avec ça, logiquement, mon script marche exactement de la même facon qu'une touche pressé avec le mode répétition.
j'espère que ça t'a aidé un peu. Bon courage.
Wolfy
"KRS" a écrit dans le message de news: dtf97j$qqh$
Dans l'affichage d'une liste par exemple, l'action de la touche flechée bas a pour effet de descendre d'une ligne. Si je laisse cette touche enfoncée, il ne se passe rien. Normal, l'action se déclenche au relachement de la touche. Néanmoins, suivant le fonctionnement général d'un système d'exploitation, une touche qui reste enfoncée agit en rafale après un court laps de temps.
Afin de faire proprement, j'aimerais vos avis sur la façon de réaliser ce comportement (ou si ça existe déjà tout fait) afin de l'applique dans de nombreuses situations.
Merci d'avance
Ned
sans vouloir "batailler" :o) je ne vois pas dans ton code ce qui gère la répétition de touches (quand on la maintient appuyée), ce qui est apparemment ce que cherche KRS, non ?
ou alors il est temps que j'aille au pieu ;o))
-- ----- Ned ------------------------------------ Bien faire et laisser braire ... mais après avoir lu & compris ceci : http://faqmm.free.fr ------------------------------------
sans vouloir "batailler" :o)
je ne vois pas dans ton code ce qui gère la répétition de touches (quand
on la maintient appuyée), ce qui est apparemment ce que cherche KRS, non ?
ou alors il est temps que j'aille au pieu ;o))
--
-----
Ned
------------------------------------
Bien faire et laisser braire ...
mais après avoir lu & compris ceci :
http://faqmm.free.fr
------------------------------------
sans vouloir "batailler" :o) je ne vois pas dans ton code ce qui gère la répétition de touches (quand on la maintient appuyée), ce qui est apparemment ce que cherche KRS, non ?
ou alors il est temps que j'aille au pieu ;o))
-- ----- Ned ------------------------------------ Bien faire et laisser braire ... mais après avoir lu & compris ceci : http://faqmm.free.fr ------------------------------------
Wolfy
Moi j'avais compris que le fonctionnement de la touche ne fonctionnait qu'une seule fois, car je suppose que la prog a été faite depuis un mouseup ou mousedown. Ce qui a pour effet de ne pas creer de répétition. Je ne crois pas que c'etait au niveau de la gestion des timings du mode répétition qui devait être géré, mais c'est toujours bien de pouvoir agir dessus ;o) On verra d'après la réponse de KRS :)
Wolfy
"Ned" a écrit dans le message de news: dtg9o4$e60$
sans vouloir "batailler" :o) je ne vois pas dans ton code ce qui gère la répétition de touches (quand on la maintient appuyée), ce qui est apparemment ce que cherche KRS, non ?
ou alors il est temps que j'aille au pieu ;o))
-- ----- Ned ------------------------------------ Bien faire et laisser braire ... mais après avoir lu & compris ceci : http://faqmm.free.fr ------------------------------------
Moi j'avais compris que le fonctionnement de la touche ne fonctionnait
qu'une seule fois, car je suppose que la prog a été faite depuis un mouseup
ou mousedown. Ce qui a pour effet de ne pas creer de répétition.
Je ne crois pas que c'etait au niveau de la gestion des timings du mode
répétition qui devait être géré, mais c'est toujours bien de pouvoir agir
dessus ;o)
On verra d'après la réponse de KRS :)
Wolfy
"Ned" <nednet_hates_spam@wanadoo.fr> a écrit dans le message de news:
dtg9o4$e60$1@forums.macromedia.com...
sans vouloir "batailler" :o)
je ne vois pas dans ton code ce qui gère la répétition de touches (quand
on la maintient appuyée), ce qui est apparemment ce que cherche KRS, non ?
ou alors il est temps que j'aille au pieu ;o))
--
-----
Ned
------------------------------------
Bien faire et laisser braire ...
mais après avoir lu & compris ceci :
http://faqmm.free.fr
------------------------------------
Moi j'avais compris que le fonctionnement de la touche ne fonctionnait qu'une seule fois, car je suppose que la prog a été faite depuis un mouseup ou mousedown. Ce qui a pour effet de ne pas creer de répétition. Je ne crois pas que c'etait au niveau de la gestion des timings du mode répétition qui devait être géré, mais c'est toujours bien de pouvoir agir dessus ;o) On verra d'après la réponse de KRS :)
Wolfy
"Ned" a écrit dans le message de news: dtg9o4$e60$
sans vouloir "batailler" :o) je ne vois pas dans ton code ce qui gère la répétition de touches (quand on la maintient appuyée), ce qui est apparemment ce que cherche KRS, non ?
ou alors il est temps que j'aille au pieu ;o))
-- ----- Ned ------------------------------------ Bien faire et laisser braire ... mais après avoir lu & compris ceci : http://faqmm.free.fr ------------------------------------
KRS
Merci Ned, ça me semble très bien comme méthode. Hélas je ne trouve pas de doc concernant la fonction The Timer, est ce que ça n'existe plus dans Director 9? à la place j'ai trouvé une fonction timeout qui exécute un gestionnaire après un délai donné. Ta méthode avec The timer me parait plus logique, je vais faire qq recherches la dessus...
Ned wrote:
Salut,
perso je testerai le keypressed(code_de_la_touche) sur exitframe. Il faudra certainement le traiter après un petit délai pour éviter que ça fuse trop vite. genre :
propert pTim
on keyDown me if keyPressed(code_de_la_touche) thne pTim = the timer + 30 end if end
on exitframe me if keyPressed(code_de_la_touche) and pTim < the timer then -- just do it ;o) end if end
hth
Merci Ned, ça me semble très bien comme méthode.
Hélas je ne trouve pas de doc concernant la fonction The Timer, est ce
que ça n'existe plus dans Director 9?
à la place j'ai trouvé une fonction timeout qui exécute un gestionnaire
après un délai donné.
Ta méthode avec The timer me parait plus logique, je vais faire qq
recherches la dessus...
Ned wrote:
Salut,
perso je testerai le keypressed(code_de_la_touche) sur exitframe.
Il faudra certainement le traiter après un petit délai pour éviter que
ça fuse trop vite. genre :
propert pTim
on keyDown me
if keyPressed(code_de_la_touche) thne
pTim = the timer + 30
end if
end
on exitframe me
if keyPressed(code_de_la_touche) and pTim < the timer then
-- just do it ;o)
end if
end
Merci Ned, ça me semble très bien comme méthode. Hélas je ne trouve pas de doc concernant la fonction The Timer, est ce que ça n'existe plus dans Director 9? à la place j'ai trouvé une fonction timeout qui exécute un gestionnaire après un délai donné. Ta méthode avec The timer me parait plus logique, je vais faire qq recherches la dessus...
Ned wrote:
Salut,
perso je testerai le keypressed(code_de_la_touche) sur exitframe. Il faudra certainement le traiter après un petit délai pour éviter que ça fuse trop vite. genre :
propert pTim
on keyDown me if keyPressed(code_de_la_touche) thne pTim = the timer + 30 end if end
on exitframe me if keyPressed(code_de_la_touche) and pTim < the timer then -- just do it ;o) end if end
hth
KRS
Bon, the timer fonctionne très bien, ce n'est juste absolument pas documenté...
Bon, the timer fonctionne très bien, ce n'est juste absolument pas
documenté...
Bon, the timer fonctionne très bien, ce n'est juste absolument pas documenté...
Ned
en effet, je viens de le constater.... 'sont lourds avec leur docs moitié faites. Peut-être préfèrent-ils qu'on utilise _system.milliseconds désormais ? -- ----- Ned ------------------------------------ Bien faire et laisser braire ... mais après avoir lu & compris ceci : http://faqmm.free.fr ------------------------------------
en effet, je viens de le constater....
'sont lourds avec leur docs moitié faites.
Peut-être préfèrent-ils qu'on utilise _system.milliseconds désormais ?
--
-----
Ned
------------------------------------
Bien faire et laisser braire ...
mais après avoir lu & compris ceci :
http://faqmm.free.fr
------------------------------------
en effet, je viens de le constater.... 'sont lourds avec leur docs moitié faites. Peut-être préfèrent-ils qu'on utilise _system.milliseconds désormais ? -- ----- Ned ------------------------------------ Bien faire et laisser braire ... mais après avoir lu & compris ceci : http://faqmm.free.fr ------------------------------------
Bubarnet
Ned wrote:
en effet, je viens de le constater.... 'sont lourds avec leur docs moitié faites. Peut-être préfèrent-ils qu'on utilise _system.milliseconds désormais ?
Je pense. The timer utilise les anciens tics. De plus ils essayent de virer tous les restes de la syntaxe verbose. Il doit donc surement exister un _player.quelquechose (ou _system ou ...)
Pour ma part, je n'utilise plus que milliseconds. C'est plus réactif et les ordos actuels sont suffisament puissant pour ça
-- Bubar Freelance Multimédia - internet Création de logiciels multimédia et sites web http://www.wapitistudio.com
Ned wrote:
en effet, je viens de le constater....
'sont lourds avec leur docs moitié faites.
Peut-être préfèrent-ils qu'on utilise _system.milliseconds désormais ?
Je pense. The timer utilise les anciens tics.
De plus ils essayent de virer tous les restes de la syntaxe verbose. Il doit
donc surement exister un _player.quelquechose (ou _system ou ...)
Pour ma part, je n'utilise plus que milliseconds. C'est plus réactif et les
ordos actuels sont suffisament puissant pour ça
--
Bubar
Freelance Multimédia - internet
Création de logiciels multimédia et sites web
http://www.wapitistudio.com
en effet, je viens de le constater.... 'sont lourds avec leur docs moitié faites. Peut-être préfèrent-ils qu'on utilise _system.milliseconds désormais ?
Je pense. The timer utilise les anciens tics. De plus ils essayent de virer tous les restes de la syntaxe verbose. Il doit donc surement exister un _player.quelquechose (ou _system ou ...)
Pour ma part, je n'utilise plus que milliseconds. C'est plus réactif et les ordos actuels sont suffisament puissant pour ça
-- Bubar Freelance Multimédia - internet Création de logiciels multimédia et sites web http://www.wapitistudio.com