Select next keyframe script (in the selected property)

I find myself constantly crafting of individual keyframes manually, in order to automatically select the next or previous keyframe on a selected property with a shortcut (assigned a script, since there is no such feature in After Effects, being "Select previous/next keyframes' the closest thing) rather than locate the keyframe and by clicking on it , would save me and everyone else, rush hour and we click.

After some research, I thought that this was not possible, but after some more (looking at scripts like this AE ENHANCERS • View topic - exponential scaling and Re: How can I access the layer of keyframes?), I started to wonder if it is scriptable.

Hope it is clear what I want to achieve;

Basically I would like only by pressing SHIFT + K would take me to the next keyframe in the selected property AND select (SHIFT + J for each other) and

by pressing Ctrl + Shift + K would choose the next keyframe in the selected property without actually moving the time indicator current (Ctrl + Shift + J for each other).

(I think it makes sense and it is compatible with the shortcuts Almighty J and K, but I didn't know how to write the code or demand for this feature. Were not lucky, asking co-workers animators either).

Thank you

Oliver

Hi again,

I don't know how to reference a new shortcut. As I said it might be possible with an AppleScript script somehow but I don't know how it works, and it will not work on Windows in any case.

Here's another "solution", it works and is actually quite useful:

  1. Opened in After Effects.
  2. Open the script editor (file > Scripts > open Script file)
  3. Copy-paste the code below
  4. In your Scripts folder (not the ScriptUI Panels folder, there is no user interface) under a name which you are sure that this will be the first in your collections of scripts (for the test, I used $01_SelectCurrentKeys.jsx)
  5. Close After Effects.
  6. Then open your after effects Shortcuts.txt (see this thread for more details about where to find it, how to edit: Re: Custom keyboard shortcuts)
  7. Choose a shortcut for "ExecuteScriptMenuItem01" (that's the hardest part all combinations are already taken)
  8. Save and restart AE:

That will make the shortcut: select the image to the right under the ICT for all properties. Another key is deselected.

It's not exactly what you asked but I think it's better: use J/K to navigate and this new shortcut to select.

If you want to paste your original idea, it gives you a base first.

Note: a script cannot know whether or not a property is revealed in the timeline, so you actually select properties to make it work.

Xavier.

$.global.script_doSelectCurrentKeys || (script_doSelectCurrentKeys = function script_doSelectCurrentKeys(){
    var comp = app.project.activeItem, props, n, p, idx, DT;
    if (comp instanceof CompItem){
        DT = Math.min(0.01, comp.frameDuration/10.0);
        props = comp.selectedProperties;
        for (n=0; n0) p.selected = false;
                p.setSelectedAtKey(idx, true);
                }
            else if (p.selectedKeys.length>5){
                p.selected = false;
                p.setSelectedAtKey(1, true);
                p.setSelectedAtKey(1, false);
                }
            else{
                while (p.selectedKeys.length) p.setSelectedAtKey(p.selectedKeys[0], false);
                };
            };
        };
    return;
    });
script_doSelectCurrentKeys();

Tags: After Effects

Similar Questions

  • AF:selectBooleanRadio based on the language of expression of the selected property

    I have a code element.

    I want the selected property based on a condition.

    But I am never successful.

                                <af:panelGroupLayout id="pgl6" layout="horizontal">
                                        <af:selectBooleanRadio id="sbr12"  group="Mediatype" autoSubmit="true"  text="360" value="360"
                                        selected="#{pageFlowScope.uploadController.typeOfMedia eq 'threeSixty'}"
                                        valueChangeListener="#{pageFlowScope.uploadController.disactivateAttachment}"/>
                                        <af:selectBooleanRadio id="sbr22"  group="Mediatype" autoSubmit="true"  text="980" value="980"  
                                            valueChangeListener="#{pageFlowScope.uploadController.activateAttachmentIE}"/>
                                </af:panelGroupLayout>    
    

    Selected = "#{pageFlowScope.uploadController.typeOfMedia eq 'sixty'} '"

                                
                                        
                                        
                                     
    

    Problem solved on your useful advise

    -using the different media groups

    -partial release from the other

    -by using the Boolean property for selected

  • Having trouble with a script distort the selection of items that are part of an envelope.

    Hello, first assignment in time I hope I'm doing this correctly.

    Basically I have a file that requires a modification of the text which is then exported and edited in Photoshop. I recently started experimenting with fake envelope because it gave me more control over the duration of my text boxes of documents, but when I run my script on the document, it fails to catch any text that is wrapped with a distortion of the envelope. I guess it's because the script is looking for managers of related texts and partly of a distortion of the envelope text becomes something else.

    Thank you!

    OK, this should do the trick...

    Break and remake it!

    var sel = app.activeDocument.selection;
    app.executeMenuCommand ('Release Envelope');
    var sel2 = app.activeDocument.selection;
    for(var i = 0; i < sel2.length; i++){
      if(sel2[i].typename == "TextFrame"){
          sel2[i].contents = "new text for envelope";
      }
    }
    app.executeMenuCommand ('Make Envelope');
    
  • Script where the zero is not displayed when no value is selected, indicates when a value of zero is selected

    How can I write a calculation script where the zero is not displayed when no value is selected, but when a value field null is selected as part of the zero calculation will show?

    Option 1 has a score of 0 value

    Option 2 has a value of 5 score

    When someone chooses option 1, I want the value 0 to appear at the cell of notation.

    Here is the script that I have so far:

    If (event.value == 0 | event.value == ") event.value =";

    OK, the custom calculation script could be:

    Get the value of the checkbox field

    var v = getField("checkbox1").value;

    Set this field value

    V = Event.Value = "Off"? "" : v;

    Replace "checkbox1" with the actual name of the checkbox.

  • If (Key.isDown (Key.RIGHT)) ahead to the next keyframe

    I am a beginner in flash. I'm doing a script I would forward tio the next keyframe by clicking right. I make a game. I tried

    If (Key.isDown (Key.RIGHT))

    gotoAndPlay (11)

    but it does not work. Also, should I put the script on an object or the whole keyframe?

    Try to use a listener:

    var keyListener:Object = new Object();
    Key.addListener (keyListener);

    keyListener.onKeyDown = function() {}
    {if (Key.isDown (Key.Right))}
    trace ("right key is pressed");

    gotoAndPlay (11);
    }
    }

  • Specifying an accelerator key using the accessKey, PROPERTY of SCRIPT

    I can't get my head around the right approach to make the "accessKey" (PROPERTY of SCRIPTING) work...

    I don't know yet what event form / Obj event would be the host of this "script property"?

    Can someone point me in the right direction? (example of worked OR just simply a way SOM example and advice on where to place the code so it works!)

    Thank you Raheem

    This property is not supported by Acrobat/Reader.

  • How to import the list of names of VM and opposed a script of the imported virtual machines list

    Hi guys,.

    Can someone help me and integrate a csv import script (which contains a list of VMS) and ran the script against the VMs imported to create a CSV output below? Thank you very much in advance.

    SE connect-VIServer xxxxxxxx

    $date = get-Date-format-M - d - yyyy

    . 'c:\Users\xxxx\test\test2\scripts\xxx scripts\Get - FolderPath.ps1'

    $folders = get-file-type vm | Get-FolderPath | Sort-Object Id

    {Set-Path function

    Param ($Object)

    foreach ($folder IN $folders) {}

    If ($folder. ID - eq $Object.Id) {}

    $result = $folder. Path

    breaking

    }

    }

    $result

    }

    Get - VM vditest - 1.xxx.internal | Select-Object - property Name,@{N='Datacenter'; E={$_| Get-Datacenter}},@{N='Cluster'; E={$_. VMHost.Parent}},

    NumCPU,MemoryGB,ProvisionedSpaceGB,@{N='Path'; E={($_. Folder | Get - FolderPath). Path}},@{N='FolderID'; E = {$_.folder.} ID}} | Export-Csv "C:\test\vm-xxx-$date.csv" - NoTypeInformation - UseCulture

    Try something like below script

    It assumes that your CSV file looks like this

    'Name '.

    "VM1.

    "VM2.

    The script

    VM.csv Import-Csv - UseCulture | %{

    Get-VM-name $_. Name |

    Select Name,

    @{N = 'Center'; E = {Get-Datacenter - VM $_______ |} {{Select - ExpandProperty name}}.

    @{N = "Cluster"; E = {Get-Cluster - VM $_______ |} {{Select - ExpandProperty name}}.

    NumCpu, MemoryGB,

    ProvisionedSpaceGB,

    @{N = "Path"; E = {}

    $current = get-view $_. ExtensionData.Parent

    $path = $_. Name

    {}

    $parent = $current

    if($parent.) Name - only "vm") {$path = $parent. {Name + "\" + $path}

    $current is get-view $current. Parent

    } While ($current. Parent - no $null)

    [channel]: join ('-',($path.)) Split('\') [0.. ($path). Split('\'). (Count-2)]))

    }},

    FolderId

    }

  • Retrieve the Name of the tag property

    I'm definitely a novice PowerCLI. However, I have a script which is heavily borrowed from http://www.vstrong.info/2013/10/18/vmware-powercli-script-to-query-virtual-machine-events/

    What I would like to make in addition to the values that are retrieved, also receive the Name property of the attribute of the tag.

    The script I use now is:

    $vcenterserver = "myvcenter".

    # Check if VMware Snapin is loaded, otherwise, load

    If ((Get - PSSnapin - name VMware.VimAutomation.Core - ErrorAction SilentlyContinue) - eq $null)

    {

    Add-PSSnapin VMware.VimAutomation.Core

    }

    SE connect-VIServer-Server $vcenterserver

    $CDT = get-Date

    Get-VM-name testvm | »

    Get-VIEvent-Types of information - start $CDT. AddDays(-30)-finishing $CDT | »

    Where {'}

    $_. GetType(). Name - eq "VmBeingDeployedEvent" "

    - or $_. GetType(). Name - eq "VmCreatedEvent" "

    - or $_. GetType(). Name - eq "VmRegisteredEvent"} | »

    Select the name of user, Createduserid, FullFormattedMessage, @{Name = "VM"; Expression = {$_.} Vm.Name}}, @{Name = "RC Code"; Expression = {$_.} Vm.Tag}}

    He retrieves the correct values with the exception of the tag for the virtual machine. I also tried @{Name = "RC Code"; Expression = {$_.} Vm.Tag.Name}}

    I can extract the value in a table using the following command, but can't seem to pull the Name property:

    Get-VM-name testvm | Get-TagAssignment-category RCCode | Select-Object - ExpandProperty tag

    Description of the categories of name

    ----                           --------                       -----------

    10031 technical RCCode except...

    Any help would be appreciated, thanks!

    OK, then try this. I have not yet tested, but it should do it for you:

    Select the name of user, Createduserid, FullFormattedMessage, @{Name = "VM"; Expression = {$_.} Vm.Name}}, @{Name = "RC Code"; Expression = {$vm = ($_.)} UMM name); Get-TagAssignment | where {$_.} Entity-like ("$VM")}}} | Export Csv c:\Temp\csv.csv - NoTypeInformation - UseCulture

    The issue was that as the expression of Code RC worked essentially a new request, the $_. UMM name was irrelevant for the entity. Instead I just had the previous $_. UMM name in a variable that is referenced in the cmdlet that followed. Let me know if it works for you.

  • What is the searchable property of name ID Spec?

    I have a request to allow the search of trade Spec on description with "contains".  I could not find the searchable property ID to make it available in the drop-down list of search for trades.

    Is there a list of available property, property ID in a document that I forgot?

    The commercial designation has a searchable property ID?

    I have the < EQTSearchablePropertyConfigs >;

    < model modelName = "Trade Specification" >

    < SearchableProperty propertyId = "SpecName" sequence = "1" enabled = "true" comment = "" / > "

    < SearchableProperty = '2' = "SpecNumber" activated sequence propertyId = "true" comment = "" / > "

    < SearchableProperty propertyId = activated "3" = "SystemEquivalent" sequence = "true" comment = "" / > "

    < SearchableProperty propertyId = "GtinUpcNumber" sequence = "4" enabled = "true" comment = "" / > "

    < SearchableProperty propertyId = "Brand" sequence = "5" enabled = "true" comment = "" / > "

    < / template >

    the display of the Source, I can't find anything with the option value = 'Description' I in materials and any other Types of Spec.

    option selected= "selected" value= "-" >-< /option>

    < option value= "SpecName" title= "Name of Spec" >Spec name< /option>

    < option value= "SpecNumber" title= ' Spec # ' >Spec #< /option>

    < option value= "SystemEquivalent" title= 'Équivalent' >equivalent< /option>

    < option value= "GtinUpcNumber" title= "GTIN/UPC/EAN" >GTIN/UPC/EAN< /option>

    < option value= "Brand" title= "Brand" >brand< /option>

    Thank you... - BeckieC

    Curiously, it seems that Description has been forgotten on the search for specification of trade.   We will add it in the next major release.   If you find other criteria, you feel must be go ahead and submit an enhancement request.

    There is a customization that you can do to add new search criteria.  This would be a customization so when you upgrade these changes will need to be reused.

    1. ask the file: Config/Core/EQTModelCustomExtensions.xml support for your specific version.  This file is encrypted in your basic version.  You will need to make changes to this file and replace the encrypted version.  In this file, you can add additional criteria to search models.

    2. Add the following text to the file

    SpecDescriptionFreeTextProp.Description

    gsmBaseTradeSpec.pkid = gsmProductIdentification.fkSpecID

    gsmProductIdentification.pkid = SpecDescriptionFreeTextProp.fkSpecID

    To give you an idea how to add other criteria:

    If you go to our documentation of the schema, you can enter the SQL query for the data you are looking for, as the name of the Spec

    SELECT * FROM t1 gsmBaseTradeSpec

    INNER JOIN t2 ON t1.pkid = t2.fkSpecID gsmProductIdentification

    INNER JOIN SpecDescriptionFreeTextProp ON t2.pkid = t3.fkSpecID t3

    You then that convert to XML format as in the example above.

  • Need a script to the list name VM, the guest operating system, data store...

    I need to move a large number of virtual machines with MS Server 2008 to another storage.
    Could someone provide me with a small script for the list: all VM with GuestOS Type (MS Server 2008 filtered), name of store data and the overall computer virtual size!

    Thanks in advance

    Hello, farkasharry-

    How about something like:

    Get-View -ViewType VirtualMachine -Property Name,Config.GuestFullName,Storage.PerDatastoreUsage,Summary.Storage -Filter @{"Config.GuestFullName" = "Windows.*2008.*"} | %{    ## get the name(s) of the datastores on which this VM resides    $strDatastoreNames = ($_.Storage.PerDatastoreUsage | %{Get-View -Id $_.Datastore -Property Name} | %{$_.Name}) -join ","    New-Object -TypeName PSObject -Property @{        Name = $_.Name        GuestOS = $_.Config.GuestFullName        "Datastore(s)" = $strDatastoreNames        ## the amount of storage that the VM is using        UsedGB = [Math]::Round($_.Summary.Storage.Committed / 1GB, 1)        ## the total amount of storage that the VM _could_ use        ProvisionedGB = [Math]::Round(($_.Summary.Storage.Committed + $_.Summary.Storage.Unommitted) / 1GB, 1)    } ## end new-object} | Select Name, GuestOS, "Datastore(s)", UsedGB, ProvisionedGB
    

    It filters on the virtual machines with an OS name ("GuestFullName"), which corresponds to 'Windows.*2008. ' * ' and returns their name, the GuestFullName, the data store (s) on which they reside (maybe more), and the opportunity - and put into service in GB disk space.

    Return items are objects, so that you can select export to formats the info as you please, using the, say, Format-Table, Select-Object, Export-Csv, etc.

    And, because it uses the cmdlet Get-View, it should work pretty quickly.

    How does do for you?

  • How should be written the script for the use of the maximum memory of the guest operating system ever?

    How should be written the script for the use of the maximum memory of the guest operating system ever?

    Please teach the name of the object and the type and order, etc.

    You should be able to do it with the cmdlet Get-Stat .

    Something like that

    Get-Stat -Entity (Get-VM $vmName) -Stat mem.usage.maximum -Start (Get-Date).AddDays(-7) | Measure-Object -Property value -Maximum | Select Maximum
    

    This will return the maximum percentage in the last 7 days for the guests, whose name is stored in the variable $vmName.

    ____________

    Blog: LucD notes

    Twitter: lucd22

  • using the original property value forms

    I have a form called bill expedition.
    In the i uses a sequence to generate the build under when_button_pressed
    create_record;
    select :blockname.item||s_seq.nextval  into :ship.billid from dual;
    and it works very well


    Now in the palette property is a property called intial value under data
    This is adjustable as

    : Blockname.itemname | Select s.seq.nextval in: double ship.billid;

    Published by: Chase Suhail on November 21, 2010 22:35

    Published by: Chase Suhail on November 21, 2010 22:41

    Not exactly VALUE INITIALS. But you can do using block called WHEN-CREATE-RECORD-level trigger and use the code below...

    SELECT :blockname.item||s_seq.nextval
    INTO :ship.billid
    FROM dual;
    

    The thing you need to know which generated once sequence number cannot be regenerated. I mean if user is in the new record and suppose to insert the new file number and the sequence generated in the field and then he decided to do not create/insert record then the next time the user will get the new serial number.

    -Clément

  • Is noob question - next keyframe shortcut?

    I'm new to Flash and can not find if there is a way to get to the next/previous keyframe on a layer using something quicker than to drag the playback slider.

    Well, they are here. Four orders.

    • Select the next keyframe in this layer
    • Select the previous keyframe on the layer
    • Select the next keyframe on any layer
    • Select the previous keyframe on any layer

    Download this zip file, unzip it and copy the four JSFL files in your commands folder. Where is your orders folder? See the note under create an order on this page.

    At this point the orders will appear in your commands menu, but to make them really useful configure hotkeys for them. Enjoy!

  • Using a comfirmation of java script in the recording function delete?

    Hello;
    I'm writing a confirmation in Java script to delete a record. I don't want to delete all of the information table, just for the record, the button Delete is attached using the identifier. Here is my script, then the code on the page:

    < script language = "JavaScript" >
    function confirmDelete (id) {}
    If (confirm ('are you sure you want to delete this record?'))
    {
    document. HREF.action = "ProjectCat - Action.cfm?" ID = "+ id;"
    document. HREF.submit ();
    }
    Returns false;
    }

    < /script >

    This is the query that I'm trying to use it:
    "< name cfquery ="catMan"datasource =" "#sitedatasource #" username = "#siteUserID #" password = "#sitePassword #" >
    SELECT Categories.Name AS ViewField1, HAVE categories. CategoryID ID
    Categories
    < / cfquery >
    < head >
    < / head >
    < body >
    < cfloop query = "catMan" StartRowOptional = "" #URL.startRow # "EndRowOptional =" #endRow #">"
    < cfoutput >
    #ViewField1 #.
    < do action = "ProjectCat - Action.cfm" method = "post" >
    < input type = "hidden" name = "ID" value = "#ID #" >
    < input type = "submit" name = "proj_Delete" onClick = "return confirmDelete('#ViewField1#')" value = "Remove" > < / make >
    < / cfoutput >
    < / cfloop >
    < / body >

    #Note: there is the code here in my query to loop to the next and previous buttons, I just don't have this zip code as it relates to this question.

    Is there also a way to make the State of Java script in the place where it says, "Are you sure you want to remove this record" to say "Are you sure you want to delete #ViewField1 #? (the name of the deleted record)?

    Thank you!

    Phoenix

    just spent 2 arguments to your function js - id AND category name:


    and function:
    function confirmDelete (id, name) {}
    If (confirm ('Are you sure you want to delete' + name + 'category?'))
    {
    document. HREF.action = "ProjectCat - Action.cfm?" ID = "+ id;"
    document. HREF.submit ();
    }
    Returns false;
    }

    but the creation of a separate form for each category displayed on the page is
    very inefficient - you must revise your code... you have not yet
    train, really... just use to call your js function, or a
    (without any

    (Tags) you absolutely
    must have a button to click...

    ---
    Azadi Saryev
    SABAI - Dee.com
    http://www.SABAI-Dee.com

  • Not possible to activate the scripts on the Web server

    Hello

    I would like to create a page .html for Web with a bit of scripting ESP included - Services because now I understand just this:

    <% for (i=0; i<3; i++) {
      ...some text...
     } %>

    According to this document NOR, I first need to enable scripting:

    To use the script with a Web service, you must enable the feature on the Web of LabVIEW server. In LabVIEW, select the script on the Web Server: Configuration page in the dialog box Options to enable the use of scripts on the Web server.

    I activated the Web server and it works OK. But there is nothing called "Scripting" in the configuration page - and the script is executed (the code is just printed in the form of simple text).

    Anyone know how to activate the ESP script?

    Version: LV 2012.

    Best regards, Jan

    Hi Jan,

    In fact, you use the ESP file instead of a static HTML file.  For example, if we had the static html file:

    Hello world

    This file can be located at something like /MyWebService/HelloWorld.html.

    If I then do something like have a page to say "Hello, Jan" or "Hello, Mark" I could use ESP.  In this case, your code might look like:

    <>

    var xname = form ['name'];

    %>

    Hello, @@xname

    The URL of such a web method is perhaps something like jan/MyWebService/Hellovar/Jan where Jan string literal passed to the terminal of a web method that can resemble

    In this example, the string "Jan" is passed to the terminal of the value of the VI.  What implementation of the Web method in the spec to build his signature might look like in /Hellovar /: value.

    So, back to your original question.  You embed not ESP breast and the HTML document.  Instead, you embed HTML inside a document of ESP and the rendering of the document in HTML format when accessing the URL of the Web method.  While the paper you mentioned earlier has an example project in that you can use as a reference

Maybe you are looking for