Цитата
Поменять глубины объектов теперь на AS3 не так просто, а когда дело касается вставить объект на определенную глубину - то вообще швах.
Здесь согласен. Новая система глубин (индексов) сильно отличается от системы в AS1/AS2. Я не давно столкнулся с такой проблемой: Положил мувик на определённый индекс, а затем положил другой мувик на этот же индекс. Я думал, что новый мувик заменит старый мувик на этом индексе, но оказалось не так, старый мувик просто смещается на другой индекс и вовсе не удаляется. В AS1/AS2 содержимое глубины заменялось на новое.
chingachgoog
25.10.2010 - 14:09
Цитата(HaWK @ 25.10.2010 - 14:45)

См. свойство contentLoaderInfo. Оно принадлежит классу Loader. Так что получаемые события можно сказать за его пределы не выходят.
Ну кто бы мог подумать, что все "так просто"?
Свойство contentLoaderInfo указывает на объект ДРУГОГО класса. Таких свойств моно пачками насоздавать и все они будут на что-то указывать. Вот ведь какое удобство )))
Цитата(HaWK @ 25.10.2010 - 14:45)

Просто написать лишнюю строчку для "Senior Programmer-а" оказывается слишком трудной задачей
А с AS3 всю дорогу так: там "лишняя строчка", сям "лишняя строчка" - и в результате код минимум в два раза больше, чем в AS1 (((
NB!Открываем нетленку божества всех AS3-программеров и читаем на с. 280 заголовок раздела с описываемой ситуацией:
НЕДОСТАТОК проверки типов в событийной модели языка AS3. Недостаток! Правда Мук все списал не на идиотизм разделения метода и события, а на компилятор, которой его сирого об этом не предупредил (Мук ведь распинался до этого, какой заботливый компилятор Адоб создала)
Цитата
Вот ведь какое удобство )))
Кому как. "Плохому танцору......" дальше сам знаешь
Цитата
А с AS3 всю дорогу так: там "лишняя строчка", сям "лишняя строчка" - и в результате код минимум в два раза больше, чем в AS1 (((
Senior Programmer, умей оптимизировать свой код, чтобы такого не случалось.
Цитата
Правда Мук все списал не на идиотизм разделения метода и события
Думаешь AS3 не развалился бы если бы событийная модель была такая:
объект.событие = функция { ... }
?
chingachgoog
25.10.2010 - 15:16
Цитата(HaWK @ 25.10.2010 - 15:24)

Senior Programmer, умей оптимизировать свой код, чтобы такого не случалось.
Ну понятно, мистер Ли неумеха (не чета HaWK-у самой собой), что мистер Ли такое написал:
...While it is true that ActionScript 3.0 requires a couple more lines of code...Эх, неумеет мистер Ли свой код оптимизировать, все у него кода в два раза больше выходит на AS3...
Цитата(HaWK @ 25.10.2010 - 15:24)

Думаешь AS3 не развалился бы если бы событийная модель была такая:
объект.событие = функция { ... }
?
ECMAScript (JavaScript, AS1) именно так событийную модель и описывает. AS3 типа по образу и подобию ECMAScript создан.
Цитата
AS3 типа по образу и подобию ECMAScript создан.
Ну "типа" в AS1 модель такая:
объект.событие = функция { ... }А в AS3 такая:
объект.addEventListener(событие, обработчик);
function обработчик(типПередаваемогоСобытия) { ... }
Очень уж они похожи. А оба базируются на ECMAScript.
chingachgoog
25.10.2010 - 15:49
Цитата(HaWK @ 25.10.2010 - 16:25)

Ну "типа" в AS1 модель такая:
объект.событие = функция { ... }
А в AS3 такая:
объект.addEventListener(событие, обработчик);
function обработчик(типПередаваемогоСобытия) { ... }
Очень уж они похожи. А оба базируются на ECMAScript.
Забавно. "Оба очень похожи". И "оба базируются на ECMAScript".
Хорошо. Похожи прям некуда и базируются. Не спорю.
Но тут же HaWK задается вопросом:
Цитата(HaWK)
AS3 не развалился бы если бы событийная модель была такая:
объект.событие = функция { ... }
?
Т.е. тут же рядом этот же HaWK показывает, что непохожи вплоть до разваливания языка...
Раздвоение сознания налицо. Шизофрения наиболее опасна как раз для юного возраста в коем прибывает HaWK...
Цитата
Очень уж они похожи
Для людей, умственно-отсталых - фраза означает "НЕ ПОХОЖИ"
Цитата
Раздвоение сознания налицо. Шизофрения наиболее опасна как раз для юного возраста в коем прибывает HaWK...
Наш Senior Programmer, который ставит на аватар лого MortalCombat говорит о моём юном возрасте, не смешно ли?

На специализированном форуме, где главная тема это его специализация, участник (в лице chingachgoog-а) говорит о шизофрении. Ты уже сталкивался с этой болезнью, что тебя так про-пёрло? Ты наверное ещё и психиатр? Что ж советую проанализировать своё поведение, так как люди, которые хотя бы пытаются сохранить свою гордость не спорят, а уж тем более не пытаются доказать, что они умнее людей младше себя. Что ж если наш chingachgoog делает все эти действия, советую задуматься сколько лет ему самому
chingachgoog
25.10.2010 - 16:30
Ладно, не буду мальчонку добивать - а то ведь и правда не честно - психиатрия входила в мой курс предметов. Думаю, публике тут все ясно...
NB!Mortal Kombat (эх, не знают ее мальчонки - MortalCombat называют) хорошая игрушка была. Но смысл аватара не в игре. Тот кто читал Фенимора Купера поймут, почему у меня этот аватар.

(а фаны мортала еще и распознают из какого года взят аватар ))) )
Прямо ностальгия какая-то...
А вообще у нашего chingachgoog-а глисты в жопе. Он не может не удержатся, чтобы не поспорить. На форуме флэшер.ру его даже забанили. Я так понял навсегда. Я даже видел восторженные посты, после его бана. Такая монера характерна для женщин (ну это пока только подозрения

) Так что публике точно всё ясно.
Цитата
Ладно, не буду мальчонку добивать
А вот и у нашего Сениор Программера шизофрения объявилась

. То спорим, то не спорим. Определись, что ли.
PS На флешер.ру ему дали п**ды, вот он бедненький (может и бедненькая

) сюда на форум и прискакал. Чтобы хотя бы здесь показаться умным, но не получилось, какой-то "мальчонка" ему дорогу перегородил. Страх и ужас, да?
chingachgoog
25.10.2010 - 19:27
32) Автосоздание прототиповАвтозаполнение глубин показалось Адобу недостаточным и Адоб решила испоганить язык автосозданием прототипов. В AS1 прототипы можно было создавать самому. Просто и понятно:
Код
function myClass(){
this.d=100
this.onPress=function(){
trace(this + " "+this.d)
}
}
s1.__proto__=new myClass() // где s1 - обычный мувик на таймлайне(!!!) без какого-либо идентификатора в библиотеке
Тут указатель
__proto__ указывает на динамически созданный объект
prototype (из класса myClass)
Понятно, что в AS3 "забыли" про
__proto__ и такой высший пилотаж не возможен. Возьмем пример проще.
Код
MovieClip.prototype=Math
_root.createEmptyMovieClip("s2", 10)
trace(s2.PI)
А на AS3? Пшик...
Цитата
- Мне поставьте предупреждение! - кричал HaWK.
- Нет, я всеже больше хочу, поставьте мне! - перебивал его chingachgooq
- Ну пожалуйста, ради всего святого, мне! - продолжал HaWK
- Так у меня опыта больше в доставании людей! - с гордо поднятой головой говорит chingachgooq.
Это я перевожу ваши последние посты, глазами скучающего модератора (-:
Без шуток ребят, начиная с этого сообщения - еще одна попытка задеть друг друга - предупреждение. Говорим только по теме. ЗА и ПРОТИВ, никаких "шизофрений" и "глистов". Для этого есть медицинские форумы.
Цитата
trace(s2.PI)
А смысл делать такое?
Если просто нужно засунуть ПИ в класс МувиКлип (хотя зачем??), что мешает сделать такое на AS3:
Код
var s2:MovieClip = new MovieClip();
s2.PI = Math.PI;
trace(s2.PI);
Или:
Код
s2.pr = Math as Class;
trace(s2.pr.PI);
chingachgoog
26.10.2010 - 13:22
Цитата(HaWK @ 25.10.2010 - 21:48)

А смысл делать такое?
Если просто нужно засунуть ПИ в класс МувиКлип (хотя зачем??)
Не всем дано понять смысл. Хотя бы он и был определен в топике.
Есть вещи которые МОЖНО делать на AS1 и НЕЛЬЗЯ делать на AS3. И нужно знать, что можно делать, а что нельзя.
А с подходом ("а какой в этом смысл") можно и до столба докопаться: чего его здесь поставили и почему он тут стоит?
Какой смысл писать на С++, когда есть С? Или наоборот?
Композицией (открытие HaWK-а, что можно дать ссылку на внешний класс) можно заменить наследование. Какой смысл в наследовании? Все. Парадигму трех китов ООП можно закрывать.
P.S.Не стоит тут отвечать тем, кто не понял даже о чем тут идет речь.
Я понял о чём речь. Но если посмотреть с точки зрения практики зачем всё это вытворять с прототипам когда AS1 уже устарел? Менять супер класс МувиКлипа на Math и определять методы и свойства этого класса у всех образцов МувиКлипа, чтобы потом можно было их вызывать - Да, это классно. Я могу сделать новый метод у класса МувиКлип так:
Код
MovieClip.prototype.method = function() {
...
}
И теперь могу вызывать этот метод у всех МувиКлипов и радоваться.
Могу даже переопределять готовые методы. Но зачем это? Всё больше API работают с AS3, а не с AS1.
И даже если топикстартер сможет со своими прототипами построить гипер-ООП приложение куда он его сунет не понятно... Только если для себя.
Цитата
Не стоит тут отвечать тем, кто не понял даже о чем тут идет речь.
Уж точно не ты решаешь кому и где отвечать на этом форуме.
MustLive
26.10.2010 - 14:48
Ребята. Я временно закрою тему, чтобы снять накал страстей. Данная тема, как показал опыт её нахождения на форуме, весьма неоднозначна и вызывает массу споров, доходящий до холиваров на тему хорош AS3 или нет (а иногда и до межличностных разборок, чего на форуме публично делать не стоит и лучше для этого используйте ПМ).
Со временем я её снова открою, дабы все участники смогли продолжить обсуждать AS3 (и в частности его недостатки). Вы же тем временем сможете пустить свою энергию на другие темы форума и на другие свои дела. И как я уже
говорил, сторонники AS3 могут сделать отдельную тему, в которой рассказать о своём взгляде на AS3 и о причинах его любить.
chingachgoog
14.01.2011 - 15:04
33) allowDomain у LocalConnectionПомимо того, что создатели AS3 подложили свинью пользователям AS3 в виде другого синтаксиса по сравнению с этим методом у AS1, но так еще и функционал метода вышел крайне урезанным.
В AS1/AS2 можно было давать доступ по НЕПОЛНОМУ имени и вообще как угодно его проверять:
Код
lc.allowDomain = function(sendingDomain) {
// Проверяем имя sendingDomain каким угодно нам способом
return true/false // В зависимости от результата проверки
}
В AS3 этой возможности нет!
Код
allowDomain(... domains):void
Только те домены будут допущены, которые мы ЯВНО указали (или вообще ВСЕ).
chingachgoog
14.01.2011 - 15:11
34) Неоправдавшиеся надежды по поводу расшаренных объектов
Одно из старейших и замечательных свойств флеша - были расшаренные объекты (файлы). Но работать с ними весьма неудобно т.к. программных методов для этого нет вообще! Были надежды на AVM2... увы. Не оправдались.
chingachgoog
26.01.2011 - 17:54
35) Преобразование типа null к числам
До версии 7 ФП преобразовывал тип null к 0. Но это не соответствовало ECMA-262 и с версии 7 (Flash MX 2004) это дело привели к порядку - null стал выдавать NaN.
Однако создателям AS3 ECMA-262 видимо не указ ни разу и null опять преобразуется в 0.
uspechov
11.03.2011 - 18:43
Цитата(HaWK @ 25.10.2010 - 17:40)

А вообще у нашего chingachgoog-а глисты в жопе. Он не может не удержатся, чтобы не поспорить. На форуме флэшер.ру его даже забанили. Я так понял навсегда. Я даже видел восторженные посты, после его бана. Такая монера характерна для женщин (ну это пока только подозрения

) Так что публике точно всё ясно.
А вот и у нашего Сениор Программера шизофрения объявилась

. То спорим, то не спорим. Определись, что ли.
PS На флешер.ру ему дали п**ды, вот он бедненький (может и бедненькая

) сюда на форум и прискакал. Чтобы хотя бы здесь показаться умным, но не получилось, какой-то "мальчонка" ему дорогу перегородил. Страх и ужас, да?
И это пишет МОДЕРАТОР? Уши вянут.
А аргументы у chingachgoog-а в пользу AVM1, и недостатков AS3 убедительны и правомерны, по крайней мере для тех, кто во флэше начиная с 5.
И главное очень плохо, что адобы развитие AVM1 закрыли.
uspechov, уже плотно работал с AS3? Если работал - так что же не устроило то тебя? Не расскажешь?
chingachgoog
28.03.2011 - 17:30
36) Зачем buttonMode для мувиклипов?
В AVM1 было превосходнейшее средство для создания из мувиклипов настоящих кнопок: в мувиклип добавлялись специальные лейблы "_up", "_over", "_down" и как только на мувиклип назначался обработчик мыши, мувиклип автоматически переходил на кадры с этими метками по событиям onRollOut, onRollOver, onPress соответственно (эти события НЕ НАДО было назначать специально!).
Теперь для такого же функционала мувиклипу необходимо назначить свойству buttonMode значение true. Спрашивается: зачем? В AVM1 автоматический режим включался при добавлении любого из обработчиков кнопок. Если обработчик НЕ задан, то НЕ БУДЕТ и переходов по кнопке-клипу. В AVM2 опять маразм: даже если ни один обработчик НЕ задан, но задан buttonMode, то все равно есть переход по меткам.
Кстати, этот buttonMode теперь отвечает и за вид курсора в виде руки, а не стрелки. Зачем столько лишних телодвижений? Чтобы мистер Ли сказал, что это правда, что AS3 требует вдвое больше кода?
Цитата
Может я что-то не понимаю, но этой возможности в AVM2 я что-то не обнаружил.
не то?
Цитата
36) Зачем buttonMode для мувиклипов?
Ты уже не знаешь за что придираться.
Цитата
Спрашивается: зачем?
Новая AVM - новые правила.
Цитата
В AVM1 автоматический режим включался при добавлении любого из обработчиков кнопок.
Ну и зачем нужна вся эта автоматика? Разработчик сам решает что у него button, а что у него "неbutton".
chingachgoog
30.03.2011 - 18:12
37) Run-time ошибки
На самом деле для разработчика наличие проверок ошибок в рантайме (т.е. при исполнении кода флеш-плеером) - неоценимое преимущество. Казалось бы - это круто, что в AVM2 можно поймать кучу ошибок, да еще с их кодами! И не в дебаг-плеере, а в самом обычном.
Казалось бы... Но. ЛЮБАЯ из ошибок приводит к выбросу исключения и - внимание - ПРЕРЫВАНИЮ КОДА, если не было обработчика исключения try-catch. Такого в AVM1 практически нет: во-первых, нет такой кучи разжеванных ошибок, а во-вторых - то, что для немца смерть (ошибка для AVM2), для русского хорошо (не является ошибкой для AVM1).
Выход - писать код без ошибок (ха-ха три раза) или на каждый вздох обрамлять код try-catch (а код в AS3 и без того громоздок). Иначе - код прервется (!) в самом неожиданном месте и разработчик об этом и знать не будет...
chingachgoog
18.04.2011 - 16:14
38) Ограничения с работой JavaScriptAVM1 имел уникальный
JavaScript API для работы с swf-файлом. Можно было как писать в swf, так и считывать из него инфу.
В AVM2 его убили, оставив только
ExternalInterface.
Компилим swf под AS2
код на руте
Код
var ttt="asdfg"
В html-страничке пишем JS код:
Код
window.onload = function() {
//node - это наш ФП c swf
setTimeout(function(){
alert("= "+node.GetVariable('/:ttt'))
}, 2000)
}
Как и надо видим результат!
Но если закомпилить под AS3, то видим фигу (((
PSExternalInterface на самом деле работает достаточно убого.
Во-первых - это та же СИНХРОННАЯ работа.
Во-вторых, данных передается на порядок больше - они сериализируются в xml-описание-строку!
chingachgoog
21.06.2011 - 13:19
39) isDown почила в бозе...Мало того, что Адоб лоханулся с глобальными обработчиками и теперь надо вешать их на стейдж на две фазы!
Так еще они прикрыли
isDown! Якобы по соображениям их дырявой безопасности
Надо ли объяснять какие возможности открывало это свойство? Я уж не говорю про правую кнопку мыши, но можно было назначить комбинацию клавиш, которую легко проверить
в любой момент времени!
ничего себе юморок... трудно представить, на что это будет похоже через пару версий...
chingachgoog
22.06.2011 - 10:53
Ну там еще isToggled () прибили, но я уж не стал об этом писать, т.к. в общем-то можно было поймать через isDown.
chingachgoog
1.07.2011 - 15:32
40) Нет аналога onLoadComplete
В LoaderInfo событие complete попадает ПОСЛЕ того, как отработает событие init и после того как ролик целиком загрузится.
В AVM1 было все по-другому. Событие onLoadComplete у MovieClipLoader отрабатывалось после загрузки ролика, но до того как отработает его первый кадр, т.е. до события onLoadInit.
Событие AVM2 complete более похоже на событие onLoad у MovieClip.
Таким образом у AVM2 НЕТ ВАЖНОГО СОБЫТИЯ - когда клип загружен и доступны его графические элементы (можно определить их свойства), доступен таймлайн (можно переходить по кадрам), можно назначать новые свойства - и все это ДО ТОГО МОМЕНТА когда отработает код первого кадра (произойдет инициализация).
Как обычно - очередное "удобство"...
У класса LocalConnection под avm2 есть еще один не очень известный косяк. При загрузке swf написанных на as2 и as3 из разных доменов as2 может вызывать методы as3, а as3 в as2 - нет, хоть что там в allowDomain ни пиши - звезду, домен, айпишник. То есть прикрыли возможность!
chingachgoog
7.09.2011 - 19:43
Цитата(geenny @ 7.09.2011 - 15:12)

У класса LocalConnection под avm2 есть еще один не очень известный косяк. При загрузке swf написанных на as2 и as3 из разных доменов as2 может вызывать методы as3, а as3 в as2 - нет, хоть что там в allowDomain ни пиши - звезду, домен, айпишник. То есть прикрыли возможность!
Нет - там все можно, просто есть хитрость.
см.
п. 33
chingachgoog
26.03.2012 - 15:25
41) Как обычное видео AVM2 убивает
Обычное флеш-видео (.flv) дергает обработчики onMetaData и onCuePoint во флешке. Естественно в новой событийной модели AVM2 возникают эксепшны, которые и рушат всю работу флешки. Конечно, решение есть. И даже несколько вариантов. Но факт характерен - очередная "забота" о разработчиках налицо.
chingachgoog
20.06.2012 - 11:27
42) smoothing vs forceSmoothing
Докладываю. В AVM1 у класса MovieClip было много удобных свойств, например - forceSmoothing.
А в AVM2 у MovieClip такого свойства нет даже в наследуемых свойствах! Ближайший аналог - свойство smoothing у класса Bitmap
И тут, как обычно, вылезают грабли новых "удобств": для сглаживания растра надо лезть теперь в каждый битмап и выставлять smoothing. Но даже не это "замечательно" - если у меня нет доступа к подгружаемому, муву, например, который где-то как-то грузит/рисует битмап, то я не смогу выставить сглаживание у этого мува, а сглаживание по умолчанию отключено!
Занавес...
chingachgoog
20.09.2012 - 13:40
43) enabled работает нефункционально!
В дополнению к п.36.
В AVM1 enabled работал интуитивно понятно и функционально: выставили его в false - кнопка становилась нерабочей (не реагирует на движения мыши, не включаются обработчики).
В AVM2 это какая-то насмешка над разумом:
1) во-первых это действительно только для режима выставляемого с помощью buttonMode
2) во-вторых, весь смысл теряется: enabled стал отвечать ТОЛЬКО за передвижением по кадрам кнопки, но даже если он false, то обработчики продолжают работать!!!
Вообщем выходит так, что enabled лишь дублирует функционал buttonMode. Ничего нового или уникального enabled не делает. Непонятно тогда, зачем вообще воткнули это свойство? Чтобы могли сказать: как много новых свойств у AVM2 по сравнению с AVM1?
PS
Забавно, что buttonMode имеет основной смысл ТОЛЬКО для мувиков. Для спрайтов - это только придание курсору вида руки - ведь в спрайтах нет кадров и нельзя перейти на кадры состояния кнопки!
chingachgoog
14.03.2013 - 17:33
44) Недокументированные фичи
Да, в AVM1 была масса недокументированных вещей (спасибо адобам) типа ASnative.
Но в AVM2 стало не лучше. Вот, например, известный метод MovieClip, который ни разу не документирован:
addFrameScript(frame_number:uint,function_to_call:Function)
Метод позволяет добавлять функцию (ее вызов вернее) в кадр - при прохождении этого кадра, функция будет вызвана.
Как говорится, кто знает - есть ли что еще...
MustLive
15.03.2013 - 01:35
addFrameScript - интересная функция. Чтобы не руками в кадр на таймлайне добавлять код, а программно задавать вызов функции в нужном кадре. Как видно по этому примеру, Адобовцы продолжили традицию ASnative в новой AVM.
Цитата
Как говорится, кто знает - есть ли что еще...
Есть - это
премиальные фишки, что мы в январе обсуждали. Этот недокументированный функционал доступен не на уровне AS, а на уровне опкодов.
chingachgoog
5.04.2013 - 18:01
45) XML vs E4XВообще, хотя
лично мне E4X не удобен и упоминания о нем у меня чаще матерные, но сам по себе факт
еще одного способа работы с xml-документами никакого раздражения не вызывает - наоборот, чем больше возможностей, тем лучше. Ну мне не нравится, а кому-то даже очень (встречал только двух таких восторженных

)
Но как обычно, адобы не просто дали еще одну возможность, а придушили старую.
Речь даже не о том, что теперь XML стал XMLDocument, хотя по уму надо бы наоборот. Ладно - это пустяк.
Все гораздо хуже.
В AVM1 класс XML разумеется динамический (как и все классы в AVM1). И даже если тупой адобовский компилятор не позволял использовать точечный доступ к объекту, то завсегда можно было использовать доступ [ имя свойства ]. Что позволяло хранить в XML-объекте полезные свойства.
В AVM2 засады две:
1) XMLDocument (XML -old style) стал НЕдинамическим! Как и XMLNode! Вот это просто уму не постижимо! Зачем?
2) XML (E4X style) хотя и динамический, но с какого-то перепугу final! Не так страшно, но все равно странно.
Т.е. адобы вместо того, чтобы проторить широкую дорогу работы с xml двумя способами, на самом деле дорогу сузили и перегородили препонами.
chingachgoog
8.07.2013 - 18:17
escape/unescapeРебята, это мрак (((
Код
var s0='Копия'
var s1='%d0%9a%d0%be%d0%bf%d0%b8%d1%8f'
trace(unescape(s1)+"\r\r\r"+escape(s0))
Компилим под AVM1, а потом под AVM2
Не, я конечно, не спал сегодня с полпятого утра, но как теперь строку обратно в юникод перевести? Это что же - продолжение грабель с вводом кириллицы на прозрачном фоне? Не, ну ваще - одни эмоции!!!
MustLive
8.07.2013 - 23:52
Цитата
escape/unescape
Да уж

. Похоже в AS3, по задумке разработчиков, не нужно кириллицу эскейпить/анэксейпить (и юникод в целом).
Но может в AS3 эта процедура проводится как-то хитро. Попробуй детально исследовать этот вопрос.
chingachgoog
9.07.2013 - 14:25
Пока придумал своё решение вопроса для unescape. Дарю всем 4 тыс. руб. ))) Пользуйтесь:
Код
function unescape(text:String):String {
var txt:String = getDefinitionByName("unescape")(text)
var b:ByteArray=new ByteArray()
for (var i:int=0; i<txt.length; i++){
b.writeByte(txt.charCodeAt(i))
}
b.position=0
return (b.readUTFBytes(b.length))
}
PSВот еще в кучу забавности в AVM2 дебаггера с
trace:
Код
var tf:TextField=new TextField
tf.autoSize=TextFieldAutoSize.LEFT
tf.multiline=true
addChild(tf)
trace(unescape('ÐÑлÑÑÑ')) // ÐÑлÑÑÑ
trace('ÐÑлÑÑÑ') // Мульты
tf.text=unescape('ÐÑлÑÑÑ')+" "+'ÐÑлÑÑÑ' // ÐÑлÑÑÑ ÐÑлÑÑÑ
chingachgoog
23.01.2015 - 14:43
Интересные особенности простых кнопок(в дополнение
к теме о глюках)
В кнопки ведь можно вкладывать мувиклипы, текстовые поля и т.п. В данном случае я вкладываю динамическое текстовое поле и даю ему имя dt.
Задача - поменять в кнопке текст в этом текстовом поле. Текстовое поле одним символом на все 4 кадра (один ключевой кадр)
Формально задача не решается ни в AVM1 ни в AVM2
AVM1 класс ButtonТекстовое поле лишается своего имени и заменяется на что-нибудь типа instance0 поэтому, чтобы его найти надо:
Код
for (i in button) {
if (button[i] instanceof TextField) {
button[i].text="Новый текст"
}
}
Текст заменяется во всех 3-х кадрах!
AVM2 класс SimpleButtonТут вообще нет доступа к элементам, т.к. формально нет наследования от DisplayObjectContainer, но найти можно:
Код
var arr:Array=getObjectsUnderPoint(p)
var obj:*
for (var i:int=0; i<arr.length; i++){
obj=arr[i]
if (obj as TextField) {
TextField(obj).text="Новый текст"
}
}
Но текст заменяется ТОЛЬКО В ОДНОМ кадре. Где была на этот момент кнопка.
http://kleopatra-relax.ru/ массаж, салон массажа, релакс массажи, массажный салон
Нижний Новгород.СПА - процедуры для тела (скрабирование, обертывание);Оздоравливающие программы;Финская сауна;Бильярд