Имена переменных и методов в API DroidScript как и в JavaScript чувствительны к регистру:
app.AddLayout - правильно
app.addLayout - вызовет исключение
Имена методов могут идти:
Методы могут быть:
Обязательные параметры нужно указывать всегда в отличие от необязательных. Иначе метод выполнится с ошибкой или не выполнится, что впоследствие приведёт к возникновению исключения. Если опустить необязательные параметры, то соответствующим свойствам объекта будут даны значения по умолчанию.
К необязательным параметрам относятся и опции, но встречаются случаи, когда опция должна быть указана обязательно, иначе возникнет исклоючение.
myObject.Show(); // метод без параметров
myObject.SetSize( width, height ); // метод с двумя обязательными параметрами
myObject.SetPosition( left, top, width, height ); // метод с двумя обязательными (left, top) и двумя необязательными (width, height) параметрами.
app.CreateText( text, width, height, options ); // метод с необязательными параметрами
app.CreateGLView( 1, 1, 'fast2d'); // метод с обязательными параметрами и обязательной опцией
Если нужно указать обязательный числовой параметр без изменения значения свойства, то вводят -1 (в конструкторе CreateImage значение -1 работает иначе):
myObject.SetSize( 0.1, -1 ); // задаёт ширину объекта равной 0.1, а высота остаётся без изменений
app.CreateImage( 'myImage.jpg ', 0.2, -1 ); // отображает картинку шириной 0.2 и высотой, пропорциональной данному значению
Обязательный параметр может быть любого типа, строка, объект, число, например:
app.CreateLayout( type ); // без указания обязательного строкового аргумента type, который может быть 'linear', 'absolute' или 'frame', объект компоновщика не будет создан.
Параметры в методах перечисляются слева-направо:
обязательные, необязательные, опции
Параметр с опциями задаётся в виде строки с перечисленными через запятую названиями опций. Названия опций не зависят от регистра:
myLay = app.CreateLayout( 'linear', 'left, Top, fillXY' ); // 'linear' - обязательный параметр, 'left, top, fillXY' - необязательный параметр с опциями
Опции могут дополнять работу друг друга или перекрывать её. Если в строке задано несколько опций с противоположным действием, то приоритет отдаётся опциям, действующим по умолчанию, например:
var _myLayout = app.CreateLayout( 'linear', 'right, left, right, fillXY' ); // создаётся компоновщик с выравниванием элементов по левому краю, несмотря на указание опций right.
Предположим, была создана кнопка:
var myButton = app.CreateButton();
Для определения количества аргументов, которое метод ожидает получить, используется его свойство length:
alert( myButton.SetSize.length); // 3
Для определения примерного типа аргументов используется обращение к методу без скобок (без его вызова):
alert( myButton.SetSize ); // function( width, height,options ) { prompt ...
или
alert( myButton.SetSize.prototype.constructor ); // function( width, height,options ) { prompt ...
или
alert( myButton.SetSize.toString() ); // function( width, height,options ) { prompt ...
Точнее тип аргументов можно узнать из справочной системы. Для этого перед параметром метода указан его тип:
Здесь перечисление () отличается от списка [()] тем, что в случае использования перечисления необходимо подставить одно из указанных значений, тогда как в случае списка можно указать несколько опций через запятую, как в массиве.
Нестроковый параметр в методах можно указывать в виде строки, что удобно при работе с данными в формате JSON, например:
myObject = app.CreateButton( 'Кнопка', 0.2, 0.2 ); // это работает
myObject = app.CreateButton( 'Кнопка', '0.2', '0.2' ); // это тоже работает
Для методов, возвращающих значения, их тип указан после объявления метода через двоеточее:
myObject.GetText():str