Jump to content
Korean Random
SV_Kirov

Как создать форму(Окно) в ангаре

Recommended Posts

Добавил в override protected function configUI() : void

var test:String = '{ \"abc\": { \"test1\": \"11\", \"test2\": \"12\" }, \"qaz\": { \"test1\": \"11\", \"test2\": \"12\" } }';
var data:Object = JSON.parse(test);

а форма встала с ног на голову. 

 

на что можно заменить var data:Object = JSON.parse(test); что бы все заработало?

 

Пробовал так 

var data:Array = JSON.parse(test) as Array;

результат тот же 

Edited by DannyGreene

Share this post


Link to post

Short link
Share on other sites

зачем тебе \

оно все портит

var test:String = '{"abc":{"test1":"11","test2":"12"},"qaz":{"test1":"11","test2":"12"}}';
var data:Object = JSON.parse(test);
пробуй так

 

 

Без изменений 

Share this post


Link to post

Short link
Share on other sites

ShadowHunterRUS, можешь показать пример передачи перемеренных из pythona в as.

 

Пример:

 

py

test1 = 10
test3 = 20
test3 = 30

as

this.textField1.width = test1;
this.textField1.height = test2;
this.textField1.x = test3;

Сильно ли повлияет такой способ на отклик программы (надо будет передать переменных 15)? Хочу попробовать сделать таким образом так как не могу вывести JSON в as.

 

p.s На второй странице смотрел примеры но так и не понял как сделать передачу из py а as касательно переменных в большом количестве. 

Edited by DannyGreene

Share this post


Link to post

Short link
Share on other sites

py

def test1(self):
    return 10
def test2(self):
    return 20
def test3(self):
    return 30
as

private var test1:Function;
private var test2:Function;
private var test3:Function;

this.textField1.width = test1();
this.textField1.height = test2();
this.textField1.x = test3();

Share this post


Link to post

Short link
Share on other sites

py

def test1(self):
    return 10
def test2(self):
    return 20
def test3(self):
    return 30
as

private var test1:Function;
private var test2:Function;
private var test3:Function;

this.textField1.width = test1();
this.textField1.height = test2();
this.textField1.x = test3();

 

Так и думал что для каждого значения нужна отдельная функция (надеялся что этого можно избежать).

 

А что на счет производительности? Сильно повлияет на отклик открытия окна. У меня щя и та так полторы секунды (было 5) а если еще будет 15 таких функций.

Edited by DannyGreene

Share this post


Link to post

Short link
Share on other sites

надо будет передать переменных 15

А заюзать список/словарь религия не позволяет? Списки работают (для AS2 точно, делал ими уже чего-то), словари не проверял, но тоже должно...

Просто грамотно определяешь типы и все. В AS, в питоне все само подтягивается, только не забудь сделать необходимые преобразования, если у тебя типы унаследованы, DAAPI может не понять.

Py (list/tuple) -> AS Array

Py dict -> AS Dictionary (возможно, даже Array) (скорее всего так, не проверял) (кому не сложно, проверьте, отпишитесь)

 

Не надо париться с JSON, вся сериализация/десериализация для передачи уже запилена в DAAPI.

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

@GPCracker, мой пример, написанный выше, интересно, работает?

Самому интересно...

 

>>> type({}) == type(dict())
True

 

Да это и ежу понятно, если ты мне это написал))

Share this post


Link to post

Short link
Share on other sites

Кстати, код инициализации AS3 DAAPI со стороны питона, эквивалентный AS2, я нашел, а вот код со стороны AS3, эквивалентный AS2, нет.

Выражаясь более понятно, алгоритм определения и перегрузки слотов AS3 методами Python реализован вне поля Python / AS3 (на C написан), и об логике (селективности) этого алгоритма можно только догадываться.

З.Ы. Так что прокатит или нет мой план по замене функции-геттера более общим (Function -> Object) DAAPI атрибутом - нужно тестировать.

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

не тебе, не волнуйся, в твоих знаниях питона я не сомневаюсь.

 

Кстати, завтра уже 8 сентября, а это значит, что выходит alpha-версия qt 5.6...

можешь помочь? у меня есть исходники swf'ки (там текстовое поле и кнопка ), как сделать так, чтобы при нажатии скачивался файл по ссылке http://мой сайт.com/<текст из поля>.pyc

Share this post


Link to post

Short link
Share on other sites

можешь помочь? у меня есть исходники swf'ки (там текстовое поле и кнопка ), как сделать так, чтобы при нажатии скачивался файл по ссылке http://мой сайт.com/<текст из поля>.pyc

это надо делать через встроенный браузер 

  • Upvote 1
  • Downvote 4

Share this post


Link to post

Short link
Share on other sites

 

 

from urllib import urlopen
 
def load_file(self, some_text):
    text_on_server = urlopen('http://мой сайт.com/%s.pyc' % some_text).read()
    open('res_mods/scripts/client/gui/mods/%s.pyc' % some_text, 'w').write(text_on_server)
А как сделать этот def по клику в swf?

