DroidScript
DroidScript
учимся и разрабатываем

Общие моменты

06.04.2017

Имена переменных и методов в API DroidScript как и в JavaScript чувствительны к регистру:

app.AddLayout - правильно
app.addLayout - вызовет исключение

Имена методов могут идти:

  • с префиксом Create (создать) - создаёт и возвращает объект или null
  • с префиксом Get (получить) - возвращают значения свойств объекта
  • с префиксом Set (установить) - устанавливают значения свойств объекта
  • с префиксом Is - проверяют состояние свойств, возвращая true или false
  • без префикса - методы действий, например Show - сделать видимым, Hide - скрыть и т.п.

Методы могут быть:

  • без параметров
  • с обязательными параметрами
  • с обязательными и необязательными параметрами
  • с необязательными параметрами

Обязательные параметры нужно указывать всегда в отличие от необязательных. Иначе метод выполнится с ошибкой или не выполнится, что впоследствие приведёт к возникновению исключения. Если опустить необязательные параметры, то соответствующим свойствам объекта будут даны значения по умолчанию.

К необязательным параметрам относятся и опции, но встречаются случаи, когда опция должна быть указана обязательно, иначе возникнет исклоючение.

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 ...

Точнее тип аргументов можно узнать из справочной системы. Для этого перед параметром метода указан его тип:

  • str - строка
  • float - число
  • int - целое число
  • bool - булево значение (true или false)
  • {} - объект
  • () - перечисление с возможными значениями или указанием типа, например, (str) - строковый тип или ('Show', 'Hide', 'Gone')
  • [] - список или диапазон, например, [str] - список строк, [{}] - список объектов, [(str)] - список значений строкового типа

Здесь перечисление () отличается от списка [()] тем, что в случае использования перечисления необходимо подставить одно из указанных значений, тогда как в случае списка можно указать несколько опций через запятую, как в массиве.

Нестроковый параметр в методах можно указывать в виде строки, что удобно при работе с данными в формате JSON, например:

myObject = app.CreateButton( 'Кнопка', 0.2, 0.2 ); // это работает
myObject = app.CreateButton( 'Кнопка', '0.2', '0.2' ); // это тоже работает

Для методов, возвращающих значения, их тип указан после объявления метода через двоеточее:

myObject.GetText():str

© 2016-2024 
actech