我已經在Flash as3中創建了一個迷宮遊戲,並且它作爲個人swf很有效。只要我把它放到主容器swf中就會停止工作!那麼,它仍然是一種工作,但它失去了迷宮的'界限'。有誰知道我該如何解決這個問題?任何幫助非常apprecaited,S.Flash AS3迷宮類型遊戲問題
package {
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.*;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.geom.Rectangle;
import gs.TweenLite;
import gs.easing.*;
public class slide17 extends MovieClip {
private var maze:mazeBG;
private var mazeC:mazeCircle;
var rightArrow:Boolean = false;
var leftArrow:Boolean = false;
var upArrow:Boolean = false;
var downArrow:Boolean = false;
var speed:int = 10;
public function slide17():void {
screen01();
}
private function screen01():void {
stage.addEventListener(KeyboardEvent.KEY_DOWN, stage_onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, stage_onKeyUp);
stage.addEventListener(Event.ENTER_FRAME, stage_onEnterFrame);
maze = new mazeBG();
addChild(maze);
maze.x=88;
maze.y=155;
mazeC = new mazeCircle();
addChild(mazeC);
mazeC.x=104;
mazeC.y=321;
function stage_onKeyDown(event:KeyboardEvent):void {
if(event.keyCode == Keyboard.RIGHT) rightArrow = true;
if(event.keyCode == Keyboard.LEFT) leftArrow = true;
if(event.keyCode == Keyboard.UP) upArrow = true;
if(event.keyCode == Keyboard.DOWN) downArrow = true;
}
function stage_onKeyUp(event:KeyboardEvent):void {
if(event.keyCode == Keyboard.RIGHT) rightArrow = false;
if(event.keyCode == Keyboard.LEFT) leftArrow = false;
if(event.keyCode == Keyboard.UP) upArrow = false;
if(event.keyCode == Keyboard.DOWN) downArrow = false;
}
function stage_onEnterFrame(event:Event):void {
var rect:Rectangle = mazeC.getBounds(stage);
var i:int = 0;
var xBump:int = 0;
var yBump:int = 0;
if(rightArrow) {
xBump = speed;
for(i = 0; i < speed; i++) {
if(maze.hitTestPoint(rect.right + i, mazeC.y, true)) {
xBump = i - 1;
break;
}
}
}
if(leftArrow) {
xBump = -speed;
for(i = 0; i < speed; i++) {
if(maze.hitTestPoint(rect.left - i, mazeC.y, true)) {
xBump = -i + 1;
break;
}
}
}
if(upArrow) {
yBump = -speed;
for(i = 0; i < speed; i++) {
if(maze.hitTestPoint(mazeC.x, rect.top - i, true)) {
yBump = -i + 1;
break;
}
}
}
if(downArrow) {
yBump = speed;
for(i = 0; i < speed; i++) {
if(maze.hitTestPoint(mazeC.x, rect.bottom + i, true)) {
yBump = i - 1;
break;
}
}
}
mazeC.x += xBump;
mazeC.y += yBump;
}
}
}
}
你能更好地定義「綁定」嗎? – AsTheWormTurns
我認爲問題在於你從舞臺上獲得了界限。 var rect:Rectangle = mazeC.getBounds(stage);當你一個人運行它時,舞臺可供你使用。當從另一個swf加載swf時,它不是。 – Frank