我在 Flash 中有一个文本字段,其中包含一个(显然)文本块。
x & y我想要做的是对返回坐标和width & height找到的文本的文本字段的内容执行搜索。结果将用于将视觉元素放置在文本框的该部分上。
例如:
var pattern:RegExp = /\d+/g;
var found:Array = box.text.match(pattern);
var i:String;
for each(i in found)
{
/**
* Find the x, y, width, height of the matched text in the text field
* Use result to place transparent yellow box around text
*/
}
Run Code Online (Sandbox Code Playgroud)
视觉上应该会产生如下结果:

我最近升级到了FlashDevelop 4,当然这已经恢复了我以前的所有设置.
我遇到的问题是我找不到新设置窗口中的位置,它让我可以选择关闭它在括号,花括号等之前插入的自动空间.
即它会自动制作这些:
if(2 > 1)
public function get thing():Thing{ return _thing; }
Run Code Online (Sandbox Code Playgroud)
成:
if (2 > 1)
public function get thing():Thing { return _thing; }
Run Code Online (Sandbox Code Playgroud)
它让我疯了,实际上让我暂时停止使用FlashDevelop.如果我可以完全关闭自动格式化的东西,就像我在以前的版本中可能会非常有帮助.
我有一个带有destroy()函数的Entity类.
我还有一个扩展Entity的Enemy类,我想在destroy()函数中添加一些行.
有没有办法在ActionScript 3中扩展函数,还是复制粘贴的方式去?谢谢.
我是C#的新手,但在ActionScript 3中有很强的背景知识.
在AS3中,您可以像这样定义一个数组:
var array:Array = [];
Run Code Online (Sandbox Code Playgroud)
然后通过push()以下方式向该阵列添加无限项:
array.push(1);
Run Code Online (Sandbox Code Playgroud)
我在C#中注意到你需要为数组定义一个永久(我认为)的长度,例如:
string[] array = {"this","has","a","length","of","six"};
Run Code Online (Sandbox Code Playgroud)
要么:
string[] array = new string[6];
Run Code Online (Sandbox Code Playgroud)
如果我尝试向数组添加新项目将超出此数组的长度,我将收到一个错误:
array[6] = "failure";
Run Code Online (Sandbox Code Playgroud)
我发现很难从能够自由地添加/删除数组中的项目,到现在必须定义最大长度.
当一个数组可以包含0到10000个实体之间的任何地方时,我不确定如何在游戏环境中接近它.
任何的意见都将会有帮助!
我想创建一个主要包含a的类Vector.该类将有一些方法来处理Vector中的项目.
我目前遇到的问题是我无法弄清楚如何动态创建一个实例Vector.到目前为止,我已经尝试了这个和类似的没有运气:
public class List
{
private var _content:Vector;
public function List(type:Class)
{
_content = new Vector.<type>();
}
}
Run Code Online (Sandbox Code Playgroud) 由于无法动态创建向量,我不得不创建一个非常原始的类型,即Object:
var list:Vector.<Object> = new Vector.<Object>();
Run Code Online (Sandbox Code Playgroud)
我假设Vector从尽可能接近的方式获得了它的能力,而不是上面的,但我可能是错的,当使用上面的代替普通的数组或对象时,实际上仍然有收益:
var list:Array = [];
var list:Object = {};
Run Code Online (Sandbox Code Playgroud)
有没有人对此有任何见解?
我在我的博客上工作,在查看时> 1020px wide会看起来像这样,使用三列将从左到右加载帖子(即将帖子1放在左栏中,将帖子2放在中间,将3放在右边,然后开始从左栏再次):

这很好用,但是当浏览器缩小到低于1020布局时,将转换为单个列.通过将列放在彼此之下(看起来很好),这在视觉上很容易实现,但这会导致帖子无序 - 前三个帖子如果总共有9个帖子实际上将是帖子1,4和7.
我想保持纯CSS托管布局的清洁度,所以我想知道在一个容器(而不是三列)中使用浮动元素进行上述三列布局是否有诀窍.
我只玩了一下左右,在每三个瓷砖后左右浮动,但当然最终将每三个瓷砖放在上面"行"中最高瓷砖下方的"行"中.
我想把太阳和阳光送到舞台的后面:
function CreateRays():Shape
{
var ray:Shape = new Shape();
ray.graphics.beginFill(0xFF9900,.5);
ray.graphics.lineStyle(1,0xFF9900,.5);
ray.graphics.lineTo(600,-20);
ray.graphics.lineTo(600,20);
ray.graphics.lineTo(0,0);
ray.graphics.endFill();
return ray;
}
var sun:Shape = new Shape();
sun.graphics.beginFill(0xFF9900,1);
sun.graphics.drawCircle(0,0,30);
sun.graphics.endFill();
addChild(sun);
setChildIndex(sun, 0);
Run Code Online (Sandbox Code Playgroud)
我看到setChildIndex(sun, 0);应该这样做,但它不起作用.
我已经尝试了几天无效,但基本上我有一些生物和屏幕上的播放器.我想要发生的是让敌人转向以可变速度面对玩家,而不是"锁定"到位并立即面对玩家.
我想要做的是弄清楚一个特定的敌人是否更快地顺时针或逆时针旋转以面向玩家,但事实证明它超出了我的三角学能力.
例:

x 在这些图中,代表了"较短"的路径以及我想在每种情况下旋转的方向.
在这种情况下,使用以下任何一种方法,以"顺时针"或"逆时针"方式计算出最简单的方法是什么:
创建在PHP中返回闭包的方法时:
class ExampleClass {
public function test() {
$example = 10;
return function() use ($example) {
return $example;
};
}
}
Run Code Online (Sandbox Code Playgroud)
的结果print_r中包含this与(其方法创建的封闭件的类)static,它似乎是内结合的值use ()闭合的语句:
$instance = new ExampleClass();
$closure = $instance->test();
print_r($closure);
Run Code Online (Sandbox Code Playgroud)
生产:
Closure Object (
[static] => Array (
[example] => 10
)
[this] => ExampleClass Object()
)
Run Code Online (Sandbox Code Playgroud)
但是,我无法终生解决如何捕捉这些价值。在未收到以下内容的情况下,无法使用任何形式的属性访问器(例如$closure->static或$closure->{'static'}):
PHP致命错误:未捕获错误:Closure对象在XYZ中不能具有属性。
数组访问符号显然也不起作用:
PHP致命错误:未捕获错误:无法在XYZ中将Closure类型的对象用作数组。
JSON编码对象,除了使值成为对象无用之外,还提供了一个空的JSON对象,{}并且使用ReflectionFunction该类无法访问这些项目。
在封闭的文档不提供在所有或者访问这些值的任何手段。
除了做诸如输出缓冲和解析之类的可耻的事情之外print_r,我实际上看不到获得这些值的方法。
我是否缺少明显的东西?
注意:用例用于实现备忘录,这些值在识别呼叫是否与先前的缓存呼叫匹配时将非常有益。