我试图在as3中调用一个类到我的主flash文件。
我的班级:
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class Snow extends MovieClip
{
private var flakesVector:Vector.<MovieClip> = new Vector.<MovieClip>();
private var timer:Timer = new Timer(2000);
public function Snow(speed:int = 3, flakesNumber = 100 ):void
{
for(var i:int = 0; i < flakesNumber; i++)
{
var flake:Snowflake = new Snowflake();
flake.vel = (Math.random() * speed) + 0.5;
flake.xSpeed = Math.floor(Math.random() * (0.5 - -0.5 + 1)) + -0.5;
flake.scaleX = (Math.random() * 1) + 0.3;
flake.scaleY = flake.scaleX;
flake.x = Math.random() * stage.stageWidth;
flake.y = Math.random() * stage.stageHeight;
addChild(flake);
flakesVector.push(flake);
}
addEventListener(Event.ENTER_FRAME, fall);
timer.addEventListener(TimerEvent.TIMER, changeMovement);
timer.start();
}
private function fall(e:Event):void
{
for(var i:int = 0; i < flakesVector.length; i++)
{
flakesVector[i].x += flakesVector[i].xSpeed;
flakesVector[i].y += flakesVector[i].vel;
if(flakesVector[i].y > stage.stageHeight)
{
flakesVector[i].x = Math.random() * stage.stageWidth;
flakesVector[i].y = -flakesVector[i].height;
}
}
}
private function changeMovement(e:TimerEvent):void
{
for(var i:int = 0; i < flakesVector.length; i++)
{
flakesVector[i].xSpeed *= -1;
}
}
}
}
在我的主要内容中,我试着这样称呼它:
import classes.Snow;
var Snowy:Snow = new Snow();
addChild(Snowy);
但是当我尝试这样做时,如果我不给我的雪花动画片段提供任何实例名称,我得到&#34;无法访问空对象引用的属性或方法&#34;如果我将我的实例命名为雪花,我会收到错误&#34;找不到类型或者不是编译时常量:Snowflake&#34;
我做错了什么?
谢谢。
编辑:
但如果我把类文档称为Snow,我会遇到很多错误: 有什么建议吗?
答案 0 :(得分:1)
你的班级在哪里?在你的fla文件旁边?
然后才使用:
var Snowy:Snow = new Snow();
addChild(Snowy);
或在您的属性面板中
类别中的:雪
编辑:您的代码正常
答案 1 :(得分:0)
// import classes.Snow; // <---- REMOVE THIS
var Snowy:Snow;
var snowSW:Boolean=false;
button.addEventListener(MouesEvent.CLICK, switchSnow);
function switchSnow(e:MouseEvent):void{
if(!snowSW){
Snowy= new Snow();
addChild(Snowy);
}else{
removeChild(Snowy);
Snowy= null;
}
}