![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 57
|
Добрый день всем. В связи с необходимость пришлось осваивать AS лошадиными скачками. Пишу на PHP, Delphi, Java-Script, немного С#. Больше всего ActionScript по своей структуре напоминает Java-Script (со смесью С-подобных), ну это лирическое отступление. Задача стоит получить видео и аудио с веб-камеры и передать его на сервер, допустим на FMS. По сути рабочие пример в сети есть, но хочется разобрать самому. Нашел на сайте Адобе такое:
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; import flash.media.Camera; import flash.media.Video; public class CameraExample extends Sprite { private var video:Video; public function CameraExample() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; var camera:Camera = Camera.getCamera(); if (camera != null) { camera.addEventListener(ActivityEvent.ACTIVITY, activityHandler); video = new Video(camera.width * 2, camera.height * 2); video.attachCamera(camera); addChild(video); } else { trace("You need a camera."); } } private function activityHandler(event:ActivityEvent):void { trace("activityHandler: " + event); } } } Все работает на ура и даже выводит картинку, но возникло несколько вопросов: 1. Как улучшить качество отображаемой картинки (в том же скайпе качество картинки лучше); 2. Могу ли я как то вывести изображение не на центральную рабочию область, а на какой то созданный объект (а-ля трансляция на Panel в Delphi) 3. В основной fla файл подключаю camera.as (в свойствах документа - class) с выше описанным кодом, при запуски мувика проигрывание начинается сразу же: а как сделать что бы изображение появлялось только после нажатия на кнопку?... Не сочтите за наглость вышеописанные вопросы... Буду признателен за помощь! |
|
|||||
|
AS от js отличается более строгой типизацией.
1) http://help.adobe.com/ru_RU/FlashPla...ia/Camera.html я бы попробовал методы setMode и setQuality у камеры 2) объект Video это просто отображаемый объект. Вы можете его положить в любой DisplayObjectContainer - Sprite, MovieClip. Можете произвольно задавать его размеры width, height и координаты x, y 3) Посмотрите в сети пример кнопки. Вобщих чертах так: добавляете слушателя нажатия на кнопкуб в качестве обработчика указываете ссылку на метод или функцию, в обработчике выполняете код |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 57
|
Благодарю за ответ, но как сделать что бы при старке мувика не начинал выполнятся скрипт?
|
|
|||||
|
Регистрация: Aug 2011
Сообщений: 19
|
что бы при старте? Наложить на него событие, при котором выполнялся бы твой код (например, нажать на сцену):
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; import flash.media.Camera; import flash.media.Video; public class CameraExample extends Sprite { private var video:Video; private var camera:Camera; public function CameraExample() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; camera = Camera.getCamera(); if (camera != null) { stage.addEventListener(MouseEvent.CLICK, startScript); } else { trace("You need a camera."); } } private function startScript(e:MouseEvent):void{ stage.removeEventListener(MouseEvent.CLICK, startScript); camera.addEventListener(ActivityEvent.ACTIVITY, activityHandler); video = new Video(camera.width * 2, camera.height * 2); video.attachCamera(camera); addChild(video); } private function activityHandler(event:ActivityEvent):void { trace("activityHandler: " + event); } } } |
|
|||||
|
Цитата:
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 57
|
thirst, пытаюсь при клике на кнопку... выдает: Packages cannot be nested.
|
|
|||||
|
Регистрация: Aug 2011
Сообщений: 19
|
Цитата:
Но может быть дело в структуре класса? Должно быть так: Ну или попробуй вместо stage.addEventListener(MouseEvent.CLICK, startScript); и stage.removeEventListener(MouseEvent.CLICK, startScript);, написать this.addEventListener(MouseEvent.CLICK, startScript); и this.removeEventListener(MouseEvent.CLICK, startScript); |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|