Bonjour,
Je souhaite attribuer une propriété à une série de clip en action script 2.
Lorsque je soumet ce type de code à mon lecteur Flash :

for (var i :Number = 0; i > 10; i ++) {
(monImage + i)._visible = false;
}

il me dit que je dois écouter toute la discographie de Mireille Mathieu.
Quelqu'un peut-il m'éviter ce sort atroce ?
D'avance merci pour votre action humanitaire.
Salut

Je ne fais pas la relation entre ta question et le message.
Ta question dit : Nommer une série de clip en AS2. Si oui : une simple « variable » et une boucle « for » suffiront.

var nomImage:String = 'clip_';
// :::
for (var i:Number = 1; i < 11; i++)
{
    if (i < 10)
    trace (nomImage + '0' + i);
    else
    trace (nomImage + i);
}

Résultat à la console : clip_01 clip_02 clip_03 etc - Plus haut que 09 : clip_10 clip_11 clip_12 etc.

De plus ta boucle « for » ne peut être exécuter selon ton script : i > 10; - Il faut écrire i < 10;

Quelqu'un peut-il m'éviter ce sort atroce ? - Oui : change de discographie Smiley biggrin
D'avance merci pour votre action humanitaire ? - Disons plutôt pour votre actionscript.

Ta question dit : Nommer une série de clip et dans ton script tu fais mention de visibilité. Lorsque tes clips seront nommés, tu pourras les cibler pour les rendre : visible = false.

Toutefois je te suggère un objet de chargement et de déchargement des données plutôt que la propriété visible = false ou alpha = 0. Car ce qui est invisible aux yeux des utilisateurs ne l'est pas aux yeux du processeur. Et c'est plus professionnel. Dans mon langage perso je dit « création et destruction » d'objets en Flash. Il est inutile de garder charger un objet si celui-ci est : visible = false ou : alpha = 0. Car ceux-ci seront encore calculer par le processeur.

Quoiqu'il en soit, si ta question est vraiment sérieuse, j'aimerais que tu la reprenne, non seulement la question mais le message aussi, pour plus de détail.

En signalant au tant que possible tes buts et objectifs réels.

Merci

++ Je te laisse avec ça ici »

Essais de revoir ta boucle for s.v.p : voici un autre exemple avec une variable et un Array

var url:String = 'mp3/rock/';
var cibleur:Array = new Array ('zappa.mp3', 'metallica.mp3', 'ironMaiden.mp3', 'acdc.mp3');
// :::
for (var n:Number = 0; n < cibleur.length; n++)
{
  trace (url + cibleur[n]);
}

J'ai remplacer la variable « i » par « n » parce que le programme d'Alsa le confond avec le BBCode : italic.

Résultat »

mp3/rock/zappa.mp3
mp3/rock/metallica.mp3
mp3/rock/ironMaiden.mp3
mp3/rock/acdc.mp3
Modifié par zardoz (20 Dec 2010 - 05:41)
Bonjour,

En effet, tu n'a pas bien saisi le sens de ma demande.
Aussi, la voici explicitée :
Afin d'éviter le fastidieux exercice de nommage qui consisterait, par exemple, à écrire :
monImage1._visible = false;
monImage2._visible = false;
monImage3._visible = false;
etc...
je cherche une méthode pour nommer une série de clip (il s'agit donc bien de nommer) afin de pouvoir leur conférer une propriété, en l'occurence _visible = false.
Salut Gargassull

Essais ceci »

var images:Array = new Array ('img_01.jpg', 'img_02.jpg', 'img_03.jpg', 'img_04.jpg');
var n:Number = 0;
// :::
var visibles:Boolean = true;
// :::
for (n = 0; n < images.length; n++)
{
     var img:Boolean = images[n]._visible = visibles;
     trace (images[n] + ' : ' + img);
}
//
// ::: Ne change que la valeur de la variable « visibles »
// ::: C'est un Boolean : true|false
//

C'est la partie : images[n]._visible = valeur qui est important. Celui-ci est placer dans une variable

Ce code change des groupes d'objets en true ou false. Évidemment ce sera à toi d'en faire une fonction avec paramètre pour un meilleur contrôle. Au moins la base est placé ici.

Tu pourras le parfaire si tu veux.

++
Modifié par zardoz (20 Dec 2010 - 08:36)
Merci pour votre aide, cher Zardoz insomniaque.
Toutefois, si j'ai plus de 100 images à nommer, ce que je devine de la première ligne de code me fait un peu peur...
En fait, je suis dans une configuration connue :
1) Un problème me turlupine depuis des mois.
2) Je réalise 1,3 million d'essais infructueux par semaine.
3) N'y tenant plus et voyant ma fin approcher sous forme d'une chanteuse populaire coiffée au bol, je m'aventure sur un forum.
4) Dans l'heure qui suit, je trouve la solution tout seul.
5) Tout penaud, je viens m'agenouiller et demander grâce pour le dérangement.

