Dessiner un trait entre deux objets

neopium

Membre actif
9 Juin 2004
121
1
47
Bonjour tout le monde !

Je suis en train de créer une application en ajax et je bloque sur un point. En effet, je souhaite afficher deux boîtes (grâce à des <div>) et les relier par un trait. Là où ça se corse, c'est que mes deux boîtes sont "draggables" et que l'utilisateur peut les déplacer à l'envie. Je souhaiterais donc que le trait qui les lie suive aussi... J'ai pensé dessiner une table dont les bords sont invisibles et afficher les bords reliant mes deux boîtes, en me débrouillant pour que les fameuses boîtes soient allignées sur la grille et que leur hauteur/largeur soit deux fois plus grande q'une cellule... Si quelqu'un a une idée de comment faire ça, je suis preneur !
Merci !
 
Bonjour tout le monde !

Je suis en train de créer une application en ajax et je bloque sur un point. En effet, je souhaite afficher deux boîtes (grâce à des <div>) et les relier par un trait. Là où ça se corse, c'est que mes deux boîtes sont "draggables" et que l'utilisateur peut les déplacer à l'envie. Je souhaiterais donc que le trait qui les lie suive aussi... J'ai pensé dessiner une table dont les bords sont invisibles et afficher les bords reliant mes deux boîtes, en me débrouillant pour que les fameuses boîtes soient allignées sur la grille et que leur hauteur/largeur soit deux fois plus grande q'une cellule... Si quelqu'un a une idée de comment faire ça, je suis preneur !
Merci !

En fait, l'idéal serait de réussir à faire qqchose dans le genre... Mais qui soit compatible avec bien plus de navigateurs...
 
Euh... tu es sûr que tu veux le faire en ajax ou c'est juste pour le challenge ? :rolleyes:
C'est sûr c'est 'hype' l'ajax, mais là c'est pas très adapté.
 
Euh... tu es sûr que tu veux le faire en ajax ou c'est juste pour le challenge ? :rolleyes:
C'est sûr c'est 'hype' l'ajax, mais là c'est pas très adapté.

Si tu me propose quelque chose de plus efficace, pas de problème, je suis ouvert. Mais je veux avoir une compatibilité maximum et éviter le flash, donc ça restreint les possibilités... J'ai trouvé une solution, qui vaut ce qu'elle vaut : http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm
 
Tu veux une compatibilité maximum, mais ajax c'est du javascript, et il n'y a pas beaucoup plus de gens qui ont javascript activé que de gens qui ont flash installé...
Es-tu sûr qu'une solution Ajax soit réellement plus "compatible" que du flash ? Pas moi.
Par contre ce dont je suis sûr c'est que Ajax c'est pas fait pour faire ce que tu veux, alors que Flash oui.

Le lien que tu donnes en "solution" est compatible avec moins de navigateurs que le player Flash il me semble... :o Donc il faut garder un minimum de cohérence, tu te diriges tout droit vers une solution mal adaptée et compliquée à programmer, alors qu'il existe une solution simple et malgré ce que tu penses plus "compatible", si tant est que ça veuille réellement dire quelque chose.

Parfois j'ai l'impression que les gens croient qu'ajax c'est un mot magique... Du coup il est tellement servi à toutes les sauces qu'on en arrive à lire des aberrations de ce genre (en résumé) :
"Je veux faire une animation graphique interactive diffusée sur le web. Je refuse d'utiliser Flash alors qu'il est fait pour ça et que le player multiplateforme a un taux de pénetration de 97%. Donc je vais me tourner vers ajax, qui fait tellement geek et hype, histoire de trouver une solution bien compliquée et lourde mettant en jeu diverses API complexes dont je n'utiliserai qu'un centième des fonctionnalités. Au final j'aurai un truc qui pésera 40 Ko api comprises pour deux pauvres blocs animés, qui ne fonctionnera pas sur tous les navigateurs. En flash ça aurait fait un fichier de 10Ko cross-plateforme et cross-navigateur, tout joli, mais je veux pas utiliser flash."


