在项目中使用变量

在使用 Flash 生成动画或应用程序时,在项目中不需要使用任何种类的变量的情形是很少见的。例如,如果要构建一个登录系统,可能需要使用变量来确定用户名和密码是否有效,或者它们是否根本没有被填写。

"使用外部数据"中可以找到有关加载变量(例如名称/值对)的详细信息。

在下例中,将使用变量来存储使用 Loader 类加载的图像的路径,使用一个用于 Loader 类的实例的变量,并使用几个根据文件是否成功加载而调用的函数。

在项目中使用变量:

  1. 创建一个新的 Flash 文档,并将它保存为 imgloader.fla
  2. 在时间轴中选择第 1 帧,在"动作"面板中,添加下面的 ActionScript:
    /* 指定默认图像以备未用 FlashVars 传递值时使用。 */
    var imgUrl:String = "http://www.helpexamples.com/flash/images/image1.jpg";
    if (_level0.imgURL != undefined) {
        // 如果已指定了图像,将覆盖默认值。
        imgUrl = _level0.imgURL;
    }
    
    this.createEmptyMovieClip("img_mc", 10);
    var mclListener:Object = new Object();
    mclListener.onLoadInit = function(target_mc:MovieClip):Void {
        target_mc._x = (Stage.width - target_mc._width) / 2;
        target_mc._y = (Stage.height - target_mc._height) / 2;
    }
    mclListener.onLoadError = function(target_mc:MovieClip):Void {
        target_mc.createTextField("error_txt", 1, 0, 0, 100, 20);
        target_mc.error_txt.autoSize = "left";
        target_mc.error_txt.text = "Error downloading specified image;\n\t" + target_mc._url;
    }
    var myMCL:MovieClipLoader = new MovieClipLoader();
    myMCL.addListener(mclListener);
    myMCL.loadClip(imgUrl, img_mc);
    

    代码的第一行指定了要动态加载到 Flash 文档中的图像。接下来,检查是否使用 FlashVars 或 URL 编码的变量为 imgURL 指定了一个新值。如果已指定了一个新值,默认图像的 URL 将被该新值覆盖。有关使用 URL 变量的信息,请参阅使用 URL 中的变量。有关 FlashVars 的信息,请参阅在应用程序中使用 FlashVars

    代码中接下来的两行定义了 MovieClip 实例,和一个用于将来的 MovieClipLoader 实例的 Listener 对象。MovieClipLoader 的 Listener 对象定义了两个事件处理函数,onLoadInitonLoadError。在图像加载成功并在舞台上进行了初始化时,或在图像加载失败时,将调用这两个处理函数。然后您可以创建一个 MovieClipLoader 实例,使用 addListener() 方法将前面定义的 listener 对象添加到该 MovieClipLoader 中。最后,在调用 MovieClipLoader.loadClip() 方法(该方法指定要加载的图像文件和该图像要加载到的目标影片剪辑)时,将下载并触发图像。

  3. 选择"控制">"测试影片"来测试该文档。

    因为您是在创作工具中测试 Flash 文档,imgUrl 的任何值都不会通过 FlashVars 或随 URL 传递,因此将显示默认图像。

  4. 保存该 Flash 文档,并选择"文件">"发布"将该文件发布为 SWF 和 HTML 文档。

    注意

    确保在"发布设置"对话框中同时选中了"Flash"和"HTML"。选择"文件">"发布设置",然后单击"格式"选项卡。然后,选择这两个选项。

  5. 如果您在 Flash 工具(选择"控制">"测试影片")或在本地浏览器("文件">"发布预览">"HTML")中测试文档,您将看到图像在舞台上在垂直和水平方向上自动居中显示。
  6. 在编辑器(例如 Dreamweaver 或记事本)中编辑生成的 HTML 文档,并修改默认的 HTML 使它与以下文本匹配:
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.adobe.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="imgloader" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="movie" value="imgloader.swf" />
    <param name="FlashVars" value="imgURL=http://www.helpexamples.com/flash/images/image2.jpg">
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
    <embed src="imgloader.swf" quality="high" FlashVars="imgURL=http://www.helpexamples.com/flash/images/image2.jpg" bgcolor="#ffffff" width="550" height="400" name="imgloader" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
    </object>
    
  7. 测试 HTML 文档以查看所做的更改。您在 HTML 代码中指定的图像出现在 SWF 文件中。

    要修改此示例以使用自己的图像,应该修改 FlashVars 值(双引号中的字符串)。