flash as3.0中类修饰符internal问题
小弟刚学flash类编程在同一个文件夹内建立了两个文件第一个是Lei.as第二个是10.fla其中在Lei.as中输入package{importflash.displa...
小弟刚学flash类编程
在同一个文件夹内建立了两个文件
第一个是 Lei.as
第二个是 10.fla
其中在 Lei.as中输入
package
{
import flash.display.MovieClip
import flash.display.Graphics
internal class Lei extends MovieClip
{
public function Lei()
{
graphics.moveTo(100,100)
graphics.lineStyle(1,0x00ff00)
graphics.lineTo(400,400)
}
}
}
在 10.fla里面第一帧输入
var lei:Lei=new Lei()
this.addChild(lei)
本意是在舞台上画一条直线
但是运行后提示错误1046
除非把类修饰符internal改成public才可以正常运行,但是我的两个文件都保存在同一个文件见内啊,我看书上说可以定义为internal类型的。
这倒底是怎么回事啊?
哪位大虾能帮小弟一把。 展开
在同一个文件夹内建立了两个文件
第一个是 Lei.as
第二个是 10.fla
其中在 Lei.as中输入
package
{
import flash.display.MovieClip
import flash.display.Graphics
internal class Lei extends MovieClip
{
public function Lei()
{
graphics.moveTo(100,100)
graphics.lineStyle(1,0x00ff00)
graphics.lineTo(400,400)
}
}
}
在 10.fla里面第一帧输入
var lei:Lei=new Lei()
this.addChild(lei)
本意是在舞台上画一条直线
但是运行后提示错误1046
除非把类修饰符internal改成public才可以正常运行,但是我的两个文件都保存在同一个文件见内啊,我看书上说可以定义为internal类型的。
这倒底是怎么回事啊?
哪位大虾能帮小弟一把。 展开
1个回答
展开全部
internal 声明的对象是只能在同一包内访问,默认路径不是一个包路径,也就是说,同样是在根目录下,并不能当做是在同一个包内部。你把这个类放到一个包里,然后用这个包中的另外一个public类调用,再用fla调用这个public类,就会发现没问题了。
说的明白点,你在根目录下建个文件夹,命名为pack,把你自己写的这个类放在这里面,加上包路径:
package pack{
import flash.display.MovieClip;
import flash.display.Graphics;
internal class Lei extends MovieClip {
public function Lei() {
graphics.moveTo(100,100);
graphics.lineStyle(1,0x00ff00);
graphics.lineTo(400,400);
}
}
}
然后在这个文件夹里新建一个as文件,写成这个样子:
package pack{
import flash.display.*;
public class PackLei extends Sprite{
public function PackLei():void {
var lei:Lei = new Lei();
this.addChild(lei);
}
}
}
然后再fla的第一帧写上:
import pack.PackLei;
var lei:PackLei = new PackLei();
this.addChild(lei);
调试看结果,发现可以了~~
说的明白点,你在根目录下建个文件夹,命名为pack,把你自己写的这个类放在这里面,加上包路径:
package pack{
import flash.display.MovieClip;
import flash.display.Graphics;
internal class Lei extends MovieClip {
public function Lei() {
graphics.moveTo(100,100);
graphics.lineStyle(1,0x00ff00);
graphics.lineTo(400,400);
}
}
}
然后在这个文件夹里新建一个as文件,写成这个样子:
package pack{
import flash.display.*;
public class PackLei extends Sprite{
public function PackLei():void {
var lei:Lei = new Lei();
this.addChild(lei);
}
}
}
然后再fla的第一帧写上:
import pack.PackLei;
var lei:PackLei = new PackLei();
this.addChild(lei);
调试看结果,发现可以了~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询