しかし、サウンドを再生するためにフラッシュドライブを作成しようとすると、約5 =年間フラッシュを使用していなかったことを突然思い出しました(コンポーネントを作成する代わりに、既製のものを探し始めました...
ほぼすぐに、「 JavascriptでのFlashオブジェクトの管理 」という記事を見つけました。この記事では、 apelsynがサウンドとメロディーなどのミニプレーヤーの例だけで、JSとFlashのインターフェイスを構築する方法を明確に示しました。 フラッシュを勉強してから、多くのことが変わりました。 Action Scriptは、原始的なマクロ言語から強力なスクリプト言語に進化しました。 そして、 apelsynがそのように十分詳細にそれをかみ砕き 、ソースをレイアウトしたという事実にもかかわらず、私はFlash CS4でその経験を繰り返すことはできませんでした=(編集せずにSWFを使用することにしましたが、ここでは待ち伏せを待っていました。 アペルシンはコードに着信音を規定しており、最悪の事態は相対的です。その結果、メインページで彼のフラッシュドライブは問題なく音を再生しましたが、サイトの奥深くに行くと、フラッシュドライブはエラーを吐き出しました。
当時、「5分で音を留める」というアイデアが数時間にわたって実現しました。 音を出したかったのですが、方向性を失い、壁にぶつかり、ロボットのように感じました。 一方で、私の中のビジネスマンは、「それを忘れて後でやる。極端な場合、free-lance.ruに行くことができる」と言ったが、プログラマーは「さて、あなたは怠け者で、サウンドを再生するためのフラッシュドライブを書くことはできない」を繰り返すことに飽きませんでした。
その結果、私はついに怒って、新しいフラッシュプロジェクトを開いて、まだこのプレーヤーを書いたのですが、悪魔は本当にそれほど怖くないことが判明しました。 apelsynを尊重することで、コードは10分の1になり、機能しました。これは重要です。
フラッシュファイル:
import flash.external.ExternalInterface;
ExternalInterface.addCallback( "playMusic" , playMusic);
ExternalInterface.addCallback( "stopMusic" , stopMusic);
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
var _sound:Sound;
var _channel:SoundChannel;
function playMusic(file:String= '' , count: int =0)
{
_sound = new Sound( new URLRequest(file));
_channel=_sound.play(0,count);
}
function stopMusic() {
_channel.stop();
}
* This source code was highlighted with Source Code Highlighter .
およびJSコード:
function musicLoad()
{
swfobject.embedSWF( "/swf/music.swf" , "sound" , "0" , "0" , "9.0.0" );
}
function musicPlay (file, count)
{
if (!file)
{
file= '/sound/default.mp3' ;
}
if (!count)
{
count=1;
}
document .getElementById( 'sound' ).playMusic(file, count);
}
function musicStop ()
{
document .getElementById( 'sound' ).stopMusic();
}
* This source code was highlighted with Source Code Highlighter .
したがって、スクリプトを機能させるには、swfobject.jsを接続する必要があります。次のようなものを使用します。
musicPlay( '/sound/123.mp3' );
musicStop();
* This source code was highlighted with Source Code Highlighter .
それはそのようなものです=)
追伸:私はフラッシュの第一人者のふりをすることはありません。反対に、私はどんな批判にも喜んで、コードのすべての不正確さを修正します。