波斯兔 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]
波斯兔 2008-7-1 14:34
谢谢!!!可是问题还是没解决
按照版主的修改了,可是还是出提示:
1180: 调用的方法 isMac 可能未定义。
这是怎么回事呢??
波斯兔 2008-7-2 11:56
顺便问一句
我可以在isMac.as里定义多个方法吗?我自己试了一下,不行,请问可以吗?
比如我又加了
public function Mac() {
return Capabilities.os == "Windows XP";
}
报的错误是
5006: ActionScript 文件不能有多个外部可见的定义: setup.utilities.Mac, setup.utilities.isMac
波斯兔 2008-7-2 15:38
太谢谢了,版主我太佩服你了!
希望能和您交个朋友,可以吗?