Tu veux un conseil sur quelque chose de plus efficace ?
--> Va lire à quoi sert réellement Ajax, à quoi sert Flash, et comme dirait Énée, refais tes choix.
 
Tu veux une compatibilité maximum, mais ajax c'est du javascript, et il n'y a pas beaucoup plus de gens qui ont javascript activé que de gens qui ont flash installé...
Es-tu sûr qu'une solution Ajax soit réellement plus "compatible" que du flash ? Pas moi.
Par contre ce dont je suis sûr c'est que Ajax c'est pas fait pour faire ce que tu veux, alors que Flash oui.

Le lien que tu donnes en "solution" est compatible avec moins de navigateurs que le player Flash il me semble... :o Donc il faut garder un minimum de cohérence, tu te diriges tout droit vers une solution mal adaptée et compliquée à programmer, alors qu'il existe une solution simple et malgré ce que tu penses plus "compatible", si tant est que ça veuille réellement dire quelque chose.

Parfois j'ai l'impression que les gens croient qu'ajax c'est un mot magique... Du coup il est tellement servi à toutes les sauces qu'on en arrive à lire des aberrations de ce genre (en résumé) :
"Je veux faire une animation graphique interactive diffusée sur le web. Je refuse d'utiliser Flash alors qu'il est fait pour ça et que le player multiplateforme a un taux de pénetration de 97%. Donc je vais me tourner vers ajax, qui fait tellement geek et hype, histoire de trouver une solution bien compliquée et lourde mettant en jeu diverses API complexes dont je n'utiliserai qu'un centième des fonctionnalités. Au final j'aurai un truc qui pésera 40 Ko api comprises pour deux pauvres blocs animés, qui ne fonctionnera pas sur tous les navigateurs. En flash ça aurait fait un fichier de 10Ko cross-plateforme et cross-navigateur, tout joli, mais je veux pas utiliser flash."


Tu veux un conseil sur quelque chose de plus efficace ?
--> Va lire à quoi sert réellement Ajax, à quoi sert Flash, et comme dirait Énée, refais tes choix.

Merci pour ces conseils. Ils sont argumentés et pertinents, donc utiles. J'en tiendrai compte, même si je te trouve un chouilla tendu.
Je ne suis pas expert en développement web (ça se voit, n'est-ce pas ?). Je fais ça pendant mon temps libre, pour le plaisir. Je n'ai pas le recul nécessaire sur toutes ces technologies pour bien faire la part des choses, c'est d'ailleurs pour ça que je viens chercher des conseils auprès de personnes plus avisées. J'ai essayé Flash une fois, et j'étais moins à l'aise avec ce logiciel qu'avec de la programmation. Le résultat était lourd et à l'époque (c'était avec Flash4 me semble-t-il), la compatibilité pas très garantie. Alors, quand je vois Google Maps, je me dis qu'il est possible de faire des choses assez poussées sans passer par Flash. Mais je fais apparemment fausse route. Je viens de faire un tour sur le net, et il semble aussi possible de faire interagir Flash avec des bases de données, ce que je ne savais pas. Bref, j'apprends petit à petit, et c'est aussi grâce à tes conseils.
 
J'en tiendrai compte, même si je te trouve un chouilla tendu.
C'est vrai que le tact a jamais été mon point fort... j'en suis désolé :rateau:

J'ai essayé Flash une fois, et j'étais moins à l'aise avec ce logiciel qu'avec de la programmation. Le résultat était lourd et à l'époque (c'était avec Flash4 me semble-t-il), la compatibilité pas très garantie.
Pour ce que tu décris, il faut utiliser flash en mode programmation pure effectivement, je me vois pas faire ça en scénario (d'ailleurs je vois pas vraiment à quoi sert le scénario)

Alors, quand je vois Google Maps, je me dis qu'il est possible de faire des choses assez poussées sans passer par Flash. Mais je fais apparemment fausse route.
Tu as tout à fait raison, et tu ne fais pas fausse route. Mais dans ton cas précis il me semble réellement que Flash est mieux adapté. Chez google ils sont beaucoup pour faire ce qu'ils font ;)

Je viens de faire un tour sur le net, et il semble aussi possible de faire interagir Flash avec des bases de données, ce que je ne savais pas.
Oui tu as plein de solutions pour ça. Tu peux regarder du côté de AMFPHP qui est une solution opensource de remoting flash/php.
 
C'est vrai que le tact a jamais été mon point fort... j'en suis désolé :rateau:

Pour ce que tu décris, il faut utiliser flash en mode programmation pure effectivement, je me vois pas faire ça en scénario (d'ailleurs je vois pas vraiment à quoi sert le scénario)


Tu as tout à fait raison, et tu ne fais pas fausse route. Mais dans ton cas précis il me semble réellement que Flash est mieux adapté. Chez google ils sont beaucoup pour faire ce qu'ils font ;)


Oui tu as plein de solutions pour ça. Tu peux regarder du côté de AMFPHP qui est une solution opensource de remoting flash/php.

Bon, bah faut que je m'y mettes sérieusement alors... je vais commencer par ... ya du boulot !
 
Bon, bah faut que je m'y mettes sérieusement alors... je vais commencer par ... ya du boulot !

Au fait, tu disais que Flash avait un taux de pénétration de 97%... Tu trouves ce genre de chiffres où ? Je suppose que ça ne concerne pas la dernière version, mais des versions plus anciennes (juste histoire que je fasse gaffe à la compatibilité de mon appli en utilisant pas tous les trucs les plus hype de la dernière version...)
 
Au fait, tu disais que Flash avait un taux de pénétration de 97%... Tu trouves ce genre de chiffres où ? Je suppose que ça ne concerne pas la dernière version, mais des versions plus anciennes (juste histoire que je fasse gaffe à la compatibilité de mon appli en utilisant pas tous les trucs les plus hype de la dernière version...)

Ces chiffres, je les tire principalement des stats croisées de tous les sites que j'ai faits, et certains dépassent largement 1000 visites / jour. Ils concernent en effet Flash player 7 (on en est à la version 9 mais c'est vrai qu'elle est beaucoup moins installée chez les gens).

Dans ce que tu dis de flash, il me semble que tu préfères la programmation plutôt que la manipulation de l'IDE (et je te comprends...). Si tu veux opter pour une solution entièrement en code, tu peux utiliser mtasc, qui permet de faire du flash (swf) sans flash (le logiciel). Tu auras également besoin de Xash (sous mac), excellent support pour la consultation des diverses documentations (la recherche spotlight dans la doc c'est du bonheur).

Enfin, juste une piste, si ton but est simplement de tracer des blocs draggables avec des lignes entre eux, tu vas avoir besoin d'utiliser diverses commandes... en vrac, et j'en oublie :

createEmptyMovieClip, lineStyle, beginFill, lineTo, createTextField, startDrag, stopDrag, onPress, onRelease... etc

Hésite pas à demander ici si tu as des questions, maintenant que je t'ai balancé là-dedans j'assume ;) :p
 
...en utilisant pas tous les trucs les plus hype de la dernière version...

[hors sujet]
hihi :D ;) en plus c'est vrai que de flash 7 à 8, ils ont rajouté que du hype.
Marrant que tu relèves ce terme, parce qu'il explique vraiment pourquoi mon premier message était un peu 'tendu'... : je vois fleurir du ajax de partout, souvent juste pour le plaisir de dire qu'on a fait de l'ajax. Cet effet de mode me fatigue un peu, parce que Ajax n'est pas le messie non plus, et il est très souvent utilisé dans des cas où il ne sert strictement à rien.
Tu l'auras compris, j'aime Flash, et ça me désole de voir que les gens qui pronent l'accessibilité, la validité etc sont très souvent de grands détracteurs de Flash. Mais ce sont souvent aussi les mêmes qui encensent Ajax... Mais ajax n'est que du javascript, qui est de l'ecmascript, et flash c'est de l'actionscript, qui est aussi de l'ecmascript... En plus le flash empeche pas d'avoir du contenu alternatif à partir de données externalisées... bref mes poils se hérissent quand je vois du Ajax à tout va, certainement parce que l'effet de mode qu'il y a autour me parait tès surfait. Mais ce n'est que mon opinion, loin de moi l'idée de l'imposer à qui que ce soit ;)
[/hors sujet]
 
  • J’aime
