1

以下のコードでは、このmxmlファイルが存在するsrcディレクトリにmp3を配置しました。したがって、swfがロードされると、ボタンが表示され、mp3を再生できません。これは、パスと関係があります。

  <?xml version="1.0" encoding="utf-8"?>
   <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
    <![CDATA[
        import flash.display.Sprite;
        import flash.display.InteractiveObject;
        import flash.display.Sprite;
        import flash.media.*;
        import flash.net.*;
        import mx.controls.Alert;
        import mx.controls.Button;
        import flash.events.Event;
        import flash.media.Sound;
        import flash.net.URLRequest;



        private function clickhandler(event:Event):void
        {
            var s:Sound = new Sound();
            s.addEventListener(Event.COMPLETE, onSoundLoaded);
            var req:URLRequest = new URLRequest("sound.mp3");   
            s.load(req);

        }

        private function onSoundLoaded(event:Event):void
        {
            var localSound:Sound = event.target as Sound;
            localSound.play();
        }

    ]]>
</fx:Script>
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<mx:Button id="play" label="PLAY" click="clickhandler(event)"  />

</s:Application>
4

1 に答える 1

4

行で:

var req:URLRequest = new URLRequest("sound.mp3");

sound.mp3への完全なURLを指定する必要があります。何かのようなもの

var req:URLRequest = new URLRequest("http://server.name.com/path/to/sound.mp3");

パスをアプリケーションにコンパイルしたくない場合は、Application.urlプロパティを使用して、アプリケーションのロード元のURLを取得できます。それに対してmp3がどこにあるかがわかっている場合は、パスを適切に変更してそこからロードできます。

于 2011-01-12T08:22:11.273 に答える