Flash外部文件在我的Symfony项目中不起作用

时间:2015-03-26 23:08:08

标签: actionscript-3 flash symfony

我正在处理我使用Symfony制作的投资组合,并且在我的投资组合中添加我的一个Flash项目时遇到了问题。

我的flash项目使用外部文件,因此我将一个带有thos文件的文件夹放在我的swf旁边。如果我双击我的swf,它会正确打开项目并且一切正常,但是当我在页面中添加项目时,它不会加载externla文件。这是我的网络目录的结构:

幅 - 捆绑    - 上市     --projets(它意味着项目的法语)        - 闪         Tech_Boy.swf         techBoyMediaExternes(这是外部媒体文件)

以下是我用来集成它的代码:

<object width="{{ projet.largeur }}" height="{{ projet.hauteur }}"
    classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
    codebase="http://fpdownload.macromedia.com/
    pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">
    <param name="{{ projet.nom }}" value="{{ asset("bundles/public/projets/flash/"~ projet.fichier) }}">
    <embed src="{{ asset("bundles/public/projets/flash/"~ projet.fichier) }}" width="{{ projet.largeur }}" height="{{ projet.hauteur }}">
    </embed>
    </object>

我以这种方式访问​​我的文件:

this._ambianceSon = new Sound();
this._ambianceSon.load(new URLRequest("techBoyMediasExternes/son/Musique_Ambiance.mp3"));

对于图片,我使用自定义类:

package classes.medias{

    import flash.net.URLRequest;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.display.Bitmap;
    import flash.display.BitmapData;

    public class Image extends Bitmap {

        /*Cette classe permet de récupérer les données BitmapData d'une image chargée dans un Loader
        L'avantage est qu'un objet d'affichage de type Bitmap est moins lourd en mémoire
        qu'un objet Loader*/

        //Constantes de la classe pour quand on dispatch des événements
        public static const IMAGE_CHARGEE:String = "imageChargee";

        //Fonction constructive de la classe
        public function Image(pLien:String) {

            //Lien de l'image externe
            var lien:URLRequest=new URLRequest(pLien);

            //On télécharge l'image
            var loader=new Loader();
            loader.load(lien);
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,recupererDatas);

        }

        //Quand l'image externe est chargée, on récupère ses données BitmapData
        private function recupererDatas(pEvt:Event):void {

            //Récupérer l'image chargée dans le Loader
            var imageChargee:Bitmap = pEvt.target.content as Bitmap;

            //Récupérer les données bitmap de l'image chargée
            this.bitmapData = imageChargee.bitmapData;

            //On dispatch l'événement pour dire que l'image est chargée
            this.dispatchEvent(new Event(Image.IMAGE_CHARGEE));

        }

    }//Fermeture de public class Personnage extends Bitmap

}//Fermeture du package

1 个答案:

答案 0 :(得分:0)

您最好的选择是将flash var(参数)传递给flash影片,同时将其嵌入到html中。这样你就可以告诉Flash哪个是加载剪辑的正确路径(甚至可以说是哪个是绝对的root / current flash文件夹)。然后加载来自此特定域的swf!