Jump to content
Korean Random
SV_Kirov

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

Recommended Posts

ShadowHunterRUS, пробовал, предупреждения нет, но всё так же не работает.

Попробуй так:

private function disposeW(e:MouseEvent) : void
{
    this.handleWindowClose();
}
Вот что у меня получилось:

post-16296-0-88964500-1439365082_thumb.jpg

Для каждого значения User/Id нужно создавать свой TextField с помощью цикла for

Также можно использовать WGшный класс для создания таблицы...

import scaleform.clik.controls.ScrollingList;
Edited by ShadowHunterRUS
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Попробуй так:

private function disposeW(e:MouseEvent) : void
{
    this.handleWindowClose();
}
Вот что у меня получилось:

attachicon.gifshot_005.jpg

Для каждого значения User/Id нужно создавать свой TextField с помощью цикла for

Также можно использовать WGшный класс для создания таблицы...

import scaleform.clik.controls.ScrollingList;

Как определить WGUtils (google не чего не дал по этому поводу) или это уже не надо? 

 

Я так понял что TextField надо редактировать в ActionScript где то когда он получает сообщения? 

import scaleform.clik.controls.ScrollingList; (ActionScript для мне темный лес)

 

p.s Что то я связь уже потерял немного (может с просони туплю), щя попробую поковыряться может что и выйдет

Edited by Mr.Deno

Share this post


Link to post

Short link
Share on other sites

Нужно XFW подключить)

Короче не нужно это...

По поводу <table>: в TextField этот тег использовать нельзя.

Я догадался что он не работает <table>.  А вот как ты TextField сделал я так и не понял 

Share this post


Link to post

Short link
Share on other sites

ShadowHunterRUS, подскажи, пожалуйста, как кнопку "Закрыть" применить по назначению (на примере этого кода)?

А разве нет стандартного обработчика... ЕМНИП, в питоне вроде было такое...

Да, глянул коды ВГ.

def onWindowClose(self):
    self.destroy()
З.Ы. Глянул в старых тестах, данный код тоже присутствует. Закрытие точно работало. Пару патчей назад. Не думаю, что серьезно перекопали.

Share this post


Link to post

Short link
Share on other sites

Также можно использовать WGшный класс для создания таблицы...

import scaleform.clik.controls.ScrollingList;

Это похвала WG или оскорбление Autodesk? :)

 

 

Я догадался что он не работает <table>.  А вот как ты TextField сделал я так и не понял 

 

Полистай на досуге оф.доки. Там много полезного можно найти.

Share this post


Link to post

Short link
Share on other sites

, а можно в окно, фоном, установить какое-либо изображение (например, из папки maps/icons)?

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Попробуй так:

private function disposeW(e:MouseEvent) : void
{
    this.handleWindowClose();
}
Вот что у меня получилось:

attachicon.gifshot_005.jpg

Для каждого значения User/Id нужно создавать свой TextField с помощью цикла for

Также можно использовать WGшный класс для создания таблицы...

import scaleform.clik.controls.ScrollingList;

Можешь показать как ты сделал такой вывод. А то если делать без таблицы получается записи съезжают

Примерно так:

|name          id|
+----------------+
 123           qwe 
 123           qwe
 123123           qwe
 123           qwe
 1223           qwe
Edited by Mr.Deno

Share this post


Link to post

Short link
Share on other sites
for(var i:int = 0; i<10; i++)
{
    var tf_left:TextField = new TextField();
    var tf_right:TextField = new TextField();

    tf_left.y = i*30 + 15;
    tf_right.y = i*30 + 15;

    tf_left.x = 15;
    tf_right.x = 300;

    addChild(tf_left);
    addChild(tf_right);
}
Как-то так...

 

 

Блин все стало сложнее )

 

1) Я так понял это надо вставлять сюда

override protected function configUI() : void

override protected function configUI() : void
{
   super.configUI();
   this.textFieldTest = new TextField();
   this.textFieldTest.width = 490;
   this.textFieldTest.height = 390;
   this.textFieldTest.x = 5;
   this.textFieldTest.y = 150;
   this.textFieldTest.multiline = true;
   this.textFieldTest.selectable = false;
   this.startF();
   this.addChild(this.textFieldTest);
  }

2) Тут цикл вывод от 0 до 9 а я не знаю сколько заранее у меня будет записей а значит надо с python'a как то передать количество (получить количество записей а вот предать в as есть сложность ) 

3) как  tf_left и tf_right понимает какая запись откуда в том плане что id а что name 

 

или от override protected function configUI() : void вообще надо отказаться 

 

p.s не совсем понимаю принцип передачи параметров с python в as 

 

Как я понимаю сначала данные поступают сюда 

public function as_setText(param:String):void
  {
   this.textFieldTest.htmlText = param; // получает текст с python'a наверное 
  }

а потом сюда и затем вывод текста 

