Flash / AS3 ...设计人员如何修改以编程方式添加的控件?

Posted

技术标签:

【中文标题】Flash / AS3 ...设计人员如何修改以编程方式添加的控件?【英文标题】:Flash / AS3... how would a designer modify an control that was added programmatically? 【发布时间】:2010-12-27 19:35:37 【问题描述】:

如果我要通过外部类向 Flash 项目添加一个表单(两个输入和一个按钮),其他团队成员是否可以在.fla 项目文件?

就目前而言,我假设我的 AS3 用户控件是在编译时添加的,因此无法从 Flash IDE 访问。但是有没有一种方法可以通过 IDE 控制按钮的视觉特征,并通过外部 AS3 类控制按钮的所有功能?

谢谢!

【问题讨论】:

【参考方案1】:

这绝对是可能的。正如您可以为您的 FLA 定义一个文档类一样,您可以为 MovieClip 执行类似的过程。

将您的 MovieClip 放入库中(大概其中包含您的 UI),右键单击并选择“属性”并展开该窗口。填写如下:

alt text http://img163.imageshack.us/img163/9787/symbolproperties.png

从那里,您可以在 ActionScript 文件中定义基类,并通过在基类顶部定义它们来访问您在 MovieClip 中定义的实例变量对象。

MyCustomMC.as 位于您的 class_root/net/dostrosity/MyCustomMC.as Flash 可能会抱怨您将 MovieClip 分配给此类,如果 它还不存在。它将评论创建默认类 在那个事件中为你。点击复选框是一种确认 Flash 找到您的文件,点击铅笔将打开该文件进行编辑。

package net.dotstrosity.MyCustomMC 

import flash.display.MovieClip;

    public class MyCustomMC extends MovieClip 

        private var okBtn:MovieClip;
        private var cancelBtn:MovieClip;
        private var nameField:TextInput;

        public function MyCustomMC() 
            //constructor that can add mouse events
            //to okBtn and cancelBtn that were placed
            //inside your MovieClip on the stage and
            //given the instance names "okBtn" and "cancelBtn".

            okBtn.addEventListener(MouseEvent.CLICK, pressedOk);
        

        private function pressedOk(e:MouseEvent):void 
            //do something else...maybe...
            nameField.txt.enabled = false; //pseudo crap code
        
    

【讨论】:

如果您觉得此答案有用,请标记为您接受的答案,否则请告诉我您需要澄清的地方,我很乐意为您提供帮助。

以上是关于Flash / AS3 ...设计人员如何修改以编程方式添加的控件?的主要内容,如果未能解决你的问题,请参考以下文章

在 AS3 Flash Builder 中为 SWF 创建预加载器

flash as3如何获取实例名字中的数字

如何使用 Flash (AS3) 从远程域调用 Flex SWF?

如何在 flash(as3) 中检测实例来自哪个类

用flash as3语言如何将影片剪辑存入一个数组以及如何访问?

flash AS3 如何删除舞台事件侦听器