Skip to main content
Corvinus Corax
Inspiring
September 8, 2020
Answered

Classes in ExtendScript ( Object Orientation)

  • September 8, 2020
  • 1 reply
  • 3397 views

Is it possible to work with "true" Object Orientation in ExtendScript? I've tried to create classes and Objects with JS Synthax, but that won't work:

 

 

class Person {
    constructor(name, surname) {
        this.name = name;
        this.surname = surname;
    }
}

var person = new Person('Jack', 'Smith');
alert(person);

 

 

This only returns "invalid use of reserved word class".

 

What I am actually trying to do in the long run is to build an UI based on Objects. So, speaking in Pseudocode:

 

 

Class myUI {
constructor(group , dropdown1, text1  )
this.group = group (parameter)

this.dropdown1 = group.add(dropdownlist (parameter))

this.text1 = group.add(edittext (parameter))

}

...etc


myUI(group,dropdown,text);

 

 

Any Idea how something like this could work?

This topic has been closed for replies.
Correct answer Tomas Sinkunas

ExtendScript is based on super old ECMA version 3.something. So to imitate a Class, you'd need to use the old way, like this:

 

function Person(name, surname){
	this.name = name;
	this.surname = surname;
}

var person = new Person('Jack', 'Smith');
alert(person);

 

1 reply

Tomas Sinkunas
Tomas SinkunasCorrect answer
Legend
September 8, 2020

ExtendScript is based on super old ECMA version 3.something. So to imitate a Class, you'd need to use the old way, like this:

 

function Person(name, surname){
	this.name = name;
	this.surname = surname;
}

var person = new Person('Jack', 'Smith');
alert(person);

 

Corvinus Corax
Inspiring
September 8, 2020

Thanks Tomas, that seems to work great!

 

First test running fine:

 

var myPanel = new Window("palette","title",undefined);

var dropContent = ["Slideshow","Texttafel","Typo Big","Video Container"];

function myUI(group, dropdownlist,myFirstText){
	this.group = group;
	this.dropdownlist = dropdownlist;
     this.myFirstText = myFirstText;
}

var newRow = new myUI('group', 'dropdownlist,undefined,dropContent','edittext {text:\'bla\'}');

myPanel.add(newRow.myFirstText);

myPanel.center();
myPanel.show();
Participant
September 9, 2021

Hello, is there any chance you could send me some sort of post about classes in after effects? I heard from a coder that they are useful but I just don't really know what they are. Google seems to think I am looking for extendscript courses when I type"class" so it's hard to find anything about it. I wanna learn! xD thanks!