PDA

Просмотр полной версии : Метатеги в качестве хелперов


in4core
22.11.2012, 20:06
Интересная фишка ( я лично не знал ). Что можно юзать метатгеи ( любые , свои ) - в качестве например подсказок.

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

Интересно, только как оно интерпретируется компилятором, и что будет при декомпиле ?

Пример

[Extended_Module]
private var _module:SomeModule;


...
[Extended_init]
this._module.define();
this._module.x = 100;



Весело вообщем)

tsarapkabel
23.11.2012, 14:45
( подключ доп и соотв вообщем )
Где подсказки? ASDoc?

in4core
23.11.2012, 15:42
ПРичем здесь ASdoc ? про метатеги разговор виду, а не про документацию. Просто привел один из возможных примеров использования метатегов не по назначению ) Интересно вот только как в декомпиле он будет смотреться

udaaff
23.11.2012, 15:56
Так а в чём профит, мне что-то не ясно?

incvizitor
23.11.2012, 15:57
Интересно, только как оно интерпретируется компилятором

никак :)

Интересно вот только как в декомпиле он будет смотреться

то же самое :)

Inet_PC
23.11.2012, 16:08
[Extended_Module]
private var _module:SomeModule;

...
[Extended_init]
this._module.define();
this._module.x = 100;

Вы мягко говоря не в теме (http://www.flasher.ru/forum/blog.php?b=63). Тег Extended_init бесмысленен (практически) ибо describeType не возвращает информацию о приватных полях. Ставить тег после переменной нельзя., как и нет тегов в коде (ибо это просто массив). Возможно вы перепутали с условной компиляцией (http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html):

CONFIG::Extended_Module{
private var _module:SomeModule;
}
...
CONFIG::Extended_init{
this._module.define();
this._module.x = 100;
}

В таком случае если Extended_init false, то в итоговой флешке этих блоков не будет.

in4core
23.11.2012, 16:36
Ставить тег после переменной нельзя Можно, попробуй как я описал. у меня FD компилит на ура. И там не после переменной написано, а на след строке

ибо это просто массив Это не массив, сравните разницу :
(пишем в cinit )
[1,2,3,4,5] // массив без доступа к нему
["1","hello"] // аналогично
[MyTag] // не массив, а тег - ведь ни ключевого слова, ни какого либо значения с названием MyTag не сущ, и поидее в этом случае должна быть ошибка, если бы бы ла интерпритация как массива

Добавлено через 1 минуту
Так а в чём профит, мне что-то не ясно? Ну чисто как подсказка например, иного пременения нет. А о приминениях указал Inet_PC по блогу wwxwv

Добавлено через 2 минуты
Возможно вы перепутали с условной компиляцией: Нет нет, я о другом :)

Inet_PC
23.11.2012, 16:53
Можно, попробуй как я описал. у меня FD компилит на ура. И там не после переменной написано, а на след строке Это потому что он относится не к ней, а к чему то ниже.
Это не массив, сравните разницу :
(пишем в cinit ) Я же написал, что в коде:
package
{
import flash.display.Sprite;
import flash.utils.describeType;

public class testtag extends Sprite
{
public function testtag()
{
[MyTag]
var m:Object = {};
trace(describeType(m).toXMLString());// <type name="Object" isDynamic="true" isFinal="false" isStatic="false"/>
trace(describeType(new MyClass()).toXMLString());
// <type name="testtag.as$0::MyClass" base="Object" isDynamic="false" isFinal="false" isStatic="false">
// <extendsClass type="Object"/>
// <metadata name="MyTag"/>
// </type>
}
}
}
[MyTag]
class MyClass{}
Возможно это и не массив, но бесполезно это точно.

