开发者

1119:Access of possibly undefined property Click through a reference with static type Class

开发者 https://www.devze.com 2023-03-29 20:47 出处:网络
I am making an edutainment game us开发者_运维技巧ing flash cs5, I\'m really new at using flash, in fact we never yet tackle it at school, but I insist on learning about it.

I am making an edutainment game us开发者_运维技巧ing flash cs5, I'm really new at using flash, in fact we never yet tackle it at school, but I insist on learning about it.

In my codes, I encountered this error

C:\Users\acer\Desktop\JikanLibrary\Main.as, Line 16 1119: Access of possibly undefined property Click through a reference with static type Class.

This is the code I used in my program

package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;

public class Main extends MovieClip
{
    var startPage:StartPage;
    var jikanBookshelf:JikanBookshelf;

    public function Main()
    {
        startPage = new StartPage;
        jikanBookshelf = new JikanBookshelf;

        startPage.jikanBookshelf.addEventListener(MouseEvent.Click, onJikanBookshelf);

        addChild(startPage);

        function onJikanBookshelf(event:MouseEvent):void
        {
            addChild(jikanBookshelf);
            removeChild(startPage);
        }


    }
}
}

The error is in this line

startPage.jikanBookshelf.addEventListener(MouseEvent.Click, onJikanBookshelf);

Since I'm really new at flash, I really don't know what went wrong with my codes, it was working a while ago before I put the mouse event. I hope someone could help me.


ActionScript is a case sensitive language. This means that Click is not the same as CLICK. So what you need here is MouseEvent.CLICK

"Why is CLICK all uppercase? Most property names aren't.", you might ask.

That's because CLICK is a static constant property of MouseEvent and the convention amongst ActionScript (and many other languages) programmers is that static constants are written in all uppercase to distinguish them visually from other variables.

  • 'static' means it's a property of the MouseEvent class, not of an instance of MouseEvent.
  • 'const' means it's not a variable: you can't change it's value.


It's a name conflict problem: The class definition name is same as the object name.

The problem in your script is that you have a class definition name startPage and you are trying to create an object of same name startPage.

You have to change the object name to something different. Let say startpage1.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号