Scrollbar sous Flash 8

Kzimir

Membre expert
Club iGen
3 Mai 2001
1 218
7
Paris
Bonjour,

J'ai besoin d'intégrer un scrollbar sur une long texte...
Choix donc de "texte de saisie", clic droit "Déroulant"
Ensuite je viens coller au bloc texte le composant UIScrollBar.

Tout marche à merveille.

Sauf que mon client souhaite que la scrollar soit plus fine (16 px par défaut) et je n'arrive pas à en changer la taille. (d'ailleurs, si je voulais en changer la couleur tant qu'on y est, comment faire ? au cas où :p )

Quelqu'un pourrait m'éclaircir les idées avec un petit conseil pour personnaliser les scrollbar ?

Merci beaucoup !
 
Bonjour Kzimir,

Je viens d'essayer avec ma version de Flash CS3 et pour modifier l'apparence du composant UIScrollBar, il suffit de double cliquer dessus dans la bibliothèque. Espérons que sa soit la même chose avec Flash 8.

Sinon, tu peux programmer ta propre librairie de fonctions actionscript de barre de défilement et sa te permettra de faire un scroll 100% personnalisé et plus léger.

Bonne prog!
 
Bonjour,

Simplement double cliquer sur le composant depuis la bibliothèque ne change rien, je vais donc regarder pour faire un scrollbar maison... :)

Merci
 
Alors, j'ai voulu modifier la scrollbar de base, et ce n'est pas si simple visiblement...
J'ai pu modifier les flèches sans le moindre souci, mais pour le scroll en lui même je ne suis plus :(

je voudrai un truc simplissime, juste un filet bleu sans effet à la place du rectangle par défaut. Mais quand je modifie les movie clips internes au composant je n'arrive jamais au résultat attendu. Quelqu'un connaîtrait la marche à suivre... ?

Merci pour votre compassion :)
 
je crois qu'il faut passer par des fichiers de skins, c'est un peu le bouzou... Moi ça m'a tellement saoulé j'ai fini par le coder moi meme mon scroller :siffle:, et au moins il supporte la roulette sous mac :D

#edit : va donc faire un tour par là, il est fort jeanphi ;)
 
ce serait hyper abusé si je demandais de me l'envoyer ?
Je m'arrache mes cheveux, bientôt la "chauvitude" :)

Merci merci merci :)
 
ce serait hyper abusé si je demandais de me l'envoyer ?
Je m'arrache mes cheveux, bientôt la "chauvitude" :)
Désolé ça vraiment je peux pas :( mais le lien que je t'ai donné explique comment personnaliser un UIScrollBar en 6 lignes de code et 6 clips custom attachés dans la librairie (et ça fonctionne très bien j'ai vérifié ;) )... on peut difficilement faire mieux je pense ;)
 
je suis passé sous Flash CS3

je crée un nouveau doc et peux modifier à loisir mon scoller.
après je reprends le fichier de mon site, j'ouvre mon doc scroller comme biblio externe pour copier le fichier components assets (qui me force à passer en export Flash 9 et AS 3).

Mais quand je veux faire l'export je me retrouve avec plein d'erreurs, type

AVERTISSEMENT : Le composant 'ComboBox' nécessite ActionScript 2.0.
AVERTISSEMENT : Le composant 'UIScrollBar' nécessite ActionScript 2.0.
AVERTISSEMENT : les noms de variable de champ texte ne sont pas pris en charge par ActionScript 3.0. La variable 'affichage' utilisée pour un champ texte sans nom ne sera pas exportée.
AVERTISSEMENT : les actions associées à un bouton ou les occurrences MovieClip ne sont pas prises en charge par ActionScript 3.0. Aucun script associé aux occurrences d'objets ne sera pris en compte.

AAAAAAAAAARRRRRRRRRRRGHHHH, mon fichier est mal fait à la base ou c'est si compliqué pour convertir un site AS2 en AS 3 ???
 
Bonjour,

Selon moi, c'est que le ComboBox et le UIScrollBar qui sont dans ta bibliothèque on été insérés dans celle-ci par Flash 8 et depuis Flash CS3, ils ont changé.

As-tu essayé de remplacer le ComboBox et le UIScrollBar de ta bibliothèque avec ceux de la palettes des composents (drag and drop à ta bibliothèque)?

Pour les autres erreurs, regarde dans la doc de Flash CS3, il y a plusieurs choses de l'actionscript 2 qui sont changées dans la version 3.

Bonne chance
 
