Скринкаст Realaxy Editor по работе с XML

3 views
Skip to first unread message

Евгений Потапенко

unread,
Dec 16, 2009, 8:10:05 AM12/16/09
to ruF...@googlegroups.com

Записал сегодня скринкаст - 
Ден Иванов выложил это у себя на vimeo


После просмотра скринкаста у нас возник небольшой спор по поводу экранирования символов в фирурных скобках.
Я сделал так что можно вводить символ кавычки без экранирования (+ "hello" а не + "hello"), а есть мнение что нужно вводить символы так как это в AS по умолчанию.
Мне думается что все же необходимость экранирование как это делается в тексте вещь неудобная и трудозатратная. Пусть сам редактор это делает когда будет генерить в текст.
Подумали, что сделаем специальную галочку в настройках для людей желающих .... в общем экранировать. А по умолчанию автоэкранирование будет включено.
Очень хотелось бы услышать от комьюнити мнение о реализации xml в RE в целом  и про подход к экранированию символов в фирурных скобках.


Евгений Потапенко



Roma Oskolkov

unread,
Dec 16, 2009, 8:44:48 AM12/16/09
to ruf...@googlegroups.com
Очень круто ^)
Именно о таком редакторе xml мечтаю не один год.

Кстати, заметил что всё больше флешеров работают на маке.
А как на нем работается? Неудобно же наверное
Denwer не запустишь, FlashDevelop не поставишь.
Или постоянно приходится прыгать на винду через parallels?

Flop Serg

unread,
Dec 16, 2009, 8:57:56 AM12/16/09
to ruflash
Когда пишешь экспрешшен открывающего нода - закрывающий не меняется (3:17 , 6:45)
если не заметил получишь невалидную   XML на выходе

Denis Kolyako

unread,
Dec 16, 2009, 8:58:18 AM12/16/09
to ruf...@googlegroups.com

> А как на нем работается? Неудобно же наверное
> Denwer не запустишь, FlashDevelop не поставишь.

Зачем Denwer, когда веб-сервер прямо в систему встроен?
Это же никсы всё-таки :)

А FlashDevelop на любителя. Я не люблю.

> Или постоянно приходится прыгать на винду через parallels?


Упаси боже, максимум CrossOver и то почти никогда.


Денис Коляко
______________________________________________________________________
e...@timezero.ru | http://etcs.ru/ | http://timezero.com/




Евгений Потапенко

unread,
Dec 16, 2009, 9:00:34 AM12/16/09
to ruf...@googlegroups.com

> Кстати, заметил что всё больше флешеров работают на маке.
> А как на нем работается? Неудобно же наверное
> Denwer не запустишь, FlashDevelop не поставишь.

а зачем мне FlashDevelop? ;)
а denwer ну не знаю - MAMP? http://www.mamp.info/en/index.html
и для девелопер есть mac-port - "sudo port install tomcat6" (mysql, php5....) :)
есть мноооого софта под мак. (которого может быть нет под винду)
мне хватает. даже чересчур.

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

Евгений Потапенко

unread,
Dec 16, 2009, 9:05:34 AM12/16/09
to ruf...@googlegroups.com

> Когда пишешь экспрешшен открывающего нода - закрывающий не меняется (3:17 , 6:45)
> если не заметил получишь невалидную XML на выходе

для компилятора такое поведение возможно - вполне валидное - поведение когда закрывающий тег будет сразу "зеркалится" с открывающим и наоборот уже мы
обсуждали сегодня утром. возможно кому-то нужно два разных экспрешена использовать.
<{t = computeName(value)}>hello</{t}>
ошибка будет только run-time, а не при компиляции. поэтому не могу запретить пользователю вводить разные экспрешены.
решили что такие "вкусняшки" будут добавлены в виде языкового расширения (xml-сахара)

Flop Serg

unread,
Dec 16, 2009, 9:19:39 AM12/16/09
to ruflash
ошибка будет только run-time, а не при компиляции. поэтому не могу запретить пользователю вводить разные экспрешены.


вроде все красиво - привык к волшебству, пишешь большую MXL  на 3 экрана
потом вдруг взумал что надо экспрешшен ввел оно красиво скомпилилось а при запуске - бабах!
ну хоть бы ворнинг какой или там выделить незеркальные тэги

у меня в еклипсе самый прEмEтивный плагин для XML   он и то ругается что не валидная и красным подчеркивает

Flop Serg