Réactions: maousse
Hésite pas à demander ici si tu as des questions, maintenant que je t'ai balancé là-dedans j'assume ;) :p

C'est pas tombé dans l'oreille d'un sourd. J'ai mis un peu de temps à m'y mettre... Il a fallu apprendre beaucoup beaucoup de choses...

Bref, je commence à savoir faire pas mal de chose, après moult tutoriaux... et puis là, je bloque sur un truc un peu tout bête.

Je veux créer un rectangle avec une ombre portée et un texte dynamique dans mon rectangle.
J'ai donc créé un symbole movie clip à partir d'un rectangle et je lui ai appliqué un filtre. Le problème, c'est que mon symbole, si je l'instancie, il n'a plus le filtre, ce qui est embêtant. J'ai donc créé un symbole de ce symbole (déjà, là, je sais pas si c'est vraiment la bonne méthode pour le faire...), sur lequel j'ai rajouté un texte dynamique (qui a pour label "monTexte"). J'ai ensuite converti le tout en classe.

Maintenant, je veux que la scene soit vide, et quand on clique sur un bouton, un rectangle apparaît avec écrit "toto" dedans. J'ai donc créé le bouton qui va bien, avec un EventListener et la fonction qui fait un
nouvelObjet:maClasse = new maClasse();
Mon soucis, c'est que je sais pas comment accéder à mon texte... J'ai bien tenté un nouvelObjet.monTexte.txt, mais il me met une erreur
Pour ça, Java sous eclipse, c'est quand même mieux : il suffit de mettre un . après ton objet et tu as l'autocomplétion qui te donne le choix entre les différentes méthodes/attributs que tu peux utiliser. Ici, ça ne marche que pour les classes de base qu'il reconnaît...

Alors, une idée ?
 
Bon &#231;a me semblait compliqu&#233; &#224; expliquer alors je t'ai fait un zip contenant un .fla et une classe .as ... &#224; d&#233;cortiquer ;)

Sinon pour ton information, asdt permet l'autocompl&#233;tion de l'actionscript dans eclipse ;). C'est opensource. Il y a Fdt qui est encore mieux il faut bien le dire, mais qui est payant. Asdt suffit largement pour du loisir, et tu auras la compl&#233;tion dynamique sur tes propres classes.
 
Bon ça me semblait compliqué à expliquer alors je t'ai fait un zip contenant un .fla et une classe .as ... à décortiquer ;)

Sinon pour ton information, asdt permet l'autocomplétion de l'actionscript dans eclipse ;). C'est opensource. Il y a Fdt qui est encore mieux il faut bien le dire, mais qui est payant. Asdt suffit largement pour du loisir, et tu auras la complétion dynamique sur tes propres classes.

Alors, là, franchement, merci !
J'ai pas trop eu le temps de lire tes fichiers en détail, mais ça a l'air de très bien correspondre à ce que je cherche... Je regarde ça de plus près dès que j'ai un moment...
Au fait, pour ma culture générale : j'ai entendu parler de Flex et d'Openlaszlo, qui tous les deux se basent sur Flash. J'ai pas franchement été convaincu paar OpenLaszlo, mais je me demandais ce que tu en pensais... Quels sont les avantages/inconvénients de développer avec ces outils ? Xul me semble aussi très intéressant, mais pas encore assez répandu (si je ne m'abuse, il n'est supporté que par Mozilla & Co) pour vraiment s'en servir...
@+
Et encore merci pour ton coup de main