所以我试图为我的flash文件安装一个基本的预加载器,其中的movieclip的文本会根据文件的加载百分比而变化。通过文本,我的意思是它讲述了一个简短的故事,因为文件的主要部分加载了。不仅仅是%loading的数字表示。
我搜索过搜索和搜索,但我发现的所有内容都只使用了我不想要的进度条!
我的flash文件是三帧,第一帧是:
var amountLoaded:Number = Math.round(this.getBytesLoaded()/this.getBytesTotal() * 100);
preloadText.gotoAndStop(Math.ceil(amountLoaded));
第二帧是:
if(_root.getBytesLoaded() == _root.getBytesTotal()) {
gotoAndPlay(3);
}
else {
gotoAndPlay(1);
}
第三个是文件的实际肉和土豆,它起作用。
问题是,我得到了这些编译错误
Scene 1, Layer 'actions', Frame 2, Line 1 1180: Call to a possibly undefined method getBytesLoaded.
Scene 1, Layer 'actions', Frame 2, Line 1 1180: Call to a possibly undefined method getBytesTotal.
这让我感到沮丧!
答案 0 :(得分:0)
您是否正在使用舞台的文档类? MovieClip(root)用于从文档类的舞台框架或子框架调用文档类。所以,MovieClip(root).getBytesLoaded();
答案 1 :(得分:0)
这是在时间轴上以各种帧编码而不是将所有代码保存在一个外部.AS文件中的问题,该文件作为所有帧中所有内容的单个控制点。现在,您的一些代码存在丢失范围的风险。示例是..第5帧中的变量A对于第6帧中的变量B没有任何意义,因此它们无法一起工作等等。
无论如何,这可能会有所帮助。我很久没有使用时间轴代码了,但我确信enterFrame会像这样工作:
第1帧:
stop(); //stop here until load completes
var amountLoaded:int; //is now Integer not Number;
//run function to update as the movie loads
addEventListener(Event.ENTER_FRAME, onFrameEnter);
function onFrameEnter(event:Event):void
{
amountLoaded = this.getBytesLoaded()/this.getBytesTotal() * 100;
//show number in textfield called "load_amount"
load_amount.text = String(amountLoaded) + " %";
//update messages MC to new frame number
//preloadText.gotoAndStop(amountLoaded);
//checks status of SWITCH element and update according to the found case
switch (amountLoaded)
{
case 0:
preloadText.gotoAndStop(1); //frame 1
case 25:
preloadText.gotoAndStop(2); //frame 2
case 50:
preloadText.gotoAndStop(3); //frame 3
case 75:
preloadText.gotoAndStop(4); //frame 4
}
//if Loaded is equal-to/greater than Total assume ready for frame 3
if (bytesloaded >= bytestotal)
{
removeEventListener(Event.ENTER_FRAME, onFrameEnter);
this.gotoAndPlay(3);
//removeChild(preloadText); //consider this since wont be needed on Frame 3
}
}
确保在创建文本字段时... - 它被称为" amount_loaded"作为实例名称 - 您的字体是嵌入的。 窗口 - > 属性 - >(向下滚动到字符)并选择字体+单击嵌入在它的旁边。当嵌入选项出现时,请确保勾选数字和标点符号。祝你好运