【发布时间】:2022-01-05 17:56:35
【问题描述】:
我有下面的 AS3 代码,我想把它翻译成 Haxe。但是我不知道如何处理关键字prototype。谁能帮我?谢谢。
var style = new CSSStyleDeclaration();
style.defaultFactory = function():void
{
this.disabledOverlayAlpha = 0;
this.borderStyle = "controlBar";
this.paddingTop = 10;
this.verticalAlign = "middle";
this.paddingLeft = 10;
this.paddingBottom = 10;
this.paddingRight = 10;
};
if(chain == null) chain = {};
style.defaultFactory.prototype = chain;
chain = new style.defaultFactory();
style.defaultFactory = function():void
{
this.fontWeight = "bold";
};
style.defaultFactory.prototype = chain;
chain = new style.defaultFactory();
style.defaultFactory = function():void
{
this.backgroundSize = "100%";
this.paddingTop = 24;
this.backgroundColor = 8821927;
this.backgroundImage = ApplicationBackground;
this.horizontalAlign = "center";
this.backgroundGradientAlphas = [1,1];
this.paddingLeft = 24;
this.paddingBottom = 24;
this.paddingRight = 24;
};
style.defaultFactory.prototype = chain;
chain = new style.defaultFactory();
【问题讨论】:
-
prototype 关键字是使用继承的一种非常简单的方式(如果是 AS3,更像是 AS1/ 2): help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/… 我建议你(而不是直接将其移植到 HAXE)弄清楚这段代码到底做了什么并移植了它的 有意义 版本.
-
另外一个问题,defaultFactory是一种Function,Haxe不支持new defaultFactory()
-
只有更多的理由去理解这篇文章应该做什么,并以合法的 HAXE 方式重新编写它,而不是试图将它移植到副本中方式。
-
@PeterZhou "Haxe 不支持新的 defaultFactory()" 是否可以创建一个新的类而不是函数?关键字
prototype是创建inline 函数的快捷方式(在另一个现有函数中添加一些新函数)。无论 defaultFactory 是函数还是类,无论哪种方式,您都将以defaultFactory.chain();访问内联/原型链函数,但只有类可以拥有new。为什么在显示的代码中需要它超出了我的范围...chain = new defaultFactory();意味着您希望一个名为 chain 的函数也包含一个名为 chain 的内联函数?喜欢chain.chain();??? -
大家好,我使用AS3HX工具将AS3代码翻译成HAXE。但是,HAXE 代码中存在无穷无尽的错误。 AS3HX 不知道如何将上面的代码翻译成HAXE,它只是直接将代码复制到HAXE。没有chain()方法,chain是一个对象,相当于new defaultFactory(),链接到另一个defaultFactory。谁有使用 AS3HX 的经验?
标签: actionscript-3 ecmascript-6 haxe