unread,
Dec 16, 2009, 9:27:20 AM12/16/09
to ruflash
и еще пожелание - сворачивание
чтобы можно было сворачивать по ноду, и не видеть длинных простыней
функуии вижу свернуть можно, а XML - нет

Евгений Потапенко

unread,
Dec 16, 2009, 9:28:39 AM12/16/09
to ruf...@googlegroups.com


> у меня в еклипсе самый прEмEтивный плагин для XML он и то ругается что не валидная и красным подчеркивает


все же спорный функционал. нужно думать. может проголосуем? я в принципе за. можно по умолчанию зеркалить.
но с возможностью изменения закрывающего нода.

кстати, когда мы допилим "мгновенную компиляцию" так же будут подсвечивать ошибки рантайм тоже
и проблема закрывающего и открывающего нода решиться сама собой.
ладно, сделаю функционал по зеркалированию. спасибо за наводку. голосование закрыто.

Евгений Потапенко

unread,
Dec 16, 2009, 9:29:09 AM12/16/09
to ruf...@googlegroups.com

> и еще пожелание - сворачивание
> чтобы можно было сворачивать по ноду, и не видеть длинных простыней
> функуии вижу свернуть можно, а XML - нет


fixed

Евгений Потапенко

unread,
Dec 16, 2009, 12:43:47 PM12/16/09
to ruf...@googlegroups.com
если есть еще пожелания по xml - то кидайте, с радостью добавлю если фича нужная.

по e4x, например, будет фича с автокомплитом имен нодов и атрибутов, плюс можно будет подцепить схему или внешний xml:

[XMLSample(path="anyXml.xml")]
public var xml:XML
[XMLSchema(path="anySchema.dtd")]
public var xml:XML;

Максим Буньков

unread,
Dec 16, 2009, 1:22:11 PM12/16/09
to ruf...@googlegroups.com
> если есть еще пожелания по xml
Жень, а дерево XML будет со списком нодов и их иерархии?
Ну чтоб кликнул на нод и курсор уже там? Или по сочетанию кнопок чтоб
это дерево вываливалось где-нить рядом, а не на задней форточке, как в
плагинах эклипса, (короче чтоб мышка отдыхала воть)?

Евгений Потапенко

unread,
Dec 16, 2009, 1:36:09 PM12/16/09
to ruf...@googlegroups.com
Типа всплывающего Outline Veiw для xml? Хорошая фича. Сделаю такой таск не будущее.
> --
> отменить подписку: ruFlash-u...@googlegroups.com
> сообщение в группу: ruF...@googlegroups.com
> страница группы: http://groups.google.com/group/ruFlash
> правила группы: http://groups.google.com/group/ruFlash/web/rules

Олег Галабурда

unread,
Dec 16, 2009, 3:34:51 PM12/16/09
to ruf...@googlegroups.com
Здрасте!

> если есть еще пожелания по xml - то кидайте, с радостью добавлю если фича
> нужная.

Автоматом оборачивать текст в <![CDATA[]]>
Какой-нибудь простой способ работы с пространствами имён в XML,
выпадающий список, что ли. Чтоб можно было легко сменить пространство
имён, к примеру, я в объявлении простанства имён меняю префикс и он бы
сразу изменился во всех узлах в этом пространстве.


--
Oleg Galaburda
http://blog.actualwave.com/
http://jsinterface.googlecode.com/
http://guibuilder.org/

Ivan Dembicki

unread,
Dec 16, 2009, 4:34:13 PM12/16/09
to ruf...@googlegroups.com
Hello Олег,


> Автоматом оборачивать текст в <![CDATA[]]>

- уже есть

> Какой-нибудь простой способ работы с пространствами имён в XML,

- рефакторинг пространств имен уже есть.


--
iv
http://www.bezier.ru
http://bezier.googlecode.com

Daniil Tutubalin

unread,
Dec 17, 2009, 10:23:19 AM12/17/09
to ruf...@googlegroups.com
> <{t = computeName(value)}>hello</{t}>

Такие вот оптимизации должен делать компилятор, а не программист.
В коде открывающий и закрывающий теги всегда должны быть равны.

Правда, это всё равно не спасёт от таких приколов:
<{"a"+Math.random()}>Бдыщь!</{"a"+Math.random()}>

но спасти программера от таких ошибок будет сложнее.

Евгений Потапенко

unread,
Dec 17, 2009, 10:34:04 AM12/17/09
to ruf...@googlegroups.com


