-1
    //main.fla
    var skill1 = addChild(girl2.skill1);

girl2.as の skill1 変数にアクセスしたいのですが、うまくいきませんでした。
次のエラーが表示され
ました。

    //girl2.as
    package Icons.chars
    {

import flash.display.Loader;
import flash.display.MovieClip;
import flash.net.URLRequest;

    public class girl2 extends charsel {

public static var skill1:Loader, url1:URLRequest;

public function girl2 () {
    skill1 = new Loader();
    url1 = new URLRequest("skills/nami/skill4.png")
        skill1.load(url1);

charsel.as で試してみましたが、うまくいきました

//charsel.as
package Icons.chars
{

import flash.geom.Point;
import flash.display.*;
import flash.events.MouseEvent;

public class charsel extends MovieClip {

protected var originalPosition:Point;
public static var player1:MovieClip, player2:MovieClip, player3:MovieClip;

player1 にアクセスしようとしましたが、うまくいきました。

4

1 に答える 1

0

この場合、静的修飾子を使用する理由がわかりません。skill1 を static として宣言したとしても、実際には girl2 クラスのインスタンスを作成するときにのみ使用可能になることに注意してください (コンストラクターで作成するとき) (また、クラスには大文字の名前を付ける必要があることに注意してください。したがって、これは Girl2 である必要があります)。

したがって、パブリック変数のすべての静的修飾子を削除するか、特定の理由がある場合は、静的初期化子を使用してスキル 1 変数をインスタンス化します。

public class girl2 extends charsel {

public static var skill1:Loader, url1:URLRequest;

{
skill1 = new Loader();
skill1.addEventListener(...); // event handlers should be static as well
skill1.load(...);
}

public function girl2 () {
于 2012-10-14T18:58:59.213 に答える