getDefinitionByName 选自ActionScript3.0 API手册

本文详细介绍了ActionScript3.0中GetDefinitionByName方法的使用方式,包括其参数、返回值以及可能引发的异常。通过示例代码演示如何在舞台上创建一个橙色的正方形,并解释了类引用和动态类引用的区别。

 

语言版本 : ActionScript 3.0
RuntimeVersions: AIR 1.0, Flash Player 9

返回 name 参数指定的类的类对象引用。

参数

 name:String — 类的名称。

返回

 Object — 返回 name 参数指定的类的类对象引用。


引发

 ReferenceError — 不存在具有指定名称的公共定义。

(注:如果尝试对密封(非动态)对象使用未定义属性的引用,将引发 ReferenceError 异常。引用未定义变量将导致 ReferenceError 异常,通知您潜在的错误并帮助您排除应用程序代码故障。

但是,引用动态类的未定义属性不会引发 ReferenceError 异常。


示例

以下示例使用 GetDefinitionByNameExample 类在舞台上创建一个橙色的正方形。这是使用以下步骤完成的:
  1. 声明代表橙色背景颜色和 80 像素大小的变量,这些变量稍后将用于绘制正方形。
  2. 在构造函数内,将 Class 类型的变量 ClassReference 赋予 Sprite。
  3. 对名为 instance 的 ClassReference 的实例进行实例化。
  4. 由于 instance 按引用是 Sprite 对象,因此可以使用可用于 Sprite 的方法绘制正方形并将其添加到显示列表。
package {
    import flash.display.DisplayObject;
    import flash.display.Sprite;
    import flash.utils.getDefinitionByName;

    public class GetDefinitionByNameExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 80;

        public function GetDefinitionByNameExample() {
            var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class;
            var instance:Object = new ClassReference();
            instance.graphics.beginFill(bgColor);
            instance.graphics.drawRect(0, 0, size, size);
            instance.graphics.endFill();
            addChild(DisplayObject(instance));
        }
    }
}

 

<think>好的,用户想了解如何通过代码控制影片剪辑的隐藏和显示,特别是用ActionScript。首先,我需要回忆一下ActionScript的基本语法,尤其是控制Movie Clip可见性的方法。记得在ActionScript 3.0中,显示对象有visible属性,可以设置为true或false来控制可见性。同时,可能还需要提到如何获取Movie Clip的实例,因为如果实例没有被正确命名或导出,代码可能无法访问到它。 然后,用户的问题可能涉及到具体的步骤,比如如何在Flash IDE中设置Movie Clip为导出,分配类名,然后在代码中引用。需要确保用户了解这两个步骤:首先在IDE中正确设置,然后在代码中使用实例名称或类名来操作对象。 另外,用户可能对动态创建实例也有需求,比如通过ActionScript动态生成Movie Clip并控制其可见性。这时候可能需要使用addChild和removeChild方法,或者结合visible属性。需要区分这两种方法的差异:visible只是隐藏,而removeChild则是从显示列表中移除,释放资源。 还要考虑到用户可能的常见错误,比如忘记导出为ActionScript,或者实例名称拼写错误,导致运行时错误。这时候需要提醒用户检查这些点,并提供示例代码来演示正确用法。 最后,可能需要对比AS2和AS3的不同,因为用户可能使用的是旧版本的ActionScript。但根据当前主流,应该以AS3为主,但也可以简要提及AS2的方法,比如使用_visible属性。 总结回答结构:先介绍visible属性的使用,然后说明如何在IDE中设置导出,接着给出代码示例,包括静态和动态创建实例的情况。最后附上相关问题,帮助用户深入理解。</think>在ActionScript 3.0中控制影片剪辑可见性主要通过`visible`属性实现,同时需注意对象实例的获取方式。以下是具体实现方法: ### 一、基础可见性控制 1. **设置visible属性** ```actionscript // 隐藏影片剪辑 myMovieClip.visible = false; // 显示影片剪辑 myMovieClip.visible = true; ``` 2. **通过IDE设置实例名称** 在Flash创作环境中: - 选择舞台上的影片剪辑 - 属性面板输入实例名称`myMovieClip` - 勾选"导出为ActionScript"[^1] ### 二、动态创建实例 ```actionscript // 1. 关联库中的影片剪辑 var DynamicClip:Class = getDefinitionByName("MyLibrarySymbol") as Class; // 2. 创建实例并设置可见性 var newClip:MovieClip = new DynamicClip(); newClip.visible = false; addChild(newClip); ``` ### 三、可见性控制进阶 1. **完全移除对象** ```actionscript // 从显示列表移除 removeChild(myMovieClip); // 重新添加显示 addChild(myMovieClip); ``` 2. **透明度控制(附加功能)** ```actionscript myMovieClip.alpha = 0.5; // 半透明效果 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值