>> <{t = computeName(value)}>hello</{t}>
>
> Такие вот оптимизации должен делать компилятор, а не программист.
> В коде открывающий и закрывающий теги всегда должны быть равны.

договорились, делаю жесткую синхронизацию экспрешенов.

Олег Галабурда

unread,
Dec 17, 2009, 10:43:06 AM12/17/09
to ruf...@googlegroups.com
> договорились, делаю жесткую синхронизацию экспрешенов.

А можно ли сделать связывание внешнего XML-файла с полем в AS классе?
К примеру, при создании поля типа XML появляется ссылка Browse

protected var _structure:XML = Browse...

Юзер выбирает файл и при компиляции этот файл внедряется в класс как
будто он был описан там.
protected var _structure:XML = <root>....

Плюс можно попутно codepage самого XML конвертить в UTF-8.

Евгений Потапенко

unread,
Dec 17, 2009, 10:55:13 AM12/17/09
to ruf...@googlegroups.com
> можно ли сделать связывание внешнего XML-файла с полем в AS классе?
> К примеру, при создании поля типа XML появляется ссылка Browse
>
> protected var _structure:XML = Browse...
>
> Юзер выбирает файл и при компиляции этот файл внедряется в класс как
> будто он был описан там.
> protected var _structure:XML = <root>....


думаю лучше сделать специальную аннотацию XmlEmbed

[XmlEmbed(path="anyXml.xml")]
private var xml:XML;

и все будет работать как будто xml inline - с автокомплитом итд.
хорошая фича - добавляю.

foreground

unread,
Dec 17, 2009, 11:06:56 AM12/17/09
to ruf...@googlegroups.com
Мне показалось что было бы уместным оставить в строке:
<{xmlName} {attributeName}="{value}">
двойные кавычки.
И еще в строке:
<anyAnother>text</anyAnother>
вместо текста может быть expression?
И валидация не лишней была бы конечно.

Daniil Tutubalin

unread,
Dec 17, 2009, 11:40:12 AM12/17/09
to ruf...@googlegroups.com
А мне нравится вариант с var xml = Browse...
Правда, чтобы была возможность выбрать другой файл или свернуть
содержимое (т.е. чтобы вместо портянки просто показывалось что-то типа
файл такой-то).
Ну и переход по Ctrl+Click на содержимое файла.

foreground

unread,
Dec 17, 2009, 11:50:28 AM12/17/09
to ruf...@googlegroups.com
> Daniil Tutubalin <tutu...@gmail.com> написал:

> А мне нравится вариант с var xml = Browse...
Так тут же экспрешшн. Вы его в другом файле хотите увидеть?

Олег Галабурда

unread,
Dec 17, 2009, 12:29:54 PM12/17/09
to ruf...@googlegroups.com
Здрасте!

> [XmlEmbed(path="anyXml.xml")]
> private var xml:XML;

Будет ли контекстная подсказка для "стандартных" мета-тегов?
А в этом, к примеру, при внесении значения для path было бы неплохо
указать файл из меню выбора файла, а не вручную вбивать или
копипастить.

Ivan Dembicki

unread,
Dec 17, 2009, 12:39:04 PM12/17/09
to ruf...@googlegroups.com
Hello Олег,

> Будет ли контекстная подсказка для "стандартных" мета-тегов?

- уже есть.

> А в этом, к примеру, при внесении значения для path было бы неплохо
> указать файл из меню выбора файла, а не вручную вбивать или
> копипастить.

- будет и подсказка и валидация.

Евгений Потапенко

unread,
Dec 17, 2009, 12:57:27 PM12/17/09
to ruf...@googlegroups.com

> А мне нравится вариант с var xml = Browse...

я думаю если есть выбор декларативно или императивно, то лучше делать декларативно.
декларативный подход более очевиден.
во всяком случае в базовой языковой поддержке
потом ничто не мешает добавить тонны подсказок и инструментов в виде языковых расширений.
browse можно добавить к любому артефакту проекта xml, swf и так далее.
хоть для аннотации хоть для выражения.

Яски

unread,
Dec 17, 2009, 6:37:01 PM12/17/09
to ruFlash
Чтобы в диалоге файл выбрать нужно за мышкой тянуться.
Мне нравится такой вариант:
вводишь путь и по мере ввода подставляются варианты, можно и по
расширению фильтровать.

Roma Oskolkov

