我将一个大文件分隔成多个文件以清除它,现在我遇到了问题。使用另一个类的变量as3
我有我的main.as,character.as,camera.as。
我想要做的是从另一个类中访问一个变量,然后在该类上设置一个变量。我会告诉你我的意思。
从我的main.as im加载每个类,并将它们添加为孩子,以便它显示在屏幕上。
public function buildGame()
{
var loadMap:Sprite = new nf_MapBuilder();
var xChar:Sprite = new nf_Character();
var xCam:Sprite = new nf_Camera();
var UserControl:nf_UserControl = new nf_UserControl();
addChild(loadMap);
addChild(xChar);
addChild(xCam);
addChild(UserControl);
}
一切都显示在屏幕上,就像它需要的一样。然后它转到我的角色上。:
package as3
{
import flash.display.Sprite;
import flash.events.Event;
public class nf_Character extends Sprite
{
public var character_pos:Array = new Array();
public var character_is_moving:Boolean = false;
public var character_x_dir:int = 0;
public var character_y_dir:int = 0;
public var character:hero = new hero();
public function nf_Character()
{
addEventListener(Event.ADDED_TO_STAGE,xCharLoad);
}
public function xCharLoad(e:Event)
{
character_pos = [2,2];
character.x=64*(character_pos[1]);
character.y=64*(character_pos[0]);
addChild(character);
}
}
}
存在问题。我需要使用这些变量i设置有在我的character.as在我camera.as使用它:
package as3
{
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Rectangle;
import flash.display.StageScaleMode;
import as3.nf_Character;
public class nf_Camera extends Sprite
{
private var xChar:nf_Character = new nf_Character();
//Camera variables
var stageW2:Number;
var stageH2:Number;
var view:Rectangle;
public function nf_Camera()
{
addEventListener(Event.ADDED_TO_STAGE,xCamGo);
}
public function xCamGo(e:Event):void
{
trace("Camera pos - " + xChar.x + " " + xChar.character.y);
view = new Rectangle(0,0,stage.stageWidth,stage.stageHeight)
stageW2 = stage.stageWidth/2 - 32;
stageH2 = stage.stageHeight/2 - 32;
addEventListener(Event.ENTER_FRAME,CamView);
}
public function CamView(e:Event):void
{
view.x = xChar.character.x - stageW2;
view.y = xChar.character.y - stageH2;
scrollRect = view;
}
}
}
当这一切都在一个大文件也没关系,我只是必须设置在变并通过每个功能来处理它,但现在我有点困惑。任何人都看到我可以做到这一点?
哇,工作!我现在可以移动,所有的东西都会从我的main中调用,比如net.uk建议的。我也用你的方法bwroga来传递我的变量。这是我认为看起来更清晰的好方法。我仍然不能移动相机,但生病让它现在工作,现在我可以走动:P – Aenil 2013-05-05 01:40:37
它也修复了很多事实上,我有一个跟踪在我的相机发生,并看到跟踪4时间行走可能导致它是用所有这种意大利面实例化了许多时间。有了这个,我只能看到它一次,就像它被认为是一样!无论如何,我很开心! :P – Aenil 2013-05-05 01:45:20