POLIROID Posted October 17, 2015 Share Posted October 17, 2015 И после всего этого ты говоришь, что это не костыльный способ? Ну хз хз, там все просто, и костылей толком нет, единственное надо перетерпеть AS2 =( Плюсы я думаю описывать ненадо =) @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted October 17, 2015 Share Posted October 17, 2015 (edited) AS2Я про него и говорил с самого начала. MovieClip'ы это ... Edited October 17, 2015 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
POLIROID Posted October 17, 2015 Share Posted October 17, 2015 Раньше таких методов не было. Когда они появились?Да всегда они там были, я про loadSwf =) Я про него и говорил с самого начала. MovieClip'ы это ...AS2 больше нечего добавить =) @ Quote Link to comment Short link Share on other sites More sharing options...
FrostFT Posted October 17, 2015 Share Posted October 17, 2015 Оке миниинструкция по боевому флешу, мб кому пригодится. Внутри battle.swf (главного холдера боевого флеша) есть метод прямо в корне, называется loadSwf, его мы и будем использовать как загрузчик нашего флеша Писать флеш для боя будем на AS2, так как сам бой тоже на AS2 написан. Советую Использовать для написания FlashDevelop а для сборки Flash Pro (через него embed графики в AS2 делается). Вот пример внедрения в бой клик изменение как боевых елеменов, так и связь питон <=> флеш (маркера это не боевой флеш) Итак поехали. У нас есть логика на питоне, не важно что она делает, она работает всегда, внутри нее у нас вызовы обвязки флеша на питоне. Обвязку флеша на питоне нужно контролировать (инитить при создании боевого интерфейса, и "нуллить" при дестрое боевого флеша) - клик клик Итак когда у нас обвязка флеша на питоне уже сама создается и дестроится, пора дергать боевой флеш и грузить нашу флешку - клик клик клик клик А дальше все просто, реализуйте любые визуальности на флеше, гоняйте данные туда сюда, меняйте бой как вам угодно =) Вот как дергается флеш из питона на примере ивента, изменение размера экрана - клик клик UP перечитал эту пелену, не неумею я в туторы =) спасибо! завтра смогу посмотреть. @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted October 18, 2015 Share Posted October 18, 2015 Итак когда у нас обвязка флеша на питоне уже сама создается и дестроится, пора дергать боевой флеш и грузить нашу флешкуDAAPI только в одну сторону))) В обратную тоже можно, правда посложнее немного... Будет время - кину примерчик, а то не дают даже за компом спокойно посидеть((( Как раз таки надо рассказать народу про разницу между DAAPI и ExternalInterface (ЕМНИП, как-то так оно называется). Как оно подымается, что может и как с ними работать. MovieClip'ы это ...Для тех, кто не совсем понял, что к чему, класс наследуется от MovieClip и цепляется базовым классом к нужному элементу, определяя его дополнительный интерфейс. Соответственно, получая контрол флеш объекта через DAAPI можно использовать свойства и вызывать методы этого объекта. @ Quote Link to comment Short link Share on other sites More sharing options...
FrostFT Posted October 18, 2015 Share Posted October 18, 2015 Оке миниинструкция по боевому флешу, мб кому пригодится. Внутри battle.swf (главного холдера боевого флеша) есть метод прямо в корне, называется loadSwf, его мы и будем использовать как загрузчик нашего флеша Писать флеш для боя будем на AS2, так как сам бой тоже на AS2 написан. Советую Использовать для написания FlashDevelop а для сборки Flash Pro (через него embed графики в AS2 делается). Вот пример внедрения в бой клик изменение как боевых елеменов, так и связь питон <=> флеш (маркера это не боевой флеш) Итак поехали. У нас есть логика на питоне, не важно что она делает, она работает всегда, внутри нее у нас вызовы обвязки флеша на питоне. Обвязку флеша на питоне нужно контролировать (инитить при создании боевого интерфейса, и "нуллить" при дестрое боевого флеша) - клик клик Итак когда у нас обвязка флеша на питоне уже сама создается и дестроится, пора дергать боевой флеш и грузить нашу флешку - клик клик клик клик А дальше все просто, реализуйте любые визуальности на флеше, гоняйте данные туда сюда, меняйте бой как вам угодно =) Вот как дергается флеш из питона на примере ивента, изменение размера экрана - клик клик UP перечитал эту пелену, не неумею я в туторы =) Подскажи, где можно качнуть мод как у тебя WGTV - helper? :) 2 @ Quote Link to comment Short link Share on other sites More sharing options...
Tester Posted October 22, 2015 Share Posted October 22, 2015 (edited) Оке миниинструкция по боевому флешу, мб кому пригодится. Внутри battle.swf (главного холдера боевого флеша) есть метод прямо в корне, называется loadSwf, его мы и будем использовать как загрузчик нашего флеша Писать флеш для боя будем на AS2, так как сам бой тоже на AS2 написан. Советую Использовать для написания FlashDevelop а для сборки Flash Pro (через него embed графики в AS2 делается). Вот пример внедрения в бой клик изменение как боевых елеменов, так и связь питон <=> флеш (маркера это не боевой флеш) Итак поехали. У нас есть логика на питоне, не важно что она делает, она работает всегда, внутри нее у нас вызовы обвязки флеша на питоне. Обвязку флеша на питоне нужно контролировать (инитить при создании боевого интерфейса, и "нуллить" при дестрое боевого флеша) - клик клик Итак когда у нас обвязка флеша на питоне уже сама создается и дестроится, пора дергать боевой флеш и грузить нашу флешку - клик клик клик клик А дальше все просто, реализуйте любые визуальности на флеше, гоняйте данные туда сюда, меняйте бой как вам угодно =) Вот как дергается флеш из питона на примере ивента, изменение размера экрана - клик клик UP перечитал эту пелену, не неумею я в туторы =) Никто случайно не сохранил скрины по ссылкам? Или может POLIROID обновишь их? Очень прошу. Пелена или нет, но хоть какая то информация была бы для изучения. А то было уже обрадовался, что смогу в боевой флеш, но........ Edited October 22, 2015 by Tester @ Quote Link to comment Short link Share on other sites More sharing options...
FrostFT Posted October 23, 2015 Share Posted October 23, 2015 Никто случайно не сохранил скрины по ссылкам? Или может POLIROID обновишь их? Очень прошу. Пелена или нет, но хоть какая то информация была бы для изучения. А то было уже обрадовался, что смогу в боевой флеш, но........ думаю, что даже если кто-то сохранил, то никто не даст их :( 2 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted October 24, 2015 Share Posted October 24, 2015 (edited) Никто случайно не сохранил скрины по ссылкам? Или может POLIROID обновишь их? Очень прошу. Пелена или нет, но хоть какая то информация была бы для изучения. А то было уже обрадовался, что смогу в боевой флеш, но........Скрины на форум прямо заливать надо, чтобы точняк не потерялись. Появится время, накидаю чего-нибудь, есть кой-какие идеи, только нормально сесть за комп не дают, так за едой иногда появляюсь. Там ничего особо сложного нет, есть примеры по инициализации DAAPI и некоторые воспоминания по GameDelegate (имплементация обвязки ExternalInterface by Kartoxa) Будет время - нарисую доку с инфой в чем разница, че оно могёт и как это впихнуть и как пинать. Надо будет только покопаться немного в картохиных кодах, немного выловить общие моменты между root и ui флешками по части инициализации. И вспомнить что куда по EI, ибо давненько в последний раз встречался. Ну и с типами немного разобраться. AS3 не обещаю, но по AS2 постараюсь запилить. Не думаю, что там будет существенная разница, хотя отличия безусловно будут. Edited October 24, 2015 by GPCracker 2 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted October 28, 2015 Share Posted October 28, 2015 (edited) В-общем, есть портяночка с теорией на русском. Вообще, скорее всего, гайд будет большим комментарием к коду, и 99% что на английском, ибо перевести на русский, во-первых, проще, чем с русского (автоматический перевод понятнее получается), тут не только русские сидят, во вторых далеко не всем потребуется, ибо большинство адекватных программистов знают английский хотя бы на уровне чтения со словарем. "Короче, вот сама портяночка" Ко всему этому добавлю, что ExternalInterface в WoT используется через класс gfx.io.GameDelegate (ActionScript), являющийся по сути оберткой. Со стороны Python - метод call объекта, используемого в качестве корневого для интеграции флешки, являющегося экземпляром класса gui.Scaleform.Flash.Flash Вообще, флешка в WoT инородный элемент, интегрированный через Scaleform. По сути, флешка состоит из двух элементов - BigWorld GUI контейнера и экземпляра Scaleform movie, впихнутого в этот контейнер. Upd. Жалко скринов не сохранилось... Так бы может еще чего полезного добавил в гайд. Вобщем, отдебажил код более-менее, теперь надо приводить его к человеческому виду и дописывать/править комменты)). Два варианта загрузки/выгрузки флешки, двухсторонние DAAPI и ExternalInterface, примерчики по части управления и некоторая другая полезная информация. Edited October 29, 2015 by GPCracker 4 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted October 30, 2015 Share Posted October 30, 2015 (edited) Запилил таки гайдец. Оформить тему вряд ли, ибо все на инглише и в комментариях к коду, но так оно ИМХО понятнее. Перепечатывать в тему долго и муторно, поэтому просто выкладываю архивчик с файлами. На вопрос - а где гайд - еще раз скажу - в комментариях к коду. Там два файла со скриптами, as и py, флеш-проект fla и пример собранной флешки. Питон тестил через отладчик. Что касаемо варианта с FlashDevelop - я в нем вообще не особо умею, да и думаю грамотные люди разберутся что и как надо поменять. У меня и так вариантов много получилось. Что касаемо картохиных скриптов - их там НЕТ. Убрал. Их берете (нужные вам классы) из декомпильнутой battle.swf. Они могут меняться со временем, ибо у картофана нет ничего стабильного. Чем декомпилить - в другую тему, есть на этом форуме гайды. Я сотником работал, с AS2 флешками вполне спокойно справляется. Для AS3 нужно брать что-то помощнее типа JPEXS. Учитывайте выходную версию файлов, ибо ваш флеш может из попросту несхавать. Еще раз скажу - внимательно читайте комментарии. Не нужно тупо копировать код - 99% что он у вас работать не будет. Постарайтесь прочитать и понять что там написано. Там вобщем-то подробно и популярно написано, что и для чего надо и как оно работает. Для кого-то из новичков наверняка потребуется переводчик, опытные думаю и сами прочитают. Хотя новичкам сильно не советую лезть в это дело, лучше потренируйтесь на чем-то более простом и одноязычном. Ибо отладка взаимодействия флеша и питона - одна из самых сложных и муторных вещей в этом процессе, ибо логов практически нет, и если вы накосячили, система вам ничего не подскажет, в отличие от питона, который и трейс даст, и ошибку распишет. Тут если краш не словили, считайте повезло. Для этой темы вам как минимум понадобятся знание Python на уровне "могу написать что хочу, пусть и костылями, и понимаю что написали другие" и не меньший уровень с ActionScript. Разберитесь с языками отдельно, перед тем как лезть в этот кросс-интерфейс. Отладчика тут нет! Я все это пишу потому, что сам немало потратил времени на понимание всего этого. Это не самая простая вещь даже в плане логики, не говоря уже об отладке. При отладке того же DAAPI (в особенности из AS в Python) клиент вылетал без объяснения причин не раз и не два. И тут далеко не все очевидно и понятно. И далеко не все так стабильно как хотелось бы. Ну думаю все поняли, с чем придется иметь дело, поэтому выкладываю сами файлы. Flash Interaction.zip Edited May 21, 2018 by GPCracker Удален дубликат файла 5 @ Quote Link to comment Short link Share on other sites More sharing options...
Tester Posted November 3, 2015 Share Posted November 3, 2015 Запилил таки гайдец. Flash Interaction.zip GPCracker, громадное, искреннее спасибо. Сижу разбираюсь, изучаю понемногу. Благо есть от чего отталкиваться уже. По первому способу все заработало буквально с первого раза. Пока с ним работаю. На втором застопорился с ошибкой. Пока не разбирался детально, отложил изучение второго способа на потом. Единственное, что увидел, так что g_appLoader.getDefBattleApp() возвращает None. Соответственно питон ругается на отсутствие атрибута getRoot у None и флешку не грузит..... А ты сам какой способ используешь, первый? P.S. И выводить подсказки (как на панели снарядов например) можно будет в обоих случаях? @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted November 5, 2015 Share Posted November 5, 2015 Единственное, что увидел, так что g_appLoader.getDefBattleApp() возвращает None.Потому что это запрос боевого интерфейса, а точнее его питоновской части. Запусти реплей, поставь на паузу и тести с отладчика, например с того же Ориона. В ангаре понятное дело ты и будешь получать None. А ты сам какой способ используешь, первый?Я не использую никакой способ, я просто разобрался в свое время во всей этой шляпе и запилил гайдец. Там в комментариях написано что, где и как лучше юзать. Там комментов в несколько раз больше чем кода. Читай, поймешь что и зачем. P.S. И выводить подсказки (как на панели снарядов например) можно будет в обоих случаях?Работа флешки не зависит от способа ее загрузки. Боевой интерфейс предпочтительно грузить как UI, корневые флешки больше подходят для кросс-интерфеса (ангар+боевой), к примеру что-то типа мессенджера или чего-то в этом роде. В комментах там все это прописано. Что, где, зачем и как, что и почему от какого класса наследуется и т.д. Ангарный интерфейс можно собрать унаследовав нужные классы, если тебе не нужно окно, можно просто заюзать не window класс, а корневой UI, что-то типа daapiModule или чего-то в этом духе. Копайте код уже самостоятельно, базу я вам скинул. Хотя может потом еще чего интересного кину. Времени пока немного, но есть кое-какие мысли по части использования AS3 вместо AS2 в боевом интерфейсе, надо будет проверить что и как. Найду чего интересного - скину. @ Quote Link to comment Short link Share on other sites More sharing options...
Polar Fox Posted November 6, 2015 Share Posted November 6, 2015 ...надо перетерпеть AS2 =( Можно подумать что AS3 решения с фиалками. Там хватает как плюсов, так и минусов. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted November 6, 2015 Share Posted November 6, 2015 Можно подумать что AS3 решения с фиалками. Там хватает как плюсов, так и минусов. Я заметил только плюсы) @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted November 6, 2015 Share Posted November 6, 2015 Я заметил только плюсы)+1 Как минимум наличие класса документа снимает необходимость перемещать DAAPI на другие объекты. @ Quote Link to comment Short link Share on other sites More sharing options...
Polar Fox Posted November 6, 2015 Share Posted November 6, 2015 Я заметил только плюсы) +1 Как минимум наличие класса документа снимает необходимость перемещать DAAPI на другие объекты. Так, стоп! Мы говорим о сферическом AS3 в вкууме, или его конкретной реализации в танкаче? Там везде хватает говнеца, но AS3 ничем не лучше для реализации того что есть. @ Quote Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted November 11, 2015 Share Posted November 11, 2015 Обновил свой пост про Awesomium - http://www.koreanrandom.com/forum/topic/25477-/?p=279921 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Vampire_BY Posted December 5, 2015 Share Posted December 5, 2015 Обновил свой пост про Awesomium - http://www.koreanrandom.com/forum/topic/25477-/?p=279921 Очень круто. Избавлюсь наконец-то от AS. Если я не ошибаюсь для того что бы добавить в форму отступ с низу надо в настройки формы прописать useBottomBtns Пример: browserID = yield game_control.g_instance.browser.load(_url, _title, showActionBtn=False, useBottomBtns=true, browserSize=_browserSize) p.s По чему то выдает ошибку. Есть у кого идеи по этому поводу? @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted December 5, 2015 Share Posted December 5, 2015 p.s По чему то выдает ошибку. Есть у кого идеи по этому поводу?А документацию на yield читал? Это что-то типа return для функции-генератора. Плюс до кучи statement. Это синтаксическая ошибка инфа 100%. @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.