j'ai déjà essayé de changer les versions de mes composants par les nouvelles versions en actionscript 3, mais j'ai toujours le pb de :

AVERTISSEMENT : les noms de variable de champ texte ne sont pas pris en charge par ActionScript 3.0. La variable 'affichage' utilisée pour un champ texte sans nom ne sera pas exportée.
AVERTISSEMENT : les actions associées à un bouton ou les occurrences MovieClip ne sont pas prises en charge par ActionScript 3.0. Aucun script associé aux occurrences d'objets ne sera pris en compte.

Quand je veux exporter mon anim, aucun stop (); n'est respecté, c'est comme si aucun code n'était interprété. A croire qu'en passant de Actionscript 2 à 3 ils ont tout changé !!!

C'est assez rageant quand même, quelque chose qui parait si simple et qui s'avère si complexe à mettre en place (du moins pour moins qui ne maitrise pas flash plus que ça)
 
AVERTISSEMENT : les noms de variable de champ texte ne sont pas pris en charge par ActionScript 3.0. La variable 'affichage' utilisée pour un champ texte sans nom ne sera pas exportée.

--> Selon moi, tu utilises les variables à tes champs de textes dynamiques. Si je comprend bien l'AVERTISSEMENT de flash, ce n'est plus supporté. Perso j'ai jamais utilisé mes champs de texte dynamique avec une variable pré-déclaré, tu n'as aucun contrôle. Enlève la var affichage de ton champ de texte dynanique et donne lui plutôt un nom d'occurence et met le texte dedans par ce code:

monChampDeTexteDynamique.text = affichage;

AVERTISSEMENT : les actions associées à un bouton ou les occurrences MovieClip ne sont pas prises en charge par ActionScript 3.0. Aucun script associé aux occurrences d'objets ne sera pris en compte.

--> Tu mets tes onPress, onClipEvent, etc. en code frame (this.monBouton.onPress = function(){ //actions }) ou directement sur l'occurence? Ça me semble une erreur de déclaration.
 
Et tu ne peux pas simplement dans les parametres de publication passer de actionscript 3 à actionscript 2 ? J'exporte des fichiers flash 8 avec CS3 (certes ils n'ont pas de code sur les clips mais bon...), ça fonctionne nickel.

Sinon, je sais que ça te réjouira en rien, mais ça fait 4 ans maintenant que le code sur les objets est déprécié, et qu'on dit partout de plus s'en servir. Il y a eu un petit temps tampon (4 ans quand meme) mais maintenant c'est fini... si je ne m'abuse l'ide de flash CS3 ne permet meme pas d'acceder au code qui est sur les clips.

A croire qu'en passant de Actionscript 2 à 3 ils ont tout changé !!!
C'est meme plus profond que tu ne crois. Flash player, jusqu'à la version 8, disposait d'une machine virtuelle lui permettant de lire le code ActionScript 1 des fichiers swf. À la compilation, le code AS2 (class-based) était (et est encore) converti en code AS1 (prototype-based) pour etre lu par la machine virtuelle.
Le côté objet d'AS2 n'est donc qu'une surcouche utilisateur plus agréable à utiliser que les chaines de prototype.
Avec AS3 et flash player 9, c'est plus la meme histoire... : Flash player 3 contient 2 machines virtuelles, une pour AS1 (fichiers flash 4/5 à 8) et une pour AS3 (fichiers flash 9).
La machine virtuelle AS3 est faite pour interprêter un langage objet directement, contrairement à la première. Je te passerai les détails (pour la plupart je les connais pas :p :D ), mais ça va plus vite à l'exécution ça c'est certain.

Quand on faisait de l'AS1 ou AS2, le langage était extrêmement permissif, ce qui amenait sur les gros projets à de très grosses difficultés en terme de débuggage, réutilisation, clarté etc.
On peut résoudre partiellement le problème avec AS2, grâce à des compilateurs tiers beaucoup moins permissifs que celui d'adobe (mtasc pour ne pas me répéter :D) . Mais du coup il faut quand même arriver à s'affranchir complètement de l'ide, loin d'etre évident quand on a pas tout le temps pour s'y mettre, et la quantité de projets pour se faire à la méthode.
Depuis AS3 c'est le paradis du code... ceci dit vu le taux de pénétration du player 9, ben pour l'instant AS3 ça se limite au labo de dev en interne en ce qui me concerne, mais pas encore à la prod.

Alors oui AS3 c'est moins facile d'accés que AS1 et AS2 c'est certain, mais finalement si ça peut éviter la prolifération des animations flash inutiles c'est pas plus mal :)