Neoplayer - Début du projet

Bon, suite au billet précédent, je me suis lancé dans le projet neoplayer. Vous remarquerez que j'ai beaucoup d'imagination pour les noms ...

Par où commencer ?

Je suis resté longtemps devant une page blanche à réfléchir.

Il y a tellement de choses à faire, et il faut bien découper les tâches. J'ai fait dans cet ordre:

  • Le logger qui me permet de debugger
  • L'affichage d'un message d'erreur (écran rouge)
  • Le parsing XML
  • Le gestionnaire de chargement de fichiers
  • Le placement des boîtes

Le dernier étant le plus compliqué et le coeur même du projet, j'ai voulu rapidement l'aborder sans trop bacler le reste. De toute façon, le refactoring fait parti du process de dev :)

LayoutManager

Qu'est-ce que j'entend par "placement des boîtes" ?

Eh ben c'est comme en HTML, quand on enchaine 2 <div>, le deuxième va en dessous de l'autre. Quand on fait un <table>, on veut que les <td> se suivent etc.

Il y a Flex, fait par Adobe, qui s'occupe aussi de la disposition en boîtes. J'ai d'ailleurs essayé de regarder comment ils faisaient, ça a l'air sympa mais il y a beaucoup de code à assimiler pour tout comprendre. J'imagine qu'ils ont pensé à tout. Je ne sais pas si je vais aller si loin.

Voilà ce que ça donne pour l'instant: http://resources.neolao.com/download/flash/neoplayer/examples/dynamic/index.html

J'utilise 2 suites de fonctions pour mettre à jour l'affichage:

  • du plus profond au plus haut, je calcule la taille minimale
  • du plus haut au plus profond, je place suivant la place restante

Mais je vais vite tomber sur un cas où ça ne marche plus, j'en suis sûr :)

Conclusion

Ca avance petit à petit.

Commentaires

1. Le dimanche, mars 2 2008, 17:58 par Lipki

1. pourquoi ne pas utiliser du xhtml/css, et l'étendre si besoin, plutôt qu'un code perso ?

2. il y a une erreur dans un bloc la dernière ligne ne s'affiche pas si ne s'agit pas d'un spacer.

4. Le jeudi, mars 20 2008, 11:42 par lipki

hehe oui bien sur, mais tu utilise un langage basé sur xml, pour faire de la présentation.

Le xhtml me parait idéal, La norme existe déjà, et bcp de monde la connait.

Pour reprendre ton exemple, en utilisant le langage existant xhtml et en ajoutant les fonctions spécifique a ton player, on obtiendrais ce code :
pastebin.com/m66f7b703

Une possibilité aussi, serait de ce rapprocher du xul.

5. Le jeudi, mars 20 2008, 11:51 par neolao

ah oui, ben super facile

j'me suis fait un système d'alias pour les "tags"
aucun problème à ce niveau

mais le xhtml est prévu pour créer des documents
alors que le xul, xaml ou flex décrivent des interfaces

ca n'empeche pas d'avoir plusieurs namespace après tout.
Se baser sur un format qui existe déjà et étendre. Oui, j'vois ton idée

6. Le mercredi, juin 11 2008, 00:25 par Karl

Alors il avance ce projet ? j'ai vu qu'il y avait un exemple sa serait sympa qu'il y est une petite doc pour savoir ce que l'on peut ajouter dans le container est comment, en tout cas bon travail