in4core
23.11.2012, 18:51
Ну почему же сразу бесполезно :) Вот интересно, как ты будешь действовать ( к метатегам например не относится ) в случае, если тебе нужно написать 10 однотипных игр, с разными скинами, причем только 2 из них имеют ДОП функционал ( модули ) , который может(будет) взаимодействовать с разными частями приложения. - Все бы хорошо, если мы первым делом делаем эти 8 одинаковых игр, не зная о существовании этих 2х . Но ситуация омрачается, если все наоборот , сначала - делаем ИГРУ с модулями, а только потом штампуем однотипные БЕЗ модуля ( тоесть ситуация, когда мы не знаем какие будут в итоге однотипки, но знаем какая будет в итоге С МОДУЛЕМ)

Котяра
23.11.2012, 20:48
А в чём всё-таки профит?

terbooter
23.11.2012, 22:53
Ну почему же сразу бесполезно :) Вот интересно, как ты будешь действовать ( к метатегам например не относится ) в случае, если тебе нужно написать 10 однотипных игр, с разными скинами, причем только 2 из них имеют ДОП функционал ( модули ) , который может(будет) взаимодействовать с разными частями приложения. - Все бы хорошо, если мы первым делом делаем эти 8 одинаковых игр, не зная о существовании этих 2х . Но ситуация омрачается, если все наоборот , сначала - делаем ИГРУ с модулями, а только потом штампуем однотипные БЕЗ модуля ( тоесть ситуация, когда мы не знаем какие будут в итоге однотипки, но знаем какая будет в итоге С МОДУЛЕМ)

Все-таки, при чем здесь пользовательские метатэги?
Если есть игра с модулями, а нужно получить игру без модулей, то нужно просто отключить модули. Не? :umnik2:

in4core
24.11.2012, 01:01
Все-таки, при чем здесь пользовательские метатэги? Это был отдельный вопрос, не относящийся к этому. Но про отключить - модули мне нравится! Помоему гениально, и где вас таких набирают...
Под отключить понимается - НАЙТИ ВСЕ ВСЕ и ВСЕ места, где используется модуль в приложении, закомментировать, оборвать связи и т.п. Или по твоему модуль это типа addChild(module) еее профит!

Котяра
24.11.2012, 01:30
Бррр. ничего не понимаю.. где меня такого берут.
Т.е. метатэги ты предлагаешь использовать просто в качестве комментариев к коду?
Что за бред?
Чем тебе // не угодил ?

in4core
24.11.2012, 02:54
Бррр. ничего не понимаю.. где меня такого берут.
Т.е. метатэги ты предлагаешь использовать просто в качестве комментариев к коду?
Что за бред?
Чем тебе // не угодил ? Да причем тут метатеги, я товарищу отвечал про другое совсем уже. Ну , а на данный момент да я предположил, что один из возможных вариантов - метатег-комментарий, я не говорю что это профит , просто как отдельный вариант

Котяра
24.11.2012, 04:41
Отдельный вариант от чего?
Как это причём тут метатеги? Я спрашиваю по существу поста, а не комментариев к.

Psycho Tiger
26.11.2012, 09:39
Котяра, ты не шаришь. Оставил коммент – ты нуб и не тру. А метатеги – признак доминантного самца.

Инфокора, а почему ты в блогах задаешь вопросы, а здесь в неправильном разделе рассказываешь, что нашел? :)

Astraport
26.11.2012, 10:26
Этот метод вдохновил меня на создание целого нового направления в написании комментариев.
Очень круто и визуально красиво:

var obj:Object = new Object();
obj.todo = 'Дописать этот чертов класс!';
obj.tothink = 'Как дописать этот класс?';
obj.tobuy= 'Заказать написание этого класса';

Или даже так:

var tf:TextField = new TextField();
this.addChild(tf);
tf.text = 'Дописать этот чертов класс!';
tf.visible = false;

Пишу письмо в ECMA чтобы приняли как стандарт.

udaaff
26.11.2012, 11:39
{ ;;;;;;;;;;;;;;;;;;;;;;;;;;;; }
{ ;; "САМЫЙ КРУТОЙ КОММЕНТ" ;; }
{ ;;;;;;;;;;;;;;;;;;;;;;;;;;;; }

terbooter
26.11.2012, 12:06
Если вы модуль отключаете коментами в куче классов, то, имхо, это не модуль.
Это макароны хардкоженые.