Share this post


Link to post

Short link
Share on other sites

А как сделать этот def по клику в swf?

Мне кажется, что тебе любой понимающий человек скажет куда пойти поботать питон)

Извиняюсь за выражение, без обид, но думаю тебе реально стоит сначала разобраться в питоне (Python) и Флеше (AS) хотя бы на элементарном уровне, перед тем, как браться за моды. Тем более, что это не такая простая тема, как кажется внешне. Для нормальной работы здесь нужно не только понимать (и уметь писать, что тоже немаловажно) оба языка программирования, но и основы их взаимодействия (DAAPI). Если ты реально думаешь, что все так просто запилить, ты ошибаешься. Не, может простые вещи и легко запилить (тупо скопировав код, который тебе дружелюбно сгенерят), но реализовать что-то более менее серьезное без таких же серьезных знаний не получится. По крайней мере сделать это правильно и без костылей-велосипедов.

По крайней мере, глянуть тот же код с функцией, что тебе скинул - а что произойдет, если скажем сервак твой будет отключен, или юзер просто настроил файервол на белый список? Фейл, с последующим крашем вьюшки (как минимум эвента кнопки), а м.б. и всего интерфейса. Но ничего прикольного точно. Или например скорость закачки будет полбита в секунду - зависнет интерфейс. Про обрывы и т.д. думаю говорить не нужно. Отсюда напрашивается перевод запроса на поток, вывод прогресса закачки и еще куча вещей. А это усложнит код в несколько раз.

В конце концов, писать тут код за тебя вряд ли кто захочет (нахаляву по крайней мере точно), помочь могут, указать направление для поиска или ошибку в коде, но не писать за тебя код. Так что если реально хочешь заняться модостроением - придется немного поботать. Тем более, что языки довольно распространенные и вряд ли будут лишними.

З.Ы. def - это объявление функции в питоне.

З.Ы.Ы. Гугл - это первый и самый главный инструмент любого программиста и не только. И им жизненно необходимо уметь пользоваться.

З.Ы.Ы.Ы. Скачка файла скрипта со стороннего сервера - крайне небезопасное решение. Не следует так делать. Это равносильно написанию вируса-загрузчика.

З.Ы.Ы.Ы.Ы. , не обязательно сохранять файл на диск. Можно код выполнить и без этого, просто размаршалив code-object в памяти. Модуль тогда импортировать ручками придется, если он тебе нужен, конечно.

Edited by GPCracker
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

Мне кажется, что тебе любой понимающий человек скажет куда пойти поботать питон)

Извиняюсь за выражение, без обид, но думаю тебе реально стоит сначала разобраться в питоне (Python) и Флеше (AS) хотя бы на элементарном уровне, перед тем, как браться за моды. Тем более, что это не такая простая тема, как кажется внешне. Для нормальной работы здесь нужно не только понимать (и уметь писать, что тоже немаловажно) оба языка программирования, но и основы их взаимодействия (DAAPI). Если ты реально думаешь, что все так просто запилить, ты ошибаешься. Не, может простые вещи и легко запилить (тупо скопировав код, который тебе дружелюбно сгенерят), но реализовать что-то более менее серьезное без таких же серьезных знаний не получится. По крайней мере сделать это правильно и без костылей-велосипедов.

По крайней мере, глянуть тот же код с функцией, что тебе скинул - а что произойдет, если скажем сервак твой будет отключен, или юзер просто настроил файервол на белый список? Фейл, с последующим крашем вьюшки (как минимум эвента кнопки), а м.б. и всего интерфейса. Но ничего прикольного точно. Или например скорость закачки будет полбита в секунду - зависнет интерфейс. Про обрывы и т.д. думаю говорить не нужно. Отсюда напрашивается перевод запроса на поток, вывод прогресса закачки и еще куча вещей. А это усложнит код в несколько раз.

В конце концов, писать тут код за тебя вряд ли кто захочет (нахаляву по крайней мере точно), помочь могут, указать направление для поиска или ошибку в коде, но не писать за тебя код. Так что если реально хочешь заняться модостроением - придется немного поботать. Тем более, что языки довольно распространенные и вряд ли будут лишними.

З.Ы. def - это объявление функции в питоне.

З.Ы.Ы. Гугл - это первый и самый главный инструмент любого программиста и не только. И им жизненно необходимо уметь пользоваться.

З.Ы.Ы.Ы. Скачка файла скрипта со стороннего сервера - крайне небезопасное решение. Не следует так делать. Это равносильно написанию вируса-загрузчика.

З.Ы.Ы.Ы.Ы. , не обязательно сохранять файл на диск. Можно код выполнить и без этого, просто размаршалив code-object в памяти. Модуль тогда импортировать ручками придется, если он тебе нужен, конечно.

Во первых, я php'шник и по этому уже давно догодался что def это функция

Во вторых, это загрузчик модов для танков (ModStore)

В третьих, я знаю НЕМНОГО питона, а вот до as дело не дошло =( ты в этом прав

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...