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);
4 дня назадСпасибо за ответ. Хочу пояснить что я пробовал чтобы люди могли лучше понять суть проблемы. Сорри, если много букв. Вот код функции для переключения кадров с видео: [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 что какжется логичным. Хочется делать простые вещи без всяких костылей и хакерства.
Если вы еще не знаете, то Vector — это новый класс во Flash Player 10. По способу использования он является типизированным массивом, о котором мечали еще флэшеры семидесятых. Vector не только типизирован, но и дает более производительный код (очевидно, его внутрення природа — не простая обертка вокруг массива). Вот статья по классу Vector для начинающих.
Еще легче, чем кодироват. Пара минут может уйти на привыкание к синтаксису. Он немного сложнее, чем у массива, потому что вектор строго типизирован. Поэтому везде, где вы имеете дело с вектором, нужно после обозначения типа и точки дополнительно в треугольных скобках указать тип хранимых в векторе значений. Например, String для вектора строк:
var stringVector : Vector.<String> = new Vector.<String>();
Когда я впервые использовал Vector, то сделал синтаксические ошибки в каждом случае его применения, по привычке работал как с нетипизированным массивом. Но с векторами нужен векторный синтаксис. В этом примере две ошибки:
public function findDuplicates(text : String) : Vector
{
var result : Vector = new Vector.<Duplicate>();
...
return result
}Первая ошибка исправляется указанием полного типа вектора при объявлении переменной:
var result: Vector.<Duplicate> = new Vector.<Duplicate>();
Вторая исправляется указанием полного типа вектора возвращаемого результата:
public function findDuplicates(text : String) : Vector.<Duplicate>
(в примере <Duplicate> — это тип данных вектора, тут используется собственный класс, а на его месте можеть быть int, Date и т.д.)
Дочитали до этой фразы и стало скучно, используете вектор уже восемь-десять лет? Есть информация для продвинутых вектор-юзеров в ActionScript — динамическое создание экземпляров класса Vector и тест Array vs. Vector vs. Linked list.
Дочитали досюда? Круто *-)
Работа с растровыми изображаениями в FP10 имеет минимум два преимущества по сравнению с Flash Player 9: максимальный размер стал больше, а скорость стала выше.
Во Flash Player 9 мы могли обрабатывать изображение размером 8294400 пикселей, т.е. 8 мегапикселей, что соответствует квадрату со сторонами до 2880x2880 пкс.
Во Flash Player 10 максимальный размер BitmapData не только увеличен до шестнадцатиричного 0xFFFFFF (т.е. 16777215, или 16 мпкс), что соответстует максимальному квадрату со сторонами 4095x4095 пкс, но и появилась гибкость в его использовании. Вот в чем она заключается: вы можете распределять этот максимальный размер нужным вам образом, создавая не-квадратную картинку. Т.е. теперь можно не только получить квадратную картинку размером 4095x4095, но и прямоугольную, с макcимальной длиной стороны до 8191 пкс. Главное, чтобы перемноженные длины ее сторон укладывалось в максимальное количество пикселей. Например, во Flash Player 10 возможны картинки 2048x8191 и 8191x2048. То же самое на английском у Кейта Петерса (новость уже не такая новость).
Для работы с большими картинками нужны быстрые алгоритмы, и здесь Flash Player 10 предлагает новый класс Vector и BitmapData.setVector(), который годится для ускорения практически любого алгоритма, активно использующего операции с массивами. Класс JPEGEncoder из состава corelib подходит под этот случай, и вот его авторы ускоряют сжатие BitmapData в JPEG. Вы можете почитать этот пост и пропробовать сами размещенную в нем демку, а также скачать обновленный класс JPEGEncoder.
* Использовали байтовые (bitwise) oператоры, где только можно.
* Заменили все массивы на векторы фиксированной длины.
* Использовали пред-инкремент (++i) вместо пост-инкремента (i++).
* Преобразовали (casted) к типу int все индексы доступа к векторам.
Говорят, что во Flash Player 11 будет оператор подергивания --i++
Aviary, ранее выпустившие онлайновые графический редактор Aviary Phoenix и генератор паттернов Aviary Peacock, выпустили онлайновый векторный редактор Raven.
Если вам нужно сделать логотип, векторный клип-арт, дизайн футблоки — он справится. Демки и скринкаст можно увидеть в блоге Aviary.
Примеры готовых работ — в галерее векторного редактора Raven.
