Flash Designer 中的 AS3 组件

2024-01-13

在 ActionScript 2 项目中,我可以创建一个新的 MovieClip,在库上右键单击它并选择“组件定义”以添加可在 MovieClip 内引用的参数。可以在影片剪辑的属性中轻松更改此参数。

现在,我正在开发一个 ActionScript 3 项目,但无法找到一种方法来获取在这些参数中传递的值。

我定义了一个名为“textToDisplay”的参数,但是当我在第一帧的操作中编写以下内容时,出现错误:

trace(textToDisplay);

这是错误:

1120: Access of undefined property textToDisplay.

您知道如何捕获该参数的值吗?

Thanks

PS:我在 Windows XP 上使用 Adob​​e Flash CS3 Professional


考虑到找到有关自定义组件设置的信息是多么困难,我想我会根据我的经验来澄清该过程的某些方面。

初始化事件:

上面的例子在大多数情况下都是正确的,但有一个例外。

addEventListener(Event.INIT, onInit);

应该:

loaderInfo.addEventListener(Event.INIT, onInit);

DisplayObject 的 loaderInfo 属性引用 LoaderInfo,您的组件从中获取其参数设置。 INIT 事件在获取数据后被调用(或者您可以使用 COMPLETE 事件,该事件应在 INIT 之后直接触发)

可检查的元数据:

当您使用元数据 [Inspectable] 标签设置要访问的属性时,您还可以使用以下方式定义默认值:

 [Inspectable(defaultValue="whatevervalue")]

根据我的经验,这些参数似乎在处理除字符串(可能还有数字)之外的任何内容时都遇到困难,因此我建议使用设置函数来获取字符串值并使用它们来获取您可能想要的其他值。例如,如果您想加载特定命名类的新实例

 [Inspectable(defaultValue="flash.display.Sprite")]
public function set className(value:String):void{
       var ClassReference:Class = getDefinitionByName(value) as Class;
       _class = new ClassReference();
}

在此示例中,如果参数设置为“flash.display.Sprite”,则调用“new _class()”将创建一个新的 Sprite 实例。

设置大小功能:

如果您希望自定义组件以其他方式调整大小,而不仅仅是拉伸高度和宽度值,则需要公共 setSize 函数。每次在 Flash 中调整组件大小时都会调用此函数。

public function setSize(w:Number, h:Number):void{
   _menuWidth = w;
   _menuHeight = h;
}

现在,当您在 Flash 中调整组件大小时,这非常有效,但是一旦您实际发布 swf 文件,您会注意到它会切换回拉伸宽度和高度,而不是使用 setSize 函数(我不知道为什么,但这就是它的作用)。要解决此问题,在 onInit 函数中,您需要获取宽度和高度,将它们输入到 setSize 中,然后将scaleX和scaleY值重置回1:

public function onInit(e:Event):void{
   setSize(width,height);
   scaleX = 1;
   scaleY = 1;
   //add other functions that need to be run once the parameters are loaded
}

(如果有人找到了一种不那么混乱的方法,请告诉我们)

希望这可以帮助人们启动并运行他们的自定义组件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flash Designer 中的 AS3 组件 的相关文章

  • 我应该等待 Flash Player 10.1 还是使用 Flash Lite 3 来为手机和设备开发 Flash 内容

    Adobe 将在 2010 年第一季度推出 Flash Player 10 1 这将在桌面和移动设备上提供一致的运行时 因此我假设如果它是为 Web 构建的 那么它也可以在移动设备上运行 我即将开始为手机开发基于 Flash 的应用程序 我
  • 将日期转换为 UTC 的正确方法

    如果这个问题没有多大意义 我很抱歉 但我是 Actionscript 的新手 并且想知道您是否可以帮助我解决这个问题 我正在构建一个给定时区的应用程序 告诉您该位置的时间 当我使用时区为 GMT UTC 的位置时 它效果很好 但如果主机上的
  • Flash 照片上传 - 从网络摄像头拍摄照片 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从 JW Player 5.1 中提取 .flv 流?

    问题是我的互联网连接速度很慢 并且视频不像 YouTube 那样缓冲 因此我想知道是否可以提取 JW Player 中正在流式传输的 flv 文件的 url 并直接下载它 做了一些初步研究 我发现了以下信息 主要视频网址 http ijf1
  • Flash 图表和图形的最佳解决方案是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道融合图表 http www fusioncharts com 还有其他好的解决方案或 API 用
  • 将 < 或 > 运算符作为参数传递给函数?

    我的函数里面有一个if 像这样的声明 if passedValue lt staticValue 但我需要能够传递一个参数来指示 if 表达式是像上面那样还是 if passedValue gt staticValue 但我真的无法通过 l
  • 使用ExternalInterface和IE从JavaScript获取Flash中的当前URL

    我正在尝试获取 Flash 播放器当前所在的 URL 不是 swf 文件的 URL 而是浏览器指向的 URL 到目前为止我已经使用过 var st String ExternalInterface call window location
  • Flash Builder 条件编译变量

    我正在使用 Flash Builder 4 5 并且我想在调试和发布版本之间使用条件编译 我了解如何使用条件编译以及如何定义编译器常量 我需要的是 IDE 在调试和发布版本之间设置的预定义常量 一种在调试和发布版本之间为编译器指定不同参数的
  • 如何通过命令行将Flash .fla编译为.swf? [复制]

    这个问题在这里已经有答案了 如何在基于 Windows 的操作系统上通过命令行将 Flash fla 文件编译为 swf 需要安装的命令行工具就可以了 谁能建议我该怎么做 以直接的方式 谢谢 您可以使用JSFL为 Flash IDE 编写脚
  • 在 Javascript 中检测 Flash 文件何时完成播放

    我正在使用 Javascript 将 Flash 文件嵌入到网站中 然后需要在播放完成后将其删除 有没有办法用普通的 Javascript 来做到这一点 或者是否需要将回调类型的函数添加到 Flash 文件本身 我该如何编码 JavaScr
  • AS3 - 是否可以通过对象属性搜索数组?

    是否可以使用 Array indexOf 通过数组中对象的属性来搜索数组 var myArray Array new Array var myMovieClip new MovieClip myMovieClip name foo myAr
  • 处理照片上传的最佳方式是什么?

    我正在为一个家庭成员的婚礼制作一个网站 他们要求的一个功能是一个照片部分 所有客人都可以在婚礼结束后前往并上传他们的照片 我说这是一个很棒的想法 然后我就去实现它 那么只有一个问题 物流 上传速度很慢 现代相机拍摄的照片很大 2 5 兆 我
  • 如何从公共函数返回变量

    我试图摆脱在主时间线上使用代码 但我很难理解 as 文件和 fla 文件如何交互 例如 我试图弄清楚如何将变量从主时间线传递到公共函数 对该变量执行一些操作并将其传递回主时间线 我在框架上有一个输入文本框和一个带有侦听器的简单按钮 我希望能
  • Actionscript 3 中的外部配置文件

    我需要能够将外部配置文件加载到我的 Flex 应用程序中 我读到 只要将 mimeType 设置为 application octet stream 就可以使用嵌入 package learning import org flixel pu
  • FloorPlanner 应用程序的 SVG/Canvas 与 Flash

    我计划创建一个平面图应用程序 允许用户使用鼠标绘制 调整大小 移动和旋转对象 我只是想知道使用 Flash 或 Javascript 是否会更好 如果使用 Javascript 我应该使用 canvas 还是 SVG 该应用程序将允许拖动选
  • var x:* 在动作脚本中到底意味着什么?

    搜索 var 有点棘手 因为大多数搜索引擎都找不到它 与 var Object 相比 我不清楚 var 的确切含义 我认为它可以让我在对象上设置任意属性 例如 var x myObject x nonExistantProperty 123
  • 如何判断一个字符串是否包含特定子串

    给定一个字符串A 如何确定该字符串是否包含子字符串 video x flv A indexOf video x flv gt 0
  • 将 MouseEvent.CLICK 添加到八哥图像

    我有一个容器有很多带有滚动的图像 我添加TouchEvent TOUCH作为事件监听器而不是MouseEvent CLICK 因为八哥不支持MouseEvent 问题是当我在图像之间导航时它会监听TouchEvent虽然我不需要这个 有什么
  • 使用 flash/flex 在客户端硬盘上下载/保存/写入文件

    我想知道如何下载 保存 写入文件我的服务器 to a 客户的计算机使用闪光灯或柔性 我正在寻找的示例可以在http www flexdownloads com http www flexdownloads com Sign up Sign
  • 带有嵌入 Flash 视频的 PDF 示例?

    有谁知道我在哪里可以查看嵌入 Flash 视频的 PDF 示例 我知道问这个问题很愚蠢 因为你会认为任何面向技术的用户都应该能够使用谷歌找到一个 但我真的找不到 我的另一个问题是 使用 C 中的 API 将 Flash 视频嵌入 PDF 文

随机推荐