Alors voici, tout de même, pour ceux qui seraient dans la même ornière que moi, ou qui ne manqueront pas d'y tomber un jour :

Importer les images ('image1', 'image2', etc) sur la scène dans un clip conteneur ('conteneurImages'), puis taper le sésame :

Var e:Number;

for(e = 0; e < 122; e++) {
conteneurImages['image'+e]._visible = false;
};

Le fait d'appliquer _visible = false aux images plutôt qu'au clip conteneur permet de ne pas cacher les autres éléments inclus dans le clip conteneur.

C'est tellement beau. J'en pleurerais...
Allo

Insomniaque ? oui.

Eh bien je préfère écrire 100 images dans un array plutôt que d'importer 100 images sur la scène : non ? Sans compter que tu peut cibler un répertoire avec un xml, ce qui est le best.

Mais importer sur la scène ? : non, jamais Smiley cligne Pas même en biblio.
Essais avec le temps de faire 100% programme. Cibler tes images en externes.

De travailler avec les classes et les packages. M'enfin c'est toi qui sais.

Et je ne t'ai pas inspiré un temps soit peu ? Smiley biggrin Grâce accordée.
J'écris sous AS3 de toute façon en plus d'être insomniaque. Smiley cligne

++
Modifié par zardoz (20 Dec 2010 - 09:30)
En fait, pour des considérations esthétiques, les 21 premières images sont importées depuis la bibliothèque et les autres sont téléchargées depuis un endroit mystérieux quelque part dans le vaste monde.
La technique de l'array ne m'est guère familière. Mes clips sont positionnés dans une configuration de type tableau effectivement, sur trois colonnes et un nombre de rangées indéterminé mais important. Au moins long comme ça. Et tout à la main. À l'ancienne.

As-tu une piste pour cela ? On va dire que les trois colonnes ont un _x de 100, 140 et 180 par exemple, et que chaque rangée a un _y de + 50 à chaque fois.

Ah oui, l'AS3... cherche plus; c'est pour ça que tu as perdu le sommeil. Si des cloques apparaissent sur tes avant-bras ou sur la langue, c'est normal aussi, c'est un symptôme assez fréquent chez les programmeurs en AS3...
Hello

Oui absolument : je te donne ici quelques consignes de bases

var nombreFois:Number = 10;
// :::
for (var lignes:Number = 0; lignes < nombreFois; lignes++)
{
     for (var colonnes:Number = 0; colonnes < nombreFois + 2; colonnes++)
     {
          // -- Ton objet de chargement des données images et 
          // -- toutes les instructions des lignes et colonnes
          // -- exemple : images de » 40 x 40
          // --
          monImage._x = colonnes * 42;
          monImage._y = lignes * 42;
      }
}

Je te donne que la base car il est 4:52hrs à Québec, mais c'est une piste.
Je crois que tu sauras t'ajuster en fonction de ton conteneur.
conteneurImages['image' + e]._x = colonnes * 42; conteneurImages['image' + e]._y = lignes * 42;
Je te reviens plus tard dans la journée car je dois faire reposé mes cloques.

J'essairai de te préparer quelque chose mais en AS3, parce que AS2 moi connais pas. Par contre tu sauras comment prendre l'essentiel selon tes besoins. Juste la base ici en haut devrais suffir pour t'inspirer.

À moins évidemment que tu trouve solution entre temps. C'est pas grave il me reste quelques grâces. Smiley smile

++
Modifié par zardoz (20 Dec 2010 - 12:23)
Salutation

C'est juste un exemple simple. Une forme en applat.
Celui-ci pourrait être utilisé avec des images miniatures ou des vidéos miniatures. Il pourra de même être des zones de chargements externes de données de toutes sortes.

Le code en AS3

var nombreFois:Number = 10;
// :::
var conteneur:Sprite = new Sprite ();
addChild (conteneur);
// :::
var forme:Sprite;
// :::
for (var lignes:int = 0; lignes < nombreFois; lignes++)
{
    for (var colonnes:int = 0; colonnes < nombreFois + 2; colonnes++)
    {
        forme = new Sprite ();
        forme.graphics.lineStyle (1, 0x333333);
        forme.graphics.beginFill (0xD4D0C8);
        forme.graphics.drawRect (-20, -10, 40, 20);
        conteneur.addChildAt (DisplayObjectContainer (forme), 0);
        conteneur.x = 65;
        conteneur.y = 20;
        // --
        forme.x = colonnes * 42;
        forme.y = lignes * 22;
        // --
        forme.buttonMode = true;
        // --
        forme.addEventListener (MouseEvent.MOUSE_OVER, formatAgrandir);
        forme.addEventListener (MouseEvent.MOUSE_OUT, formatNormale);
        forme.addEventListener (MouseEvent.CLICK, transparence);
     }
}
// :::
function formatAgrandir (e:MouseEvent):void
{
    e.target.scaleX = 1.5;
    e.target.scaleY = 1.5;
    // --
    forme = Sprite (e.target);
    var hPositions:uint = conteneur.numChildren - 1;
    // --
    conteneur.setChildIndex (forme, hPositions);
}
// :::
function formatNormale (e:MouseEvent):void
{
    e.target.scaleX = 1.0;
    e.target.scaleY = 1.0;
}
// :::
function transparence (e:MouseEvent):void
{
    e.target.alpha = 0.5;
}

Ce code simple n'est qu'une représentation d'objets en quadriller : écrit sous AS3.

Bonne continuation Gargassull.

++
Modifié par zardoz (26 Dec 2010 - 01:16)
bonsoir,

Un grand merci pour ces présents de Noël.
Je viens de digérer la première proposition de programme. En effet, cela simplifie considérablement la vie pour le placement des clips. J'ai cependant encore du mal à les rendre réactifs.
Aussi vais-je maintenant tâcher de comprendre ce deuxième code où je vois que le problème de la réactivité est résolu.
Comme ma gratitude ne connait plus de limites, j'ai l'honneur de t'offrir un séjour gratuit pour deux personnes sur mon site : http://si-près-de-rien.com

Non, non, je vous en prie mon ami, relevez-vous. C'est si peu de chose... Je vous assure...



Encore grand merci.
Woow ! super le site

Alors je me demandais pourquoi tu pose des questions sur Flash Smiley smile
Je vais allez visité et je t'en fait part plus tard. Moi perso ce sont les tutoriels qui m'intéresse.

Donc HTML CSS et PHP minimum.

Même la question des positionnements d'images que l'on voit très bien sur ton site : alors dit moi pourquoi poses-tu des questions sur Flash si tu en fait avec autant d'ardeur.

C'est quoi ton but ? J'aime pas être manipuler. Trop facile la manipulation. Bye.

++
Modifié par zardoz (21 Dec 2010 - 00:15)
Le plus gênant, ce sont les individus qui se manipulent eux-mêmes sans s'en rendre compte.
Aussi n'abuse pas de la programmation; il semble que les cloques ne soient pas les seuls effets secondaires de l'AS3...
Je considère cette discussion comme terminée.
Salut

Trop de signes m'auront laisser dans le doute : tant dans les propos tenus sur le topic qu'à la visite de ton site.

Je ne sais pas tout mais j'ai vraiment l'impression d'un template Full-Flash. Si c'est toi qui l'a dessiner et programmer tant mieux. En bout de ligne ça ne fait qu'un chargeur à images multiples visuellement sophistiquer et merveilleusement mécaniser (scénario).

Seulement lorsque l'on voit des zones (caddie) désactivées, disons plutôt non programmer parce que non maîtrisé, je me sentais en droit de douter que tu en soit l'auteur. Moi personnellement je n'ouvre pas de zone si je n'ai pas la maîtrise de cette zone en programmation. (Un caddie sans script serveur, c'est null ou undefined).

Mais sache que je n'ai pas à me relever devant toi car jamais, devant toi, je me suis agenouillé. Tes propos ne font tout simplement pas sérieux. Ton verbe poétique révèle l'artiste mais ne témoigne pas du développeur.

À la vue de ton site je te suggère d'être moins soumis à Flash, et de te tourner vers un point essentielle. Le HTML CSS, PHP ou autre communication serveur (Coldfusion, ASP).

To site témoigne l'urgence de te parfaire en HTML et de ne plus ignorer cette technologie. De ne plus te laisser au seul pouvoir de séduction qu'exerce Flash. Flash a besoin de son conteneur et son conteneur est le HTML. Sans compter CSS.

Ton site n'est tout simplement pas maîtriser en zone HTML. Scroll-bar horizontale, dimension non adapté des multi-résolutions. Navigation gauche et droite hors écran, ainsi que le bas. Le scroll-bar à lui seul ne résout pas le problème de visibilité de ton site. Même placer à l'extrême gauche ou droite, ta navigation restera hors écran.

Dommage qu'une discussion en arrive à la corbeil sans qu'aucune entente mature et responsable au développement ne sois négociable.

J'ai ce droit de douter lorsque, d'un regard superficielle certe, mais globale, je vois des contradictions majeurs.

Ne jure pas que par Flash. N'autorise pas ta passion de Flash de t'aveugler au point d'ignorer l'essence même de son conteneur. Car la zone HTML t'offre des occassions, que tu ne peut même pas mesurer à cette heure.

Nous ne pouvons faire Flash sans considérer son conteneur d'accueil, son socle.

++