Ваши комментарии
- Через "глобальный слушатель" 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" }
Сервис поддержки клиентов работает на платформе UserEcho
Also you may unpack project file, edit .irp as XML and pack it back to zip archive (irpz).