15 часов назадХотелось бы узнать, Как вы относитесь к пиву? Если положительно, то какое предпочитаете? Если отрицательно, то почему? Просто интересно...
2 дня назадпрям таки тебе и скажут здесь посмотри
3 дня назадНапишите мне на имейл (sbnur@front.ru) - очистка памяти в флеш-плеере нетривиальная проблема и все зависит от конкретного кода - чтобы не превращать, как уже отмечалось, в форум, лучше обсудить все приватно
3 дня назад1) Спасибо всем кто ответил.
2) Чтобы блог действительно не превращался в форум хотелось бы видет более обоснованные ответы, приводите пожалуйста доводы доказывающие вашу точку зрения.
3) Из комментов видно, что не все понимают зачем нужен именно мувик с вложенными в его кадры анимациями. Поясняю: этот мувик обычно собирается дизайнером, который не имеет особого представления о работе AS. Дизайнеру проще сделать мувик с лейблами чем написать специальный класс. Я же использую один класс для всех подобных мувиков в котором программно обрабатываю переход от одной анимации к другой. Таким образом для всех мувиков используется один класс.
4) Знаю что использование мувиков, созданных в IDE не является хорошей практикой, но в данном случае удобен именно этот подход. К тому же если метод мувика gotoAndStop реализован и описан в официальной документации он может использоваться и должен правильно работать.
5) Если встраивание видео в мувик несет в себе какие-то сложности, об этом должно быть указано в хэлпе.
6) Теоретически наверное можно найти какое-то другое решение проблемы, но речь изначально шла о том является ли такое поведение багом, и если так - этот баг должен быть добавлен в базу Adobe.
7) Очень хотелось бы ,чтобы кто-то проверил это у себя или указал как эту проблему можно решить.
3 дня назадgotoAndStop(label);
мама роди меня обратно ...
3 дня назадБлог превращаетсо в форум -- пичалько.
3 дня назадМожет попробовать аттачить и удалять мувиклипы при необходимости из библиотеки? Удалили предыдущий мувик со stage и добавили новый, который нужно проиграть.
примерно так:
var _class:Class = getDefinitionByName("nameClass") as Class;
var _mc:MovieClip = new MovieClip(new _class());
addChild(_mc);
...
removeChild(_mc);
3 дня назадСпасибо за ответ. Хочу пояснить что я пробовал чтобы люди могли лучше понять суть проблемы. Сорри, если много букв. Вот код функции для переключения кадров с видео: [collapse] <code> public function playAnim(label:String):void { // проверяем есть ли такая метка в списке доступных if (labels.indexOf(label) != -1) { // если метка отличается от текущей выполняем переход if (currentLabel != label) { // "anim" - это мувик с именем "anim" и объектом Video внутри, в нем также могут находится мувики с графикой if (anim) { // стопим его, при помощи ENTER_FRAME Event с WeakReference я проверял его текущий кадр и трейс показывает что он нормально стопится anim.stop(); // удаляем его из DisplayList removeChild(anim); // проходим по всем его вложенным DisplayObject-ам while (anim.numChildren) { var vid:Video = anim.getChildAt(0) as Video; // если находим видео, пытаемся принудительно вызвать GarbageCollector if (vid) { trace(">>> FORCE GC! <<<"); try { new LocalConnection().connect('foo'); new LocalConnection().connect('foo'); } catch (e:*) {} } // удаляем все найденные DisplayObject-ы anim.removeChildAt(0); } // обнуляем автоматически созданную переменную (сам флэш иногда это не делает) anim = null; } // переходим на новый кадр с мувиком "anim" внутри которого лежит другое видео gotoAndStop(label); } } } </code> [/collapse] Странно, что без вызова GarbageCollector-а все видео продолжают висеть в памяти. Если вызывать GarbageCollector как показано в коде, то некоторые видео удаляется (исчезают трейсы от них), а некоторые продолжают висеть в памяти остановленные на одном кадре, хотя ссылок на них в коде больше нет. Хэлп от Адоб утверждает (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Video.html) что потоковое видео можно остановить соответствующими вызовами: myVid.attachCamera(null); myVid.attachNetStream(null); Про то как остановить встроенное видео нет ни слова. Хотелось бы видет простой метод dispose() как у BitmapData что какжется логичным. Хочется делать простые вещи без всяких костылей и хакерства.
Сегодня увидел в своей френд-ленте на жуйке много записей, связанных с багами от Adobe, делюсь с вами:
Пишу на всякий случай: вдруг вы еще не знаете, что лучшие люди водятся в Жуйке, ктору открыл Костянтинер Костян.
Поломался механизм установки обновлений в новой, предрелизной версии Flash Builder 4, построенной на Eclipse 3.5. Ее порядковый номер — i16, не путать с Flash Builder Beta 2 — там номер i15. Скачать эту версию могут бета-тестеры Adobe, стать им несложно. Но такая же проблема может возникать при установке Beta 2 как плагина к Eclipse 3.5 (возникает? отпишитесь, плиз).
Поломка — в обновленном диалоге установки плагинов и апдейтов. Вот — нормальный вид окна "Help->Install New Software", обратите внимание на комбобокс "Work with", для выбора сайта с апдейтом:

А вот так это выглядит во Flash Builder 4 Prerelease под Windows, тут нет того комбобокса:
Как видно, тут не хватает выпадающего списка для указания сайта с плагином. Обойти это можно двумя способами.
UIActivities.org.eclipse.equinox.p2.ui.sdk.classicUpdate=trueWin: \Documents and Settings\[Username]\Adobe Flash Builder 4 Prerelease\.metadata\.plugins\org.eclipse.core.runtime\.settings
OSX: /Users/[Username]/Documents/Adobe Flash Builder 4 Prerelease/.metadata/.plugins/org.eclipse.core.runtime/.settings
Если этого файла в указанных каталогах не существует, то создайте его.
Третий способ вообще самый хитрый мудрый и ленивый и предполагает, что мы ждем, пока баг будет исправлен адобовцами в новом билде i17, и они говорят, что уже его исправили. Но этот билд пока недоступен, а рецепты обхода багов апдейтера могут еще пригодиться.
Например, мы хотим, чтобы текстовое поле принимало только цифры и знак минуса. В Actionscript пишем:
private var textInput:TextInput;
private function init():void {
textInput = new TextInput();
textInput.restrict = "0-9\-";
addChild(textInput);
}
В MXML не просто пишем, а попутно хакаем XML:
2.
Здесь мы собираем баги Flash с целью их уничтожения - добавляйте ошибки флэша в комментариях.
Если Вы сталкиваетесь с ошибками в последних версиях Flash Pro (на данный момент, CS5.5), Вы можете написать о них Дмитрию Юханову - он может поспособствовать их исправлению в следующих версиях и обновлениях Flash Pro.
По возможности, при описании проблемы, пишите, пожалуйста версию Flash Pro (очень желательно - полностью, посмотреть можно в окошке "About...") и название ОС (желательно также с номером версии).
См. также все баги, найденные Костей Ковалевым
тэг Bugs, тэг JIRA, тэг Flash CS5 Bugs) (контент может дублироваться).
Комментируйте, будем дополнять.
Вчера и позавчера за баг ввода UTF-8 на Линуксах FP-40 поступило 15 новых голосов. Спасибо вам за поддержку тут и там! Уверен, что это помогло довести количество голосов со 192 до 207. Таким образом, барьер в 200 голосов был преодолен вчера, и сейчас этот баг — третий в списке по количеству голосов. Мы не знаем, что происходит внутри Adobe, знаем только, что вчера ответственный за исправление бага FP-40 Чарльз Лисс написал:
Спасибо вам за голоса и комментарии. В то время, как я хотел бы сообщить вам, когда это будет исправлено, я не могу назвать точной даты. Я могу сказать, что мы исправим это в следующем большом обновлении версии ("major update"). Как только выйдет релиз, вы увидите этот баг в Release Notes как часть этого релиза. Когда это произойдет, я алсо закрою этот баг здесь как исправленный. Я понимаю и ценю вашу фрустрацию и мы усердно работаем, чтобы доставить вам качественный релиз со множеством исправлений и новых возможностей.
Спасибо тебе, Чарльз. Прости, если что не так. Сам понимаешь у нас GNU/Linuxоiди обступили со всех сторон и требуют сатiсфакциi их невiносимой фрустрациi.
А тем временем не надо здесь сидеть сложив на колени руки. Давайте поднимем баг, который достал даже сильнее: голосуем за FP-273, правильное эхоподавление во Flash Player! Ему нужен один голос, чтобы попасть фдисятку. Правда, при этом она обгонит другой баг FP-37, про поддержку AMD64 + Linux...
Недавно мы голосовали за исправление бага ASC-3778, который делает работу с выражениями switch/case не только трудной, но и опасной. Спасибо всем, кто проголосовал! Баг уже набрал 18 голосов, его статус изменился на "Internal Review", и в результате этого "внутреннего рассмотрения" баг посчитали связанным с багом ASC-3644, который имеет приоритет "B - Major Issue", и с ним связано еще 8 проблем. Его устранение запланировано на версию Milestone FP 10.1.
Но самое интересное — это сам багрепорт по багу # 3644. Во-первых, отчет об ошибке сделан сотрудником Adobe Ларсом Хансеном, который тоже фиксит баги плейера. Во-вторых, Ларс разбирает этот баг на низком уровне. Он предлагает скомпилировать код файла switch.as с помощью asc.jar с опцией -optimize, затем сделать дамп (дизассемблировать) получившийся файл switch.abc и уже в файле с результатами дампа switch-abc-nemo440.dump обнаружить, что вместо ожидаемых 8 инструкций case во флэшовом ассемблере получилось 9, то есть на одну больше, чем просили (L2...L10):
162 lookupswitch default:L10 maxcase:8 L2 L3 L4 L5 L6 L7 L8 L9 L10
Что и есть проявление бага. Интересно, чорт побери. Даже такому чайнику в ассемблере, как я.
За свою более чем десятилетнюю историю Flash Player развился от простенького анимационного движка до универсальной платформы для создания приложений.
Но не только новые возможности добавляются в каждой новой версии, но и новые проблемы. Как правило, почти все они исправляются в следующей версии проигрывателя, но бывают баги, которые живут годами, переходя из версии в версию. Есть среди них баги, которые разработчики Flash Player даже не комментируют, делая вид, будто их нет.
Флэш-проигрыватель наотрез отказывается правильно работать в режиме полной прозрачности, задаваемой через параметр wmode="transparent". Стоит его включить, как появляется целый букет болячек: от резкого падения FPS и производительности (что вполне объяснимо, вед прозрачность тоже считать надо) до вообще необъяснимой невозможности ввода не-латинских символов в режиме прозрачности. Совсем недавно эту проблему в который раз обсудили в ruFlash, снова придя к неутешительному выводу, что воз и ныне там, хоть на дворе уже Flash Player 10. И Adobe не спешит эту ситуацию комментировать.
А знаменитый баг-444, связанный с невозможностью глобального отлова исключений в проекте? Он приводит к остановке приложения прямо перед недоумевающим пользователем, и у разработчика нет никакой возможности это исправить. Еще один экспонат этой выставки уродов, и снова Adobe молчит.
Сюда же можно отнести игнорирование проблемы эхоподавления во Flash Player (баг-273), которое мы уже обсуждали. И здесь мы слышим унылое молчание Adobe.
Тем временем, опыт получения правильного аудио во флэше доказывает, что если говорить целенаправленно и четко, то Adobe прислушивается и фиксит, или хотя бы объясняет свою позицию.
Предлагаю собрать коллекцию самых латентных и злых багов Flash Player (давайте пока ограничимся этим), а по результатам составить статью или презентацию (берусь составить), где вопрос будет стоять ребром в сторону Adobe, которой просто негоже прикидываться шлангом при таком количестве реальных проблем!
Итак, прошу в комментариях писать о латентных багах:
Неконструктивные комменты трутся в режиме реального времени, наша цель — добиться реакции Adobe.
******BUG******
It not only changes Style, but also can change font Family value in the Properties panel.
1. Create new document in Flash CS4.
2. Add new static text field with "Test" text, Arial font should be used.
3. Select the text field and press Ctrl + Shift + B, which is shortcut for applying Bold Style.
Font Style becomes Bold, but also font FAmily changes to Arial Narrow and new font is applied to the text field.
Font Style should become Bold without any font Family changes.
В Adobe согласились, что неспособность Flash Player (issue 444) перехватывать любую ошибку (и при этом оставлять пользователя наедине с застывшим приложением) есть плохо. Вчера у этой записи в Adobe JIRA сменилось значение одного свойства, но зато какого: Internal Priority. Было: "", стало: "A". Что же, будем надеяться, что вчерашнее изменение приведет к скорому исправлению этого досадного поведения.
Как многим уже известно, следующая встреча Ukrainian Adobe Flash Platform User Group состоится 28 февраля в Харькове. А идею сокращенного названия UFUG Андрей Панас предложил уже давно — как вам?
Место: Харьков, пр. Ленина, 47, ФТИНТ ("Институт низких температур"), офис компании GlobalLogic, к. 220. Ближайшая станция метро: 23 Августа, время в пути: 5 минут.
Время: Начало в 13:00, беседуем до 19, а затем — любимая неофициальная часть.
1. Илья Панин. Eclipse Monkey — безграничный функционал Flex Builder'а.
2. Ростислав Сирык. Сертификация AIR-приложений: что, как, зачем, почем и можно ли бесплатно.
3. Update: решаем судьбу сайта fpug.org.ua, готовьте мысли! (Было: Топчем Flex-баги. Событие BugQuash состоится 28 марта, регистрироваться здесь.)
Чтобы зарегистрироваться, пожалуйста, оставьте комменатрий на странице встречи (для этого вам нужно будет сначала зайти на сайт Adobe).
Важно: При себе желательнно иметь документ, удостоверяющий личность. Для прохождения на территорию ФТИНТ через проходную требуется полный список участников, поэтому перед встречей будет разослано письмо с подтвержением участия и просьбой сообщить ваши имя и фамилию, которые вас могут попросить сообщить на проходной.
Какие будут пожелания, предложения, вопросы?
