php - 类似于 Actionscript 中 PHP 的 __call()

标签 php actionscript-3

假设(作为示例)我有一个类,我想将所有方法调用记录到其中。

在 PHP 中,这可以通过 __call() 快速轻松地完成,或者在 Python 中使用装饰器来完成。

在 Actionscript 3 中完成相同任务的最简单方法是什么?

最佳答案

扩展flash.utils.Proxy并使用flash.utils.flash_proxy命名空间。还有类似于 __get__set 的方法以及删除方法。例如,__call方法是:

override flash_proxy function callProperty(name:*, ...rest):*;

因此,如果有一个扩展 Proxy 的类,您可以:

var test:MyObject = new MyObject();
test.myMethodThatIsntDefined("param");

然后将调用 callProperty 并将名称设置为“myMethodThatIsntDefined”,并且“param”将位于 ...rest 数组中。

asdoc 的链接有一个简单的实现,应该可以帮助您继续。我通常将 Proxy 类用于 API 之类的东西。例如,当时我有一个 Flickr API 包装器,它将函数调用的名称转换为 Flickr API 中的 API 方法名称。像这样的东西:

flickr.galleriesGetPhotos();

在 callProperty 中,我将拆分第一个单词以获取 API 名称“flickr.galleries.get_photos”。我想当时的名字是不同的。

关于php - 类似于 Actionscript 中 PHP 的 __call(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3553822/

相关文章:

PHP Jquery 选择多个文件准备上传

php - 过滤不等于空条目

javascript - 为什么我的 ActionScript3 不调用我的 JavaScript 函数?

android - 自动更正和限制的 StageText 问题

php - Yii2 - 如何设置 Find() 之后的行为

php - MySQL 的编码问题

php - 那里有任何 PHP 人工智能项目吗?

actionscript-3 - 将位图添加到 as3 中的 movieClip 中的各个帧

java - 用作接口(interface)替代的内部类示例

actionscript-3 - flash as3 如何删除字节数组的一部分?