Questions sur ScrollContainerDisplay

0 views
Skip to first unread message

tristan

unread,
Jun 22, 2008, 12:35:32 PM6/22/08
to VEGAS - ECMASCript & ActionScript OpenSource framework
Bonjour ekameleon, puisque nouveau ici, je tiens d'abord à te
féliciter pour ton FW, je suis dedans depuis ce WE et je m'aperçois
qu'il vaut le détour.

Bon, quand même mes petites questions sur le ScrollContainerDisplay
qui pourrait m'être très utile.

J'essaye de le mettre en place avec un mask, genre la zone où seront
contenu les childs devra par exemple avoir un Rect de 0,0,500,300 et
bouger avec le resize. Comment faire ça car il y a childCount qui
permet de cropper une partie de la zone, mais c'est pas précis. J'ai
bien vu des trucs sur les mask, genre ce types de fonctions :
- container.resize( 500, 300)
- container.createMask("mask",1)
- container.setMaskIsActive( true );
- container.useScrollRect = true

Mais comment les utiliser ? Dans les exemples, y'a pas ce genre de
chose
Merci

eKameleon

unread,
Jun 22, 2008, 12:52:18 PM6/22/08
to VEGAS - ECMASCript & ActionScript OpenSource framework
Hello :)


> Bonjour ekameleon, puisque nouveau ici, je tiens d'abord à te
> féliciter pour ton FW, je suis dedans depuis ce WE et je m'aperçois
> qu'il vaut le détour.

De rien ;) Et j'espère qu'il t'aidera au mieux de ses possibilités :)

>
> Bon, quand même mes petites questions sur le ScrollContainerDisplay
> qui pourrait m'être très utile.
>
> J'essaye de le mettre en place avec un mask, genre la zone où seront
> contenu les childs devra par exemple avoir un Rect de 0,0,500,300 et
> bouger avec le resize. Comment faire ça car il y a childCount qui
> permet de cropper une partie de la zone, mais c'est pas précis. J'ai
> bien vu des trucs sur les mask, genre ce types de fonctions :
> - container.resize( 500, 300)
> - container.createMask("mask",1)
> - container.setMaskIsActive( true );
> - container.useScrollRect = true
>

La gestion du mask est interne au container (tu utilises à ce que je
vois la version AS2) et tout dépend de ce que tu cherches à faire :)

De façon général il existe avec la version AS2 des containers 2 façons
de les utiliser au niveau des mask :

1 - utilisation du mode mask classique ActionScript avec la méthode
setMask(). Cette fonction s'applique sur un rectangle qui dépend donc
du contenu du container... faut absolument respecter en fonction de la
"direction" du container la largeur ou hauteur des éléments... plus
les éléments vont être inégaux au niveau de leur taille, plus cela va
être difficile pour le container de faire son boulot.

2 - Utilisation du mode "useScrollRect" qui utilise sur le clip
container (à l'intérieur du clip principal) un scrollRect = new
Rectangle(...) qui force la découpe du clip et donc son maskage...

PS : tu utilises mes composants en compilant en FP8 ?

Sinon je comprends mal ton problème car pour ma part je réussi à avoir
des éléments dans mes containers qui sont bien à la bonne taille...
faudrait donc que tu précises un peu ton protocole de travail pour
m'exposer un peu ce que tu mets dans tes containers exactement ?

> Mais comment les utiliser ? Dans les exemples, y'a pas ce genre de

Tu parles de quel exemples exactement ?

Pour conclure... si j'étais toi, je me mettrais sérieusement à
l'AS3 !!! Surtout qu'on arrive bientôt sur de l'AS4 et que faut
rapidement se mettre aux outils que proposent le Flash Player 9 et
dans peu de temps le FP10 ;)

Dans la version AS3 de VEGAS tu as des containers beaucoup plus léger
et puissant qu'en AS2 ... en AS2 j'ai du coder pas mal de chose qui
n'existaient pas .. et en AS3 tout marche beaucoup mieux et surtout
beaucoup plus vite ! Tu peux regarder les exemples AS3 dans AS3/trunk/
bin/test/lunas/display/container :)

EKA+ :)

tristan

unread,
Jun 22, 2008, 7:30:51 PM6/22/08
to VEGAS - ECMASCript & ActionScript OpenSource framework
Oh, un peu de respect pour les développeurs en AS2 :-)
Non, en faite c'est une demande du client, le Flasheur en interne n'a
que des compétences AS assez limitées.
Je fais le code, il le modifiera. Si ça ne tenait qu'à moi, je
l'aurais fait en AS3

Alors, l'exemple qui me parlait le plus c'est dans lunas/display/
container/ScrollContainerDisplay 01
Je dois mettre en place un type de galerie similaire : http://www.merrellhollis.com/

Avec une marge de 100 pixels à droite et à gauche.
Avec ton système de container, il faut lui mettre le nombre de MC
visibles, mais les images sont de tailles différentes en largeurs et
je doit adapter la zone de scroll en fonction de la taille de l'écran
en conservant les marges.

J'ai fais un petit test avec ton exemple genre :
var max:Number = 50 ;
for (var i:Number = 0 ; i<max ; i++)
{
var child:MovieClip = container.addChild("item1");
child._width = Math.random() * 500
if (child._width < 300 ) child._width = 300
child._height = 300
}

et j'ai essayé différente formule avec ceci :
container.resize( 500, 300)
container.createMask("mask",1)
container.setMaskIsActive( true );
container.useScrollRect = true

Ca masque bien la zone, mais pas toujours en 500 pixels de large.
C'est différent à chaque exécution.

> PS : tu utilises mes composants en compilant en FP8 ?
Oui, en faite j'ai pour l'instant repris ton exemple.

En faite, c'est l'utilisation du useScrollRect qui doit être mis en
place, mais comment ?

Merci pour ta réponse.

T.

ekameleon

unread,
Jun 23, 2008, 2:00:32 AM6/23/08
to veg...@googlegroups.com
Hello :)

Avec les containers pas besoin d'agire sur les mask, c'est automatique :) Da

ekameleon

unread,
Jun 23, 2008, 2:03:07 AM6/23/08
to veg...@googlegroups.com
Grr... Parfois Gmail en fait vraiment à sa tête :(

Donc je reprends.

Les containers de type ScrollContainer n'ont pas étaient fait pour des éléments avec n'importe quelle taille... Je m'en sers avant tout pour faire des listes ou menus avec des items de taille identique (ce qui est déjà pas mal :)

Sinon faut aller un peu plus loin dans les classes et améliorer la base pour que cela accepte une zone visuelle derrière un mask et un scroll juste en fonction du contenu (pas en fonction des items et du nombre affiché)

A noter que faire ce genre de scroll sur une zone large sans prendre item par item c'est pas trop compliqué .. tu peux aller voir du côté de la classe ZoomDisplay si mes souvenirs sont bons.

EKA+ :)
Reply all
Reply to author
Forward
0 new messages