override protected function configUI() : void
  {
   super.configUI();
   this.textFieldTest = new TextField();
   this.textFieldTest.width = 490; // параметры окна 
   this.textFieldTest.height = 390; // параметры окна
   this.textFieldTest.x = 5; // отступ 
   this.textFieldTest.y = 150; // отступ
   this.textFieldTest.multiline = true;
   this.textFieldTest.selectable = false;
   this.startF(); // хз что но есть вроде как в python скрипте такая же функция  
   this.addChild(this.textFieldTest); // выводит вроде как тест 
  }
Edited by Danny Greene

Share this post


Link to post

Short link
Share on other sites

а можно в окно, фоном, установить какое-либо изображение (например, из папки maps/icons)?

Один вариант предложил ShadowHunterRUS.

Второй - использовать пустой MovieClip и MovieClipLoader (для AS2). Наверняка у картохи в AS3 тоже должны быть готовые классы UILoader или что-то подобное. Таким макаром подгружаются иконки снарядов на панельку в бою))

Для AS3 - еще проще

Если картинку нужно запихнуть во флеш, есть Embed, ЕМНИП. Давно FlashDevelop не юзал.

Share this post


Link to post

Short link
Share on other sites

Сделал под id и name отдельный вывод и вышло примерно. Принцип такой получился как позиционирования <div> в CSS

Edited by Danny Greene

Share this post


Link to post

Short link
Share on other sites

Для AS3 - еще проще

Ну через img вполне нормально всё работает. Правда, мне кажется, что изображение чуть мылится (как это бывает при загрузке изображений в XVM`е).

'Скрин'

post-16412-0-81449400-1439400922_thumb.png

Пока для меня такого хватает. А позже, как дойдут руки, может сделаю что-то и получше)

 

Share this post


Link to post

Short link
Share on other sites

Как я понимаю сначала данные поступают сюда

Данные туда поступают, когда ты их туда посылаешь. Эту функцию ты вызываешь из питона.

По сути должно работать и прямая (из питона) установка текста твоего поля.

Тут цикл вывод от 0 до 9 а я не знаю сколько заранее у меня будет записей а значит надо с python'a как то передать количество (получить количество записей а вот предать в as есть сложность

Никакой сложности, базовые объекты такие как списки и словари (не уверен, но скорее всего) нормально воспринимаются AS, так что ЕМНИП можно их спокойно туда отправлять. Главное - правильно настроить приемник. Сериализацией / десериализацией / преобразованием типов объектов занимается DAAPI, так что за это не парься.

override protected function configUI()

Определяет конструирование UI. Именно тут по сути должно писаться все создание интерфейса. Поменять / установить дополнительные параметры можно потом (когда надо будет), но основное задается здесь. Т.е. тут ты определяешь, как будет выглядеть пустая болванка.

p.s не совсем понимаю принцип передачи параметров с python в as

Принцип называется DAAPI (Direct Access API). Работает, как видно из названия, по принципу "прямой доступ". Т.е. при помощи C-части движка flash (AS) связывается с Python, т.е. ты имеешь доступ к объектам, при изменении свойств которых / вызове методов C-часть преобразует формат переданных тобой данных, и выполняет действие в другой части "мостика". Опуская существование невидимой C-части, можно сказать, что ты напрямую вызываешь методы, описанные на другом языке, данные преобразуются автоматически.

Как это выглядит:

Python -> AS3:

У тебя есть flashObject. Все свойства и методы базового класса (если я это правильно назвал) (или почти все), будут доступны в питоне через этот объект.

AS3 -> Python:

Ты определяешь в базовом классе флешки методы, которые будут перегружены питоном (декларируешь переменные). Поэтому достаточно определить их как переменные и указать их тип (Function), вместо нормального определения метода. Далее при подключении флешки DAAPI находит такие методы и перегружает их. Насколько я понимаю, через базовый класс доступны все функции питона, имена которых определены как переменные в AS3 классе. И если я не ошибаюсь (не уверен, не проверял), все методы, имена которых совпадают с питоновскими, будут перегружены питоновскими (что произойдет, если в питоне будет метод одноименный со "стандартным", например, configUI, тоже не могу сказать, не тестил). Опять не совсем все понятно с модификаторами (private public overload static ...), я в AS не особо шарю, так что не могу сказать, как они влияют на этот процесс.

Правда, мне кажется, что изображение чуть мылится (как это бывает при загрузке изображений в XVM`е).

М.б. масштабирование?

Share this post


Link to post

Short link
Share on other sites

Ну через img вполне нормально всё работает. Правда, мне кажется, что изображение чуть мылится (как это бывает при загрузке изображений в XVM`е).

'Скрин'

Пока для меня такого хватает. А позже, как дойдут руки, может сделаю что-то и получше)

 

GPCracker, спс за пояснения. 

Edited by Danny Greene

Share this post


Link to post

Short link
Share on other sites

 

 

Можешь показать кода как ты картинку запелил ?
Создал новое текстовое поле, указал полные размеры окна и свойству htmlText дал путь к изображению.

Share this post


Link to post

Short link
Share on other sites

Создал новое текстовое поле, указал полные размеры окна и свойству htmlText дал путь к изображению.

Что то затупил потом догнал )) 

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