我正在通过“Foundation Actionscript 3.0”一书中的音频播放器演示。当我尝试发布我的AudioDemo_final.FLA文件时,我收到以下错误,“Adobe Flash CS3 - 创建Flash电影文件时出错。目标目录不存在。更改您的发布设置。”
以下内容显示在我的输出面板>>打开网址'file:/// C | /Sites/flashcoder.net/FAS3/Audio/AudioDemo%5Ffinal.swf'时出错
我的文件目录设置如下: AudioDemo_final.fla song1.mp3 com.fas3.smc(文件夹) Main.as Sounds.as
//com.fas3.smc/Main.as
package com.fas3.smc {
import flash.display.MovieClip;
import com.fas3.smc.Sounds;
import com.fas3.smc.ButtonManager;
import flash.text.TextField;
import flash.display.SimpleButton;
public class Main extends MovieClip {
private var soundManager:Sounds;
private var buts:ButtonManager;
public function Main() {
soundManager=new Sounds(movScrubber, txtStatus, txtHeadPosition, txtTrackLength, txtArtist, txtTitle, volumeSlider, panSlider);
soundManager.loadSong( song1.mp3 );
addChild(soundManager);
}
}
}
//com.fas3.smc/Sounds.as
package com.fas3.smc {
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundLoaderContext;
import flash.media.SoundTransform;
import flash.media.ID3Info;
import flash.events.Event;
import flash.display.MovieClip;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.utils.Timer;
import flash.events.TimerEvent;
import fl.controls.Slider;
import fl.events.SliderEvent;
public class Sounds extends MovieClip {
private var snd1:Sound;
private var sc:SoundChannel;
private var buffer:SoundLoaderContext;
private var timerLoading:Timer;
private var timerPlayHead:Timer;
private var timerFF:Timer;
private var timerRW:Timer;
private var timerSpectrum:Timer;
private var barWid:int = 200;
private var barHi:int = 5;
private var bytLoaded:int;
private var bytTotal:int;
private var pctLoaded:int;
private var trueChronoLength:Number;
private var txtStatus:TextField;
private var txtTrackLength:TextField;
private var txtHeadPosition:TextField;
private var txtArtist:TextField;
private var txtTitle:TextField;
private var movScreen:MovieClip;
private var movScrubber:MovieClip;
private var multiplier:Number;
private var nsMinutes:Number;
private var nsSeconds:Number;
private var pauseStatus:Boolean;
private var playHeadPosition:Number;
private var volumeSlider:Slider;
private var panSlider:Slider;
private var stVolume:SoundTransform;
private var tempVol:Number=0.5;
private var tempPan:Number=0;
private var trackEnd:Boolean;
private var trackStart:Boolean;
public function Sounds(movScrubber:MovieClip, txtStatus:TextField, txtHeadPosition:TextField, txtTrackLength:TextField, txtArtist:TextField, txtTitle:TextField, volumeSlider:Slider, panSlider:Slider) {
//Set movies and text fields to local references and to start positions and contents
this.movScreen=movScreen;
this.movScrubber=movScrubber;
this.txtStatus=txtStatus;
this.txtHeadPosition=txtHeadPosition;
this.txtTrackLength=txtTrackLength;
this.txtArtist=txtArtist;
this.txtTitle=txtTitle;
this.volumeSlider=volumeSlider;
this.panSlider=panSlider;
timerLoading=new Timer(100, 0);
timerLoading.addEventListener(TimerEvent.TIMER, onLoading);
timerLoading.start();
}
public function loadSong(song:String):void {
snd1=new Sound(new URLRequest(song))
snd1.addEventListener(Event.ID3, id3Handler)
}
public function onLoading(event.TimerEvent):void {
bytLoaded = snd1.bytesLoaded;
bytTotal = snd1.bytesTotal;
if((bytTotal >= bytLoaded)&&(bytLoaded > 0)) {
if(txtStatus.text!= Playing ) {
txtStatus.text= Loading ;
}
movScrubber.movLoaderBar.width=((bytLoaded/bytTotal) * 400);
if(bytLoaded == bytTotal) {
if(txtStatus.text= Loading ) {
txtStatus.text= Load Complete ;
}
timerLoading.stop()
}
}
}
}
}
答案 0 :(得分:3)
这意味着您要将SWF发布到的目录不可写或不存在。检查文件夹路径是否确实存在并且可以写入。很多时候,如果我将项目移动到不同的位置,但在我的FLA中使用硬编码的发布路径,则会抛出此错误。它位于File-> Publish Settings-> Formats。
答案 1 :(得分:1)
您使用的是外置硬盘吗?我曾经遇到过同样的问题。将FLA文件复制到桌面或本地文件夹,这应该解决它。祝你好运。
答案 2 :(得分:1)
检查保存此文件的文件夹,如果该文件夹具有只读权限而不是此错误,并且如果删除只读权限,则一切都将按预期工作。 我试过了,它工作得非常好。
答案 3 :(得分:1)
我知道这个帖子有点晚了,但我遇到了同样的问题。问题突然出现,因为我实际上点击了浏览按钮并选择了要发布的文件夹。
不要浏览,只需点击“默认”即可。这些文件将发布到.fla文件所在的目录中。没有更奇怪的错误消息。