我在课堂上为一个对象添加了一个事件监听器,它不在第1帧上,并且它不起作用。有什么办法可以让它发挥作用吗?
我的代码是:
package Home
{
import flash.display.SimpleButton;
import flash.events.MouseEvent;
public class Home extends SimpleButton
{
public var Home_mc:SimpleButton;
public function Home()
{
Home_mc.addEventListener(MouseEvent.CLICK, home_1);
}
function home_1(event:MouseEvent):void
{
//gotoAndStop('Home',"Home-sc");
trace("CLICKED");
}
}
}
答案 0 :(得分:0)
public var Home_mc:SimpleButton;
你在这里声明一个变量,但我不确定为什么。它已被声明,但我没有看到你从中制作一个实例并将其放在屏幕上。
我猜你是在家做一个实例,在屏幕上显示。 那么你应该只将事件添加到你的类而不是home_mc变量。
this.addEventListener(MouseEvent.CLICK, home_1);
编辑完整性:
您可以将as3类链接到按钮符号
package
{
import flash.events.MouseEvent;
public class Home extends SimpleButton
{
public function Home()
{
// Add the event to instances of this class
this.addEventListener(MouseEvent.CLICK, home_1);
}
function home_1(event:MouseEvent):void
{
//gotoAndStop('Home',"Home-sc");
trace("CLICKED");
}
}
}
然后你可以从其他地方创建一个类的实例,并在某个displayobject上使用addchild。
package
{
import flash.display.MovieClip;
public class start extends MovieClip
{
public function start()
{
var home:Home = new Home();
this.addChild(home);
}
}
}
我的代码位于单独的类文件中。我是AS3的新手,抱歉让人不安。我想知道是否>'var Home_mc:Simplebutton = new SimpleButton();'或者通过单击对象上的>输入实例名称。它们都是同一个东西吗?
是的,这基本相同。
我现在所做的是在Home按钮中添加了一个实例名称“Home_mc”。将类文件链接到>它。现在工作正常。但是当我使用gotoAndStop()时,它给了我一个错误,“调用>可能未定义的方法gotoAndStop()”
从你想要实现的目标来看,我不会使用一个简单的按钮类,而是扩展一个movieclipclass。两者之间存在一些差异。也许本教程可以为您提供一些指导:http://www.youtube.com/watch?v=Z0VhiqQVMpY