查看完整版本: 关于不同包内的方法调用

波斯兔 2008-6-30 10:35

关于不同包内的方法调用

我定义了一个setup包,里面代码是这么写的
package setup{
import utilities.*;
import flash.display.*;
public class Welcome extends Sprite {
  public function Welcome() {
   if (isMac()) {
    trace("1");
   } else {
    trace("2");
   }
  }
}
}

另一个utilities包里是
package utilities{
import flash.system.*;
public function isMac() {
  return Capabilities.os == "MacOS";
}
}

为什么执行时候  总说 找不到isMac() 方法??

Poshidon 2008-6-30 10:59

Welcome类中的确没有isMac() 方法,utilities包里是一个不知所谓的东西。类?不是类....建议楼主将isMac() 写成一个静态类方法。静态类的模范就是Math类

andy-tang 2008-6-30 11:37

将 isMac 改成static

波斯兔 2008-6-30 13:58

用了静态的 方法,还是不行,能帮忙把代码写一下吗?谢谢

ycccc8202 2008-6-30 15:44

楼主的做法没有错~这里的isMac是个包级函数~

只是引用路径错了~
文件结构为:
xx.fla , setup文件夹-->utilities文件夹,Welcome.as-->isMac.as
然后包路径及import 的路径改下就行了~[code]//Welcome.as
package setup{
        import setup.utilities.*
        import flash.display.*;
        public class Welcome extends Sprite {
                public function Welcome() {
                        if (isMac()) {
                                trace("1");
                        } else {
                                trace("2");
                        }
                }
        }
}[/code][code]//isMac.as----包级函数,引入了包后直接就能使用和静态方法不同~
package setup.utilities{
        import flash.system.*;
        public function isMac() {
                return Capabilities.os == "MacOS";
        }
}[/code]

Poshidon 2008-6-30 20:27

...学习了....今天知道了包级函数

Poshidon 2008-6-30 20:29

晚上不想动.明天白天来参

波斯兔 2008-7-1 14:34

谢谢!!!可是问题还是没解决

按照版主的修改了,可是还是出提示:
      1180: 调用的方法 isMac 可能未定义。
这是怎么回事呢??

ycccc8202 2008-7-1 22:50

isMac.as放到utilities文件夹下~

波斯兔 2008-7-2 11:45

谢谢版主,非常的感谢!

波斯兔 2008-7-2 11:56

顺便问一句

我可以在isMac.as里定义多个方法吗?我自己试了一下,不行,请问可以吗?
比如我又加了
public function Mac() {
     return Capabilities.os == "Windows XP";
}
报的错误是
5006: ActionScript 文件不能有多个外部可见的定义: setup.utilities.Mac, setup.utilities.isMac

ycccc8202 2008-7-2 14:26

是的,包级函数只能一个as定义一个函数~

波斯兔 2008-7-2 15:38

太谢谢了,版主我太佩服你了!

希望能和您交个朋友,可以吗?

Poshidon 2008-7-2 17:19

ls请看ls的ls的签名......:L
页: [1]
查看完整版本: 关于不同包内的方法调用