unread,
Dec 18, 2009, 6:41:57 PM12/18/09
to ruf...@googlegroups.com
По поводу вашего замечательного редактора.
Есть еще одно пожелание — более удобная работа с очищением памяти. Чтоб меньше лишней работы пальцами.
К примеру, обычно мой стандартный дисплэй обджект содержит подобное добро:


        private function init():void
        {
            addEventListener(Event.ADDED_TO_STAGE, initialize);
        }
       
      
        private function initialize(event:Event = null):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, initialize);
            addEventListener(Event.REMOVED_FROM_STAGE, destroy);
         }

private function destroy(event:Event = null):void
        {
            try
            {
                // и вот тут вот приходится обычно руками все члены  класса приравнивать к null. Что достаточно нудно.
Если бы кто-то это делал за человека было бы приятнее)

              
               
                removeEventListener(Event.REMOVED_FROM_STAGE, destroy);
               
                while (numChildren > 0)
                {
                    removeChildAt(0);
                }
            }
            catch(error:Error)
            {
                trace("[Sprite]:[destroy()]: ERROR: " + error);
            }
            finally
            {
           
            }
        }

Евгений Потапенко

unread,
Dec 19, 2009, 5:07:25 AM12/19/09
to ruf...@googlegroups.com
у нас будет специальный язык для подобных миксингов классов - Stereotype Language
он позволит подмешивать функциональность в классы декларативно, а так же добавлять некий код.
Например 

[Steriotype(Singleton)]
class AnyClass
{
}

автоматом добавит к классу "невидимый" статический метод getInstance() и запретит его инстанцировать  в редакторе и run-time. 
Все это сразу будет автокомплититься. 
так же вы сможете создать свой стериотип для обнуления полей и удаления детей. и миксить его к любому дисплей обжекту.


Евгений Потапенко



19.12.2009, в 0:41, Roma Oskolkov написал(а):

Олег Галабурда

unread,
Dec 19, 2009, 5:50:29 AM12/19/09
to ruf...@googlegroups.com
Здрасте!

> так же вы сможете создать свой стериотип для обнуления полей и удаления
> детей. и миксить его к любому дисплей обжекту.

Очень бы хотелось
- в любых классах иметь возможность указать методы которые должны
быть переопределены в детях, чтоб при создании нового дочернего
класса, в нём сразу были созданы шаблоны этих методов. Ключевое слово
abstract?
- при добавлении интерфейса к существующему классу, можно было
добавить шаблоны на все нереализованные методы.

PS: Избыточное цитирование не в правилах группы.

Roma Oskolkov

unread,
Dec 19, 2009, 6:54:54 AM12/19/09
to ruf...@googlegroups.com
«...у нас будет специальный язык для подобных миксингов классов - Stereotype Language...»

Блеск)
Тогда всего два вопроса — когда можно брать и сколько стоит?)

Евгений Потапенко

unread,
Dec 19, 2009, 11:12:48 AM12/19/09
to ruf...@googlegroups.com

> - при добавлении интерфейса к существующему классу, можно было
> добавить шаблоны на все нереализованные методы.


уже есть - если добавить интерфейс и методы не реализованы он подсвечивается красным и есть квикфикс который добавляет методы

Евгений Потапенко

unread,
Dec 19, 2009, 11:15:30 AM12/19/09
to ruf...@googlegroups.com


> быть переопределены в детях, чтоб при создании нового дочернего
> класса, в нём сразу были созданы шаблоны этих методов. Ключевое слово
> abstract?

будет, но как языковое расширение


Евгений Потапенко

unread,
Dec 19, 2009, 11:16:15 AM12/19/09
to ruf...@googlegroups.com


> Тогда всего два вопроса — когда можно брать и сколько стоит?)

дата релиза намечана на март
стоить будет - 50 евро

Alexey Taran

unread,
Dec 19, 2009, 12:19:20 PM12/19/09
to ruf...@googlegroups.com
>дата релиза намечана на март

Будет ли public beta? Будет ли возможность пощупать до релиза?

Ivan Dembicki

unread,
Dec 19, 2009, 3:25:38 PM12/19/09
to ruf...@googlegroups.com
Hello Alexey,


> Будет ли public beta? Будет ли возможность пощупать до релиза?

- конечно.
Дата первой паблик беты назначена на август. Была. Потом несколько раз
сместилась :)
Последня назначенная дата ориетнировочно на середину января. Но
учитывая тенденции к смещениям дат, я бы не поставил много на это.

Ну и будет триал чтобы пощупать.

Reply all
Reply to author
Forward
0 new messages