Uw opmerkingen

Also you may unpack project file, edit .irp as XML and pack it back to zip archive (irpz).

  1. Через "глобальный слушатель" http://support.iridiummobile.net/topics/11534-/#comment-70822
  2. Еще мне понравилось простое решение:
    http://support.iridiummobile.net/topics/11423-js-pass-objectgetitem-in-script-call/#comment-70159
    - "передача" параметра функции через Send to Project Token, т.е. можно добавлять "ручками" в редакторе
  3. "Нелепое" решение - передача параметров через URL http://wiki2.iridiummobile.net/Template:URL-scheme iridium://script?data1&data2 в эмуляторе не работает

Да, видимо z-order не поменять

http://support.iridiummobile.net/topics/9525-pozitsiya-z-u-sozdannogo-cherez-js-elemeta/

Можно заново создавать элементы клонированием и удалять оригинал в нужном порядке. Это если уже созданные Item.

function setZOrder(orderList)
{
   var e, nm;
   for (e in orderList){
   e=orderList[e];
   IR.Log(e);
      nm=e.Name;
      e.Name="__deleted"
      e.Clone(nm);
      IR.DeleteItem(e)
   }
};

var page=IR.GetItem("Page 1");
setZOrder([page.GetItem("BG"),page.GetItem("Item 3"),page.GetItem("Item 4"),page.GetItem("TOP")])

В клиенте Win (эмулятор) есть баг - клонируются не все свойства.

А через CreateItem - не удается добиться нужного порядка?

Положение - в смысле координаты? Только высчитывать новые координаты и сдвигать каждый элемент поочередно, если отказались от List (в котором "положение" задается индексом, не Static)


Я использую Clone "образца" (это несколько Item), который находится за пределами видимой области экрана, вычисляется "середина" образца, клон сдвигается на относительную величину, которая соответствует координатам.

var mvItms = function(x,y,m)
{
   var right=0, bottom=0;
   for (var i = 2; i < arguments.length; i++) {
      right = Math.max(right,arguments[i].X+arguments[i].Width);
      bottom = Math.max(bottom,arguments[i].Y+arguments[i].Height);
   }
   //(right-m.X)/2 - width of goup of elements  
   var revX = (x-m.X)-Math.round((right-m.X)/2); //m.x>x ?
   var revY = (y-m.Y)-Math.round((bottom-m.Y)/2);
   for (var i = 2; i < arguments.length; i++) {
      arguments[i].X += revX;
      arguments[i].Y += revY;
   }
};

//что-то в этой функции отсутствует вычисление left - MIN, top-MIN, 
//видимо первый элемент (m) - расположен "выше, левее остальных"

вызов функции примерно следующий

...
var name="nmEl_"+1;
var MainEl=page.GetItem("Main_T").Clone(this.name+"M");
var SecondEl=page.GetItem("Second_T").Clone(this.name+"S");
var ThrdEl=page.GetItem("Thrd_T").Clone(this.name+"T");

mvItms(200, 300,MainEl, SecondEl, ThrdEl, ..);
...

Знаю только один способ: с помощью атрибутов ScaleX, ScaleY

в библиотеке анимации есть эффект ScaleXY

http://dev.iridiummobile.net/Animation_API


логичнее убирать все пользовательские элементы с экрана во время "маштабирования", изменять размер только подложки, а после высчитывать новые координаты для них, оставлять в том же масштабе (ненужные уйдут из поле зрения с координатами, превышающими размер экрана)

если вместе с этим масштабировать несколько элементов, то можно изменять весь Popup

http://wiki2.iridiummobile.ru/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_iRidium_Script#.D0.9C.D0.B0.D1.81.D1.88.D1.82.D0.B0.D0.B1.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0....


Для управления отлично подойдут IR.GESTURE_PINCH_IN, IR.GESTURE_PINCH_OUT

http://wiki2.iridiummobile.ru/Gestures_API


Для подложки должно быть правильно выставлено свойство "Image Stretch"


Я использую StaticList для перемещения "между этажами", но есть свои особенности

  1. Добавьте / (слэш) для uri
    IR.Log("Send: "IR.GetDevice("planika").Send(['POST,/,__SL_P_UBT=ButtonStart']));    
  2. Сложность точно не в сети?
    Можно убедиться, что пакет отсылается/не отсылается/принимается, например в Mikrotik можно включить пересылку пакетов на ПК (Wireshark ip.addr == 192.168.88.231 && tcp.port==80)
    Tools -> Packet_Sniffer
    Streaming Enabled : Yes
    Server : [IP PC]
    Interfaces : Wlan  
  3. Все ли заголовки запроса передаются? (http://support.iridiummobile.net/topics/1160-how-to-send-a-http-post-including-cookie-in-javascript-whats-the-syntax/) Например: нужен ли заголовок "Content-type".
    В большинстве браузеров можно запустить отладичик: Ctrl+Shift+I вкладка Network, там можно посмотреть передаваемые/принимаемы заголовки (Headers)

Вероятно данный камин и по JSON умеет работать (but.php). Хорошо если есть обработка событий EVENT_ERROR, EVENT_RECEIVE_DATA..

new Nuvo work by UPnP, but if you know the ip (dhcp binding), you can use JSON

{"id" : "iridium_panel1" ,"url" : "/stable/av/", "method" : "browse" }

https://github.com/turnerba/nuvo-json-client

новые Nuvo работают по upnp, но если знаете ip (dhcp binding), то можно и по JSON

{"id" : "iridium_panel1" ,"url" : "/stable/av/", "method" : "browse" }


https://github.com/turnerba/nuvo-json-client