无法将数据从子传递给子

时间:2010-06-25 04:11:39

标签: flex actionscript-3

我有一个父母和两个孩子。我试图将数据从child1传递给child2,但不断收到错误消息:1061:通过带有静态类型的引用调用可能未定义的方法。

在child1中,我有以下代码:

[Bindable]
public var TestVar:String='sometext';

在child2中我试图获取TestVar的值,然后将其用作通过php搜索mysql数据库的值。:

  var newTestVar:String = child1.TestVar;
  if(newTestVar != null){
    getResult.token = someService.get_filtered_Paged(newTestVar);
  }

  else{
    getSecResult.token = someService.get_paged(); 
  }

4 个答案:

答案 0 :(得分:-1)

public var TestVar:String='sometext';更改为public static var TestVar:String='sometext'; 您收到此错误的原因是您在静态上下文中尝试访问变量TestVar时未将其标记为静态。

答案 1 :(得分:-1)

@ape是对的,你应该使用静态或使用MVC来注入属性。

答案 2 :(得分:-1)

您收到此错误是因为您将child1声明为child1实际上的超类。在那里定义TestVar是很自然的。最重要的是,超类不是动态的,因此您需要使用以下命令访问该字段:

child1["TestVar"];

这不会产生编译错误,如果child1持有的实例是正确的,那么在运行时访问该字段应该没有问题。

答案 3 :(得分:-1)

假设您在MyClass1中定义了TestVar。将child1投射到该类型:

var newTestVar:String = MyClass1(child1).TestVar;

如果这没有帮助,请发布更多部分代码。