Actionscript 3 将字符串解释为函数名-ActionScript 3.0
我正在为一个大学作业编写一个游戏,我想创建一个类来处理fla文件库中的所有资源。我已经用OO PHP开发网站将近4年了,所以我有编程经验,但我对AS3还是新手 资产处理程序类:Actionscript 3 将字符串解释为函数名-ActionScript 3.0,actionscript-3,Actionscript 3,我正在为一个大学作业编写一个游戏,我想创建一个类来处理fla文件库中的所有资源。我已经用OO PHP开发网站将近4年了,所以我有编程经验,但我对AS3还是新手 资产处理程序类: package library { public class AssetHandler { public var stageWidth: int; public var stageHeight: int; public function AssetHandler(
package library {
public class AssetHandler {
public var stageWidth: int;
public var stageHeight: int;
public function AssetHandler(sw:int, sh:int):void {
stageWidth = sw;
stageHeight = sh;
}
//Convert asset to bitmap
public function bm(AssetsName:String):Object {
var a:Object = new AssetsName(stageWidth, stageHeight);
return new Bitmap(a);
}
}
}
以及main.fla中引用的主类
package {
import flash.display.*;
import library.AssetHandler;
public class Main extends Sprite {
private var cannon:Cannon = new Cannon();
private var holder:Holder = new Holder();
//I want to replace this
public var bdata = new Char(stage.stageWidth, stage.stageHeight);
public var char = new Bitmap(bdata);
//into this
public var asset = new AssetHandler(stage.stageWidth, stage.stageHeight);
public var char = asset.bm("Char");
private var cannonAngle:Number;
public function Main() {
}
}
}
在php中,您可以轻松地执行$Class->$name(); AS3中是否有类似的方法 我得到了错误: 1180:调用可能未定义的方法AssetName。 1180:调用可能未定义的方法位图 我猜想位图方法由于可见性而找不到,但是我如何修复它呢?
谢谢 我想你需要这样的东西 如果需要通过字符串获取类的引用:
import flash.utils.getDefinitionByName;
.....
var ClassReference:Class = getDefinitionByName("YourClass") as Class;
var functionName:String = "testFunction";
this[functionName]("hello!");
public function testFunction(param:String):void {
trace(param);
}
如果要按字符串调用函数:
import flash.utils.getDefinitionByName;
.....
var ClassReference:Class = getDefinitionByName("YourClass") as Class;
var functionName:String = "testFunction";
this[functionName]("hello!");
public function testFunction(param:String):void {
trace(param);
}
希望这对你有帮助
更新
PHP's $Class->$name() may be assumed as classInstance["name"](); in ActionScript
我想你需要这样的东西 如果需要通过字符串获取类的引用:
import flash.utils.getDefinitionByName;
.....
var ClassReference:Class = getDefinitionByName("YourClass") as Class;
var functionName:String = "testFunction";
this[functionName]("hello!");
public function testFunction(param:String):void {
trace(param);
}
如果要按字符串调用函数:
import flash.utils.getDefinitionByName;
.....
var ClassReference:Class = getDefinitionByName("YourClass") as Class;
var functionName:String = "testFunction";
this[functionName]("hello!");
public function testFunction(param:String):void {
trace(param);
}
希望这对你有帮助
更新
PHP's $Class->$name() may be assumed as classInstance["name"](); in ActionScript
您需要导入
如果我没记错的话,您不能像现在这样从字符串引用实例化一个类。但是,您可以使用字符串引用进行初始化,并以这种方式实例化一个类
public function bm(AssetsName:String):Object {
var classdef:Class = getDefinitionByName(AssetsName) as Class;
var a:Object = new classdef(stageWidth, stageHeight);
return new Bitmap(a);
}
(我认为这是正确的。可能有一些错误。)(编辑:有-错过了“作为类”部分。)
祝你好运
您需要导入
如果我没记错的话,您不能像现在这样从字符串引用实例化一个类。但是,您可以使用字符串引用进行初始化,并以这种方式实例化一个类
public function bm(AssetsName:String):Object {
var classdef:Class = getDefinitionByName(AssetsName) as Class;
var a:Object = new classdef(stageWidth, stageHeight);
return new Bitmap(a);
}
(我认为这是正确的。可能有一些错误。)(编辑:有-错过了“作为类”部分。)
祝你好运。在php中,你可以轻松地完成$Class->$name();AS3中是否有类似的方法我认为这是你只能用php做的事情之一。在php中,您可以轻松地执行$Class->$name();AS3中是否有类似的方法我认为这是你只能用php做的事情之一。这和变量($$var)。我在谷歌搜索结果中见过这种方法,但它不适合我,因为我不能使用“this”,除非我为每个资产单独创建一个方法,我试图避免,因为会有很多方法。谢谢你的进口货,节省了我一些时间!我在谷歌搜索结果中看到过这种方法,但它不适合我,因为我不能使用“this”,除非我为我试图避免的每个资产单独创建一个方法,因为它们会很多。谢谢你的进口货,节省了我一些时间!好极了!正是我需要的!谢谢!好极了!正是我需要的!谢谢!