Используйте FLVplayback в FlashDevelop, добавьте класс Sprite в мир в AS3

Привет (извините, если есть грамматические ошибки, я француз),

Я новичок в AS3, но немного лучше знаю Flashpunk; Как бы то ни было, у меня действительно есть некоторые трудности с кодированием в AS3, и я не могу понять, как вставить видео в проект AS3 с помощью FlashDevelop.

Что ж, я нашел код для того, что ищу, вставьте видео в формате FLV сюда: http://www.flashdevelop.org/community/viewtopic.php?f=9&t=6407

Но у меня есть некоторые проблемы, чтобы заставить этот код работать ... Как я уже сказал, я лучше знаю Flashpunk, поэтому мне сложно связать базовый AS3 с моими знаниями в Flashpunk.

Я пытался организовать это по классам, но я знаю, что это неправильно, но, пожалуйста, кто-нибудь может сказать мне, как мне сделать, чтобы код заработал? Я думаю, что «addChild» - это всего лишь функция Sprite или Movieclip, поэтому мои FLVplayback и PlayerGfx расширяют Sprite, но я не знаю, как их добавить и отобразить ... Вот мой код:

public class testMyWorld extends World
{
    public var player:PlayerGfx;
    public var _FLV:testFLV;

    public function testMyWorld() 
    {

        _FLV = new testFLV;
        player = new PlayerGfx();

    }

}  


public class testFLV extends Sprite
{
    public var flvPlayback:FLVPlayback;
    public var player:PlayerGfx;

    public function testFLV() 
    {
        flvPlayback = new FLVPlayback(); 
        flvPlayback.skin = "none" 
        flvPlayback.autoPlay = false;
        flvPlayback.source = "FLVSkyrim.flv"    
        player.addChild(flvPlayback);
    }

}

и хорошо, я не знал, что туда вставить, но в ссылке до того, как есть "класс игрока", так что ...

    public class PlayerGfx extends Sprite
{

    public function PlayerGfx() 
    {

    }

}

Я отчаянно ищу помощи, я не могу найти никого, кто мог бы объяснить мне, что мне делать: / Мне просто нужно отобразить видео в качестве проекта AS3 для школы, и я не хочу использовать FlashProfessional ... Но Я не понимаю многих вещей, таких как addChild, отображение класса Sprite и т. Д. Но если вы знаете другой код лучше, который я мог бы использовать и который вы могли бы мне объяснить, я был бы очень благодарен.

Заранее спасибо !

РЕДАКТИРОВАТЬ: черт возьми, мне очень жаль, если я видел ваши ответы в то время, когда я спросил об этом. Дело в том, что один из моих коллег в школе написал мне довольно хороший фрагмент кода, который точно отвечал на то, что мне нужно было сделать, потому что это было немного сложно. Я могу отдать его любому, кому это может понадобиться, но я не уверен, что он подойдет для любой «обычной» ситуации, потому что он был довольно персонализирован и объяснен. В любом случае, спасибо за ответы.


person Lap    schedule 22.04.2013    source источник


Ответы (2)


Почему ваш базовый класс - Мир? В чистом проекте AS3 это должен быть Sprite. Затем, когда ваш плеер (FLVPlayback) будет создан, вам просто нужно добавить его в список отображения:

import fl.video.FLVPlayback;

public class Main extends Sprite
{
    private var flvPlayback:FLVPlayback;

    public function testMyWorld() 
    {    
        flvPlayback = new FLVPlayback(); 
        flvPlayback.skin = "none" 
        flvPlayback.autoPlay = false;
        flvPlayback.source = "FLVSkyrim.flv"    
        addChild(flvPlayback);    
    }

}

Будьте просты, вам не нужны все эти классы;)

person Kodiak    schedule 24.04.2013

Это сложно, потому что FlashPunk заменяет список отображения настраиваемым средством визуализации на основе Bitmap.

Ваш объект World не является обычным экранным объектом и не может содержать компонент FLVPlayback.

Лучше всего прикрепить видеоплеер к сцене. Ваш основной класс (расширяющий Engine) - это экранный объект, поэтому он имеет ссылку на сцену.

Сначала вам нужна глобальная ссылка на ваш главный экземпляр, чтобы вы могли найти сцену:

public class Main extends Engine
{
    static public instance:Main; // global static reference

    public function Main():void
    {
         instance = this;
         ...
    }
}

Теперь вы можете прикреплять экранные объекты на сцене (поверх сцены FlashPunk):

public class testMyWorld extends World
{
    private var player:MyPlayer; // your FLV player class extending Sprite

    public function testMyWorld() 
    {
        player = new MyPlayer();
    }

    // when the world is shown
    override public function begin():void 
    {
         Main.instance.stage.addChild(player);
    }

    // when the world is hidden
    override public function end():void 
    {
         if (player.parent) Main.instance.stage.removeChild(player);
    }
}

PS: я на самом деле не запускал этот код

person Philippe    schedule 24.04.2013