Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Объединение двух кодов проигрывания видео (http://www.flasher.ru/forum/showthread.php?t=214896)

SergVrn 19.01.2018 16:14

Объединение двух кодов проигрывания видео
 
Здравствуйте.
Подскажите - как объединить два кода в документе Main.as
(Первый код - растягивает видео под окно и добавляет бесконечные повторы. А второй код - проигрывает видео без звука.)

Код AS3:

var MyVideo:Video = new Video();
addChild(MyVideo);
 
 
MyVideo.height= 537.6;
MyVideo.width= 720.6;
var MyNC:NetConnection = new NetConnection();
MyNC.connect(null);
 
var MyNS:NetStream = new NetStream(MyNC);
MyNS.play("1.mp4");
 
MyVideo.attachNetStream(MyNS);
 
 
MyNS.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
function asyncErrorHandler(event:AsyncErrorEvent):void
{
}
 
MyNS.addEventListener(NetStatusEvent.NET_STATUS, goAgain);
function goAgain (event:NetStatusEvent): void {
switch (event.info.code) {
case "NetStream.Play.Stop":
MyNS.seek(0);
break;
}
}

Код AS3:

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.media.SoundTransform;
 
    public class Main extends Sprite {
        private var videoURL:String = "1.mp4";
        private var connection:NetConnection;
        private var stream:NetStream;
        private var volume:Number;
 
        public function Main() {
            volume = 1;
            connection = new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(null);
            stage.addEventListener(MouseEvent.CLICK, onClick);
        }
 
        private function onClick(e:MouseEvent):void{
            volume+=0.2;
            if(volume>1){
                volume = 0;
            }
            setVolume(volume);
        }
 
        private function netStatusHandler(event:NetStatusEvent):void {
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    connectStream();
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Unable to locate video: " + videoURL);
                    break;
            }
volume = 0;
            setVolume(volume);
        }
 
        private function connectStream():void {
            stream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
            var video:Video = new Video();
            video.attachNetStream(stream);
            stream.play(videoURL);
            addChild(video);
 
        }
 
        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }
 
        private function asyncErrorHandler(event:AsyncErrorEvent):void {
            // ignore AsyncErrorEvent events.
        }
        private function setVolume(volume:Number):void {
            trace("setVolume: " + volume.toFixed(2));
            var transform:SoundTransform = stream.soundTransform;
            transform.volume = volume;
            stream.soundTransform = transform;
 
 
        }
    }
 }


ZergMaster 19.01.2018 16:40

надо найти, где во втором коде присваивается volume стриму и перенести это в первый:

Код AS3:

var myVideo:Video = new Video();
        myVideo.height = 537.6;
        myVideo.width = 720.6;
        addChild(myVideo);
 
var netConnection:NetConnection = new NetConnection();
        netConnection.connect(null);
 
var myStream:NetStream = new NetStream(netConnection);
        myStream.play("1.mp4");
 
var transform:SoundTransform = myStream.soundTransform;
    transform.volume = 0;
 
myStream.soundTransform = transform;
 
myStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, function (event:AsyncErrorEvent):void {});
myStream.addEventListener(NetStatusEvent.NET_STATUS, goAgain);
 
myVideo.attachNetStream(myStream);
 
function goAgain (event:NetStatusEvent): void
{
        if(event.info.code == "NetStream.Play.Stop")
                        myStream.seek(0);
}


SergVrn 19.01.2018 17:16

ZergMaster , не работает.

Выдает ошибку :
"Монтажный кадр 1, слой "Слой 1", кадр 1, строка 12, столбец 5 1152: Конфликт с наследуемым определением flash.display: DisplayObject.transform в пространстве имен public."

ZergMaster 19.01.2018 17:29

ну тада незнаааааю. Можно попробовать добавить в начало документа
Код AS3:

import flash.media.SoundTransform;

вместо
Код AS3:

var transform:SoundTransform = myStream.soundTransform;
    transform.volume = 0;

написать
Код AS3:

myStream.soundTransform = new SoundTransform(0);

либо
Код AS3:

myStream.soundTransform = new flash.media.SoundTransform(0);

либо
Код AS3:

myStream.soundTransform.volume = 0;


undefined 19.01.2018 17:38

а второй код вынесен в отдельный as файл?

SergVrn 19.01.2018 19:51

ZergMaster, теперь заработало.
Спасибо.


Часовой пояс GMT +4, время: 02:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.