#flash #actionscript-2 #ads #specs
#flash #actionscript-2 #реклама #технические характеристики
Вопрос:
В основном в своей работе я занимаюсь flash-баннерами. Часто я использую MediaMind или DoubleClick, однако, очевидно, что бывают случаи, когда мне нужно разработать рекламу в соответствии с требованиями определенных издателей, таких как NineMSN и Yahoo!
У каждого из них разные спецификации для своего «clickTag». clickTag — это, по сути, просто имя переменной, которая анализируется во flashvars и содержит URL-адрес перехода, когда люди нажимают на рекламу.
Вот некоторые из них, которые уже готовы:
clickTag
clickTAG
_root.clickTag
_level0.clickTag
И любая комбинация из вышеперечисленных (т. Е. другой корпус и т.д.).
Я решил, что в этом _root
и _level0
нет необходимости, поэтому я их удалил. Затем один из издателей взорвал меня, сказав, что ярлык был неправильным (потому что я удалил _root
спереди). Она использовала какой-то онлайн-инструмент, который позволял им просматривать actionscript, примененный к кнопке, на самом деле они не тестировали рекламу в своей системе, чтобы увидеть, работает ли она.
Итак, вопрос 1: я почти уверен, что _root.var
, _level0.var
и var
— это одно и то же (очевидно, из _root
/ основной временной шкалы). Если, возможно, это не может быть проанализировано через flashvars таким образом, чтобы переменная была доступна только через _level0
или _root
(вы не можете этого сделать, насколько я знаю).
Вопрос 2: Еще одна вещь, на которую я обратил внимание, заключалась в применении клика на временной шкале, а не непосредственно к самой кнопке (я ненавижу размещать какой-либо код непосредственно на объекты).). Вот так:
btn.onRelease = function():Void
{
getURL(clickTag, "_blank");
}
Вместо того, чтобы это помещалось на саму кнопку:
on(release)
{
getURL(clickTag, "_blank");
}
Я тоже не понимаю, как здесь может быть разница, или она есть?
Мой последний вопрос таков: я трачу час на создание 12 копий объявлений 3 разных размеров в двух разных стилях, чтобы применить соответствующий ярлык к каждому из баннеров для отправки напрямую издателям. Почему я не могу просто создать один подобный супер-клик-тег?
var clicktags:Array = [clickTag, clickTAG, uncommonClickTag];
btn.onRelease = function():Void
{
var i:Number = 0;
for(i; i<clicktags.length; i )
{
var s:String = clicktags[i];
if(s != undefined)
{
getURL(s, "_blank");
break;
}
}
}
Ответ №1:
Вопрос 1: Вы совершенно правы, а ваша коллега-издатель ошибается, однако она (работает на) босса и, вероятно, не обладает пониманием, необходимым для принятия вашего решения. Для нее безопаснее запустить баннер через какой-нибудь непрозрачный инструмент и получить одобрение, в то время как просить своего босса принять ваши идеально оформленные «нарушения» определенно «раскачивает лодку».
Кроме того, можете ли вы быть абсолютно уверены, что ваш баннер не будет загружен в другой swf (нарушение _rootless кода)? Возможно, это маловероятно, но если что-то может пойти не так…
И, наконец, вопрос 3 делает все это спорным, как вы увидите. Да, вы действительно можете сделать что-то вроде вашего фрагмента кода, но вам придется использовать строки для имен flashvar и выполнить неопределенный тест для значения тега, полученного из _root[flashVarNameString], вот так:
var clicktags:Array = ["clickTag", "clickTAG", "uncommonClickTag"];
btn.onRelease = function():Void
{
var i:Number;
for(i; i<clicktags.length; i )
{
var s:String = clicktags[i];
var tagVal:String = _root[s];
if(tagVal != undefined)
{
getURL(s, "_blank");
break;
}
}
}
Комментарии:
1. Мне нравится, что вы учли, что баннер мог быть помещен в другой SWF-файл. Понятия не имею, почему я об этом не подумал. Если это так; тогда я должен быть в состоянии просто всегда использовать _root, как в вашем примере. Спасибо за это.
2. PS Я не могу назначить награду в течение 6 часов, поэтому я сделаю это, когда смогу.
Ответ №2:
кроме того, ваш последний фрагмент кода, в котором выполняется поиск по разным тегам, также может не дать бедной девушке добро от ее инструмента проверки баннеров (говорю по опыту! ;o) ).
Ответ №3:
По моему опыту, следующий фрагмент работает для нескольких переменных названий клик-тегов и намного короче и проще:
btn.onRelease = function():Void
{
var url = (_root.ClickTag || _root.clickTag || _root.clicktag || _root.clickTAG || _root.ClickTAG);
if (url.substr(0,4) == "http") {
getURL(url, "_blank");
}
}
Тот же код можно использовать для экземпляра кнопки:
on (release)
{
var url = (_root.ClickTag || _root.clickTag || _root.clicktag || _root.clickTAG || _root.ClickTAG);
if (url.substr(0,4) == "http") {
getURL(url, "_blank");
}
}
Я никогда не рассказываю об этом своим клиентам или руководителям проектов, просто потому, что они не поймут.