module inscription newsletter haut de page forum mobile

Rejeter la notice

ateliers live resolve avec forest

Ateliers Live Resolve - Formez-vous en ligne tous les mois avec Forest !
Faites rapidement évoluer la qualité de vos étalonnage avec nos ateliers mensuels de 3h.
Toutes les infos

Ateliers et Formations

probleme avec un script

Discussion dans 'Adobe After Effects' créé par thieumf, 22 Septembre 2006.

Tags:
  1. thieumf

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    58
    Appréciations:
    +0 / 0 / -0
    [RÉSOLU]probleme avec un script

    Bonjour, j'essaie de m'initier au scripting grace à l'excellent site de nab17connection
    et cherche à réaliser un script tout simple me permettant de changer la taille et la position de tous les calques d'une composition:

    Code:
      app.beginUndoGroup("changement taille");
    
    myComp = app.project.activeItem;
    
    myLayers = myComp.selectedLayers;
        
    myLayers.scale.setValue([ 107, 107 ]);
    myLayers.position.setValue([ 358, 296 ]);    
    
      app.endUndoGroup();
    mais voila, la console de debuggage me renvoie l'erreur

    "undefined n'est pas un objet" en mettant la ligne
    Code:
    myLayers.scale.setValue([ 107, 107 ]);
    en surbrillance.

    Comme je suis plutôt débutant en javascript, est-ce que quelqu'un peut m'expliquer la teneur de ce message d'erreur ?

    merci par avance.
     
    #1 thieumf, 22 Septembre 2006
    Dernière édition: 22 Septembre 2006
  2. thieumf

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    58
    Appréciations:
    +0 / 0 / -0
    Apparement, ce que le script n'a pas aimé, c'est la partie

    mySelectedLayers = myComp.selectedLayers;

    Car en changeant celle-ci par une boucle permettant d'agir sur chacun des calques de ma composition, (1 par 1) comme le script suivant:

    Code:
    app.beginUndoGroup ("size");
    var myComp = app.project.activeItem;
    	if (myComp == null || !(myComp instanceof CompItem)) 
       			alert("Vous devez sélectionner une composition");
    
    for (var b = 1; b <= myComp.numLayers; ++b){ 
    var curLayer = myComp.layer(b); 
    		
    curLayer.scale.setValue([107,107]);
    curLayer.position.setValue([358,296]);
    }
    app.endUndoGroup();
    cela fonctionne parfaitement.

    Si quelqu'un veux bien prendre un instant pour m'expliquer pourquoi mon "selectedLayers" n'a pas fonctionné, je lui en serai reconnaissant !

    J'ai trouvé de l'aide en m'inspirant du tutoriel suivant:

    AE ENHANCERS :: View topic - BEGINNER TUTORIAL : Add Slider/Expression to a comp
     
  3. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    salut thieumf,
    cela ne fonctionnait pas car "selectedLayers" represente un tableau contenant tous les calques sélectionnés dans une composition.
    Si tu souhaites modifier uniquement les calques sélectionnés par exemple, tu pourras écrire quelque chose comme ca:

    Code:
    var myComp = app.project.activeItem;
    var mySelectedLayers = myComp.selectedLayers;
    for (var i = 0; i < mySelectedLayers.length; i++) {
       var curLayer = mySelectedLayers[i];
       // ...
       // là tu remplis suivant ce que tu veux faire
       // ...
    }
    
     
Chargement...

Dernières occasions

 

Partager cette page