flash lite2.0学习笔记之一——加载外部图象和声音

发布于 2006-05-06  2.86k 次阅读


和在 Flash Lite 1.1 中一样,在 Flash Lite 2.0 中可以使用loadMovie() 函数(或等效的MovieClip 对象的 loadMovie() 方法)将外部 SWF 文件加载到应用程序中。

同样,加载外部声音,可以使用 Sound.loadSound() 方法。在 Flash Lite 2.0 中,能使用此方法加载手机支持的任何声音格式。外部声音必须完全加载到内存中,然后才能播放。

和在 Flash Lite 1.1 中一样,在 Flash Lite 2.0 中可以使用loadMovie() 函数(或等效的MovieClip 对象的 loadMovie() 方法)将外部 SWF 文件加载到应用程序中。此外,在 Flash Lite 2.0 中,还可以使用 loadMovie() 函数来加载设备支持的任意图像格式。
事例如下:
image_mc.loadMovie("http://bbs.javascript.com.cn/image/msn/logo.gif");

loadMovie("http://bbs.javascript.com.cn/image/msn/logo.gif", "image_mc");

如果你不知道你的手机支持的图像格式,可以使用 System.capabilities.imageMIMETypes 属性,其中包含一个由支持的图像 MIME 类型构成的数组。该数组中每个元素的索引就是每个支持的 MIME 类型。
下面的代码将在加载外部png图片文件之前确定该设备是否支持png图像:
事例如下:
if (System.capabilities.imageMIMETypes["image/png"]) {
loadMovie("images/image.png", "mc_myPngImage");
}

另外FlashLite2.0在每帧中可以执行的 loadMovie() 操作数限制为 5,而将任一时刻执行的总操作数限制为 10。也就上说每 1 帧上最多可以加载5个外部图像,如果多于5,其他的就会加载不上。
事例如下:
image1.loadMovie("image1.jpg");
image2.loadMovie("image2.jpg");
image3.loadMovie("image3.jpg");
image4.loadMovie("image4.jpg");
image5.loadMovie("image5.jpg");
image6.loadMovie("image6.jpg"); // 不会加载

一般的解决方法是在多个帧上拆分 loadMovie() 调用,这样,每个帧都可以最多包含五个 loadMovie() 调用。

同样,加载外部声音,可以使用 Sound.loadSound() 方法。在 Flash Lite 2.0 中,能使用此方法加载设备支持的任何声音格式。外部设备声音必须完全加载到内存中,然后才能播放。

以下有关在 Flash Lite 2.0 中播放外部设备声音的信息很重要,需要记住:
一、与 Flash Player 的桌面版本不同,在 Flash Lite 2.0 中始终将外部加载的声音视为事件声音。这意味着外部设备声音不被作为数据流处理,即无法在下载过程中播放。声音数据必须完全下载,然后才能播放该声音。出于相同原因,必须调用 Sound 对象的 start()方法,才能在声音完全加载后播放声音(请参见下面的代码示例)。
二、loadSound()方法的 Flash Lite 2.0 实现不支持该方法的第二个参数(isStreaming)。如果出现此参数,Flash Lite 将忽略它。
三、Flash Lite 2.0 本身不能播放外部加载的 MP3 文件。如果您的应用程序加载了外部 MP3 文件,Flash Lite 会像处理任何外部加载的声音文件一样,将该声音数据传递给设备进行解码和播放。

下面的代码演示了如何加载和播放外部声音文件:

// 创建声音对象。
var mySound:Sound = new Sound();
// 为声音定义 onLoad 处理函数,
// 该处理函数将在声音完全加载后立即启动声音。
mySound.onLoad = function(success){
if(success == true) {
mySound.start();
}
}
// 加载声音。
mySound.loadSound("http://www.macromedia.com/audio.midi");


有些随风有些入梦