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 что какжется логичным. Хочется делать простые вещи без всяких костылей и хакерства.
Здравствуйте профессионалы, гении, пустозвоны и прочие программисты любители.
Как многие из вас догадываются есть такая далёкая страна Индия, может быть кто-то из вас там был, многие из вас даже видели код написанный великими индийскими программистами. Про красоты Индии и молодых людей которые при поступлении в "Бомбейский Технический Институт" помоему он так называется, проходят конкурс 300 человек на одно место и подготавливаются к экзаменам несколько лет я писать не буду.
Здесь я напишу о другом. Так уж сложилось, что в Индии есть много людей, которые копя несколько лет деньги, отказывая себе во всём купили себе компьютеры, сбились в кучки и назвали себя "Web Software Enterprise Solution Offshore Development Company" созвонились со своими многочисленнысми родственниками по всему миру решили, что они ничуть не глупее других и начали программировать.
Я сам много читал про то как индусы пишут код, но вот удача повернулась ко мне спиной и я познал все прелести работы с жителями такой прекрасной страны как Индия.
Всё началось с того что один из наших клиентов с арабской фамилией, который арендует у нас мальникий кусочек (самый маленький из возможных) Flash Media Server хостнга начал бомбардировать нас какими то непонятными претензиями по Email и телефону. Рассказывая что старт его проекта должен состоятся ещё на этой неделе.
Администраторы наши люди занятые, но всё же посмотрели и увидели, что всё работает как всегда, тоесть без происшествий и проблем. Клиент с арабской фамилией не унимался и гнал волну с ещё большей силой рассказывая про какие то мистиические проблемы на наших серверах. Читая переписку я решил посмотреть в чём же там проблема и созвонившись с нашими людьми которые работают с клиентами сказал что могу посмотреть, что там у него не работает. Клиент с арабской фамилией получил предложение подписать "support agreement на 20 часов" и заплатить за это сумму за которую его индийские товарищи программисты наверно работают пол года, соласился и прпросил прислать договор.
Сначала я просто запустил SwfScan 1.0, а так как опыта взлома чужого кода у меня нет, не совсем понял, что там за код такой и решил подождать. Через пару часов из Индии пришёл email с сорцами.
Я понимаю что в 2010 году всё ещё есть люди которые пишут код в as2, на это есть разные причины. Я понимаю, что не все каждый день работают с Flash Media Server. Я всё понмаю, непонимаю только как можно делать что-то абсолютно не задумываясь о том как будет работать то, что человек делает.
Начну с того что имена файлов генерируются как вы уже догадались на клиентской стороне, причём каким-то загадочным образом.
var randomnumber =Math.random() * 111111;
randomnumber=Math.round(randomnumber,0);
var filename="v_file" +randomnumber;
var out_ns="o_ns" +randomnumber;
ну ладно ну пусть так, но слепив скрипт из пары строк кода любой "деятель" может просто переписать все видеофайлы на сервере. Никаких препятстивий для этого в коде я не нашёл. Не буду смешить вас остальными перлми скажу только, что замечательный сервис написанный индийскими товарищами для нашего клиента с арабской фамилией впечатлил меня своей архитектурой. Я видел многое, но это был апогей того, что я мог себе представить.
Тем временем клиент с арабской фамилией не хотел подписывать договор, кормя нас завтраками, а я начал получать емайлы из Индии примерно такого содержания:
--
could you please help me out to get rid of this problem.
--
Could you please specify where is the problem in my code file.
--
I am resending my code file again. You can send me a sample for recording video also.
--
Ежу понятно, что в нашем капиталистическом мире никто не будет помогать "программистам любителям" из жарких стран без соответствующего вознаграждения. Соответственно все емайлы остались неотвеченными, кроме одного в котором были слепленныйе на колене .swf и .far файлы записывающие видео на сервере клиента без всяких проблем.
Теперь небольшое отступление для тех кто считает себя достаточно "умным" для того, чтобы работать фрилансером оффшорщиком. Так как человек я общительный мне часто везёт и я знакомлюсь с массой интересных людей. Самое смешное что все, абсолютно все, кто работал с фрилансерами из бывшего CCCР рассказывают мне такие же или похожие истории. Думайте перед тем как что-то делаете, имидж - штука важная.
Презентация раскрывает способы оптимизации написания кода приложения. Я для себя нашел новые подходы, и вспомнил старые. Одним словом — полезность
Ссылочка ниже (картинка тоже кликабельна):
