actionscript-3 - AS3 - 轻微的平台类绑定(bind)错误

标签 actionscript-3 flash class error-handling flash-cs5

我的代码有一个小问题。我想链接所有三个类来制作一个简单的平台游戏。这是代码:

数组类:

package 
{
import flash.display.*;
public dynamic class setupStage extends Thiny
{
    var mapWid = 24;
    var mapHei = 40;
    var tileSide = 10;
    var totalTiles = mapWid * mapHei;
    var cell:tile=new tile();

    var firstStage:Array=[
      /*1*/[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
      /*2*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
      /*3*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
      /*4*/[1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
      /*5*/[1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,0,1]
      /*6*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
      /*7*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
      /*8*/[1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1]
      /*9*/[1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1]
     /*10*/[1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1]
     /*11*/[1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1]
     /*12*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*13*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*14*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1]
     /*15*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*16*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*17*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1]
     /*18*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1]
     /*19*/[1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1]
     /*20*/[1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*21*/[1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*22*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*23*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*24*/[1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*25*/[1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*26*/[1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*27*/[1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,0,0,0,0,0,1]
     /*28*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1]
     /*29*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1]
     /*30*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1]
     /*31*/[1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0,0,0,1]
     /*32*/[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1]
     /*33*/[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1]
     /*34*/[1,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1]
     /*35*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*36*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*37*/[1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*38*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*39*/[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
     /*40*/[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
      ];
    function setupStage()
    {
        trace("access granted");
    }
    function drawMap():void
    {
        for (var i:int=0; i<mapWid; i++)
        {
            for (var u:int=0; u<mapHei; u++)
            {
                cell.gotoAndStop(firstStage[i][u]+1);
                cell.x = tileSide * i;
                cell.y = tileSide * u;
                with (stage)
                {
                    stage.addChild(cell);
                }
            }
        }
    }
}
}

运动类:
package 
{
import flash.display.*;
import flash.utils.*;
import flash.events.*;
import flash.sampler.StackFrame;

public dynamic class JAJEBIE extends Thiny{
var granica:setupStage = new setupStage();
var thinX = 0;
var thinY = 0;
var acc = 6;
var thin:thiny1 = new thiny1();
var przycisk:Object = {};

stage.addEventListener(KeyboardEvent.KEY_DOWN,Move);
stage.addEventListener(KeyboardEvent.KEY_UP,Halt);
//with (thin){addEventListener(Event.ENTER_FRAME,Opadanie);}

function wrzut():void
{
    addChild(thin);
    thin.x = 200;
    thin.y = 390;

}
function Move(k:KeyboardEvent):void
{
    przycisk[k.keyCode] = true;
    if (przycisk[Keyboard.LEFT] && granica.firstStage[thinX][thinY] == 0 && granica.firstStage[thinX - 1][thinY] == 0)
    {
        thin.x = thin.x - 10;
    }
    if (przycisk[Keyboard.RIGHT] && granica.firstStage[thinX][thinY] == 0 &&     granica.firstStage[thinX - 1][thinY] == 0)
    {
        thin.x = thin.x + 10;
    }
    if (przycisk[Keyboard.SPACE])
    {
        acc = 3;
        thin.y = thin.y + 30;
    }
}
//function Opadanie(Event);
//{
//thin.y = thin.y - 30;
//}
function Halt(k:KeyboardEvent):void
{
    przycisk[k.keyCode] = false;
}

}

}

主fla文件:
stop();
import flash.events.Event;
import flash.display.DisplayObject;
import flash.utils.*;
import flash.events.*;
import flash.sampler.StackFrame;

stage.addEventListener(Event.ENTER_FRAME,initialize);

function initialize(main_event:Event):void{
        with(setupStage){drawMap();};
        with(JAJEBIE){wrzut();};
        stage.removeEventListener(Event.ENTER_FRAME,initialize);
}

我们尝试了很多东西,但编译器一直抛出错误,即使我们设法删除了所有代码问题,主类似乎不想修补所有内容。
任何帮助,将不胜感激!
谢谢!

最佳答案

您需要有一个 实例 每个类(class)的JAJEBIEsetupStage ,以便您拥有平台游戏关卡和玩家的样本。你的代码说 JAJEBIE是一个静态类,因为它没有构造函数,所以你通过类名来寻址它是正确的 - 除非针对 JAJEBIE 抛出错误 5000 ,在这种情况下,您的代码是完全错误的。

var jajebie:JAJEBIE;
function initialize(main_event:Event):void{
    jajebie=new JAJEBIE();
    addChild(jajebie);
    addChild(jajebie.granica);
    // while neither is added to stage, they 
    // cannot reach the stage! You have to point them to actual stage.
    jajebie.granica.drawMap(); // now, as we have stage access, draw the map
    jajebie.wrzut();
    stage.removeEventListener(Event.ENTER_FRAME,initialize);
}

此外,您只有一个 cell setupStage 中的实例,并且您反复尝试设置其坐标并上台。这种方法是错误的,因为您最终会得到 cell 的单个实例。在屏幕上,它会在右下角。通过重新实例化您的 cell 来解决此问题在内循环之内。

函数drawMap():无效
{
for (var i:int=0; 我

最后,您需要学会自己阅读和解释错误消息,以便了解 Flash 想要告诉您什么。比如说,错误 5000 意味着您必须为任何一个类扩展一个给定的类(很可能是 MovieClip),这可能会迫使您立即重新编写大部分代码。

关于actionscript-3 - AS3 - 轻微的平台类绑定(bind)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17393165/

相关文章:

java - 在 Swing 中关闭 Flash 屏幕

ruby-on-rails - 我如何知道 rail html.erb 组件的 ID 和类是什么?

android - 将SWF移植到Android动态壁纸的步骤

javascript - 如何从字符串中间解析数字

asp.net - 如何防止/使其难以下载我的Flash视频?

swift - Swift 可以将类/结构数据转换为字典吗?

Javascript 类的函数未定义

javascript - 带有 2 个参数的ExternalInterface.addCallback

performance - 对于 VS Foreach on Array 性能(在 AS3/Flex 中)

javascript - HTML5 的开发和文档是否足够?