Uw opmerkingen
- Через "глобальный слушатель" http://support.iridiummobile.net/topics/11534-/#comment-70822
- Еще мне понравилось простое решение:
http://support.iridiummobile.net/topics/11423-js-pass-objectgetitem-in-script-call/#comment-70159
- "передача" параметра функции через Send to Project Token, т.е. можно добавлять "ручками" в редакторе - "Нелепое" решение - передача параметров через 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, ..); ...
Если по индексу item'а, не подходит?
http://support.iridiummobile.net/topics/11534-/#comment-70764
Знаю только один способ: с помощью атрибутов ScaleX, ScaleY
в библиотеке анимации есть эффект ScaleXY
http://dev.iridiummobile.net/Animation_API
логичнее убирать все пользовательские элементы с экрана во время "маштабирования", изменять размер только подложки, а после высчитывать новые координаты для них, оставлять в том же масштабе (ненужные уйдут из поле зрения с координатами, превышающими размер экрана)
если вместе с этим масштабировать несколько элементов, то можно изменять весь Popup
Для управления отлично подойдут IR.GESTURE_PINCH_IN, IR.GESTURE_PINCH_OUT
http://wiki2.iridiummobile.ru/Gestures_API
Для подложки должно быть правильно выставлено свойство "Image Stretch"
Я использую StaticList для перемещения "между этажами", но есть свои особенности
- Добавьте / (слэш) для uri
IR.Log("Send: "IR.GetDevice("planika").Send(['POST,/,__SL_P_UBT=ButtonStart']));
- Сложность точно не в сети?
Можно убедиться, что пакет отсылается/не отсылается/принимается, например в Mikrotik можно включить пересылку пакетов на ПК (Wireshark ip.addr == 192.168.88.231 && tcp.port==80)Tools -> Packet_Sniffer Streaming Enabled : Yes Server : [IP PC] Interfaces : Wlan
- Все ли заголовки запроса передаются? (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" }
Customer support service by UserEcho
Also you may unpack project file, edit .irp as XML and pack it back to zip archive (irpz).