0

为什么自动完成对包含的 *.as 文件中的函数局部变量不起作用?例如:

主要.mxml:

<fx:Script>  
<![CDATA[
  include "code.as";     // or <fx:Script source="code.as"/>, doesn't matter  
]]>  
</fx:Script>

代码.as:

import mx.controls.Button;
var foo:Button = new Button();
foo.   <---- autocompletion is working here

function myFunc() {
  var bar:Button = new Button();
  bar.   <----- doesn't work
}
4

1 回答 1

3

只有在导入了代码类或类扩展了 .as 类时,自动补全才会起作用。必须是一个 Class。当您使用'include code.as'时,code.as 不是一个类,它基本上只是变量、导入和函数的集合,因此自动完成无法像类一样访问它。

代码隐藏模式类似于您所做的(从 mxml 中分离逻辑),并允许自动完成。要使用它:

  1. 创建一个 Actionscript 类来扩展您要使用的 MXML 控件,例如 HBox 或 UIComponent
  2. 将所有逻辑放在这个 Actionscript 类中。
  3. 然后创建一个扩展 Actionscript 类的 MXML 类。

代码完成将在您的新自定义 MXML 类中工作,以访问公共/受保护的变量和函数。

于 2011-01-18T12:14:58.737 回答