在AS3中,您可以将常量传递给编译器
-define+=CONFIG::DEBUG,true
Run Code Online (Sandbox Code Playgroud)
并将其用于条件编译,如下所示:
CONFIG::DEBUG {
trace("This only gets compiled when debug is true.");
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找类似#ifndef的东西,所以我可以否定调试的价值并使用它来有条件地添加发布代码.我发现的唯一的解决办法,到目前为止是在条件编译文档的Adobe和因为我的调试和发布配置是相互排斥的,我不喜欢同时具有DEBUG的想法和释放常数.
此外,这种格式有效,但我假设它在运行时运行检查,这不是我想要的:
if (CONFIG::DEBUG) {
//debug stuff
}
else {
//release stuff
}
Run Code Online (Sandbox Code Playgroud)
我也考虑过做这样的事情,但它仍然不是我希望的优雅解决方案:
-define+=CONFIG::DEBUG,true -define+=CONFIG::RELEASE,!CONFIG::DEBUG
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)
我正在尝试编写一个正则表达式来剥离除链接之外的所有HTML(分别是<a href和</a>标签.它不一定是100%安全的(我不担心注入攻击或任何因为我正在分析已经内容的内容)已被批准并发布到SWF电影中).
我正在使用的原始"strip tags"正则表达式是<(.|\n)+?>,并且我尝试将其修改为<([^a]|\n)+?>,但是当然这将允许任何具有a的标签而不是在开头具有空格的标签.
并不是说它真的很重要,但是如果有人想知道我在ActionScript 3.0中为Flash电影写这个.
在Actionscript中,Unix时间戳(以毫秒为单位)可以这样获得:
public static function getTimeStamp():uint
{
var now:Date = new Date();
return now.getTime();
}
Run Code Online (Sandbox Code Playgroud)
该文件明确指出以下内容:
getTime():Number返回Date对象自1970年1月1日午夜(通用时间)以来的毫秒数.
当我跟踪它时,它返回以下内容:
824655597
Run Code Online (Sandbox Code Playgroud)
所以,824655597/1000/60/60/24/365 = 0.02年.这显然是不正确的,因为它应该是大约39年.
问题1:这里有什么问题?
现在,在PHP部分:我正在尝试以毫秒为单位获取时间戳.该microtime()函数返回字符串(0.29207800 1246365903)或浮点数(1246365134.01),具体取决于给定的参数.因为我觉得时间戳很简单,所以我自己会这样做.但是现在我已经尝试并注意到了这个浮点数,并将它与我在Actionscript中的问题结合起来,我真的不知道.
问题2:如何让它返回Unix时间戳中的毫秒数?
时间戳应该很容易,我可能会遗漏一些东西......对不起.提前致谢.
编辑1:自己回答了第一个问题.见下文.
EDIT2:我自己也回答了第二个问题.见下文.48小时内无法接受答复.
我正试图在一系列精灵上阅读一个属性.此属性可能存在也可能不存在于这些对象上,甚至可能不会被声明,甚至比null更糟.
我的代码是:
if (child["readable"] == true){
// this Sprite is activated for reading
}
Run Code Online (Sandbox Code Playgroud)
所以Flash告诉我:
错误#1069:在flash.display.Sprite中找不到属性可选,并且没有默认值.
有没有办法在读取它的值之前测试属性是否存在?
就像是:
if (child.isProperty("readable") && child["readable"] == true){
// this Sprite is activated for reading
}
Run Code Online (Sandbox Code Playgroud) 有没有人想分享他们为Actionscript 3(AS3)和Flash CS5 找到的最好的调试工具?
我刚刚做了一个搜索,发现了一些,但很想听到那些实际使用过它们的人.(按照'最有希望'的顺序)
trace()功能trace()Adobe Scout:

De MonsterDebugger:
http://demonsterdebugger.com/img/content/home/MDB-home02.png
Thunderbird AS3控制台:
http://flash-thunderbolt.googlecode.com/svn/trunk/as3/images/tbConsole_inaction.png
发光盒:
http://img1.UploadScreenshot.com/images/main/2/4406392687.jpg
Senocular:

X射线:
我正处于一个新的Flash游戏项目的计划阶段,并且想知道哪种语言会更好用?我已经对Actionscript 3有了很深的理解,并且还没有和Haxe一起工作过,但是我已经阅读了语言参考文档,看来Haxe有一些来自我最喜欢的语言C#和Ruby的功能.
所以我的问题有两个部分:
1)Haxe可以与闪存组件(swc文件)互操作吗?例如,如果我使用Flash IDE来设置一些控件,我可以导入这些控件并在Haxe中使用它们吗?
2)Haxe编译器是否有任何性能优势?或任何陷阱?
在大多数支持下,可以使用哪些IDE对ActionScript-3进行编码.
我知道以下IDE:
此外,任何建议他们之间的选择将不胜感激.
我正在使用Actionscript在s:List组件中设置所选元素,它可以工作,但List不会滚动到所选项目 - 需要使用滚动条或鼠标滚动.是否可以自动滚动到所选项目?谢谢 !
我有
public function Shard() {
}
public function Shard(x:Number, y:Number, vx:Number, vy:Number, rotation:Number, spin:Number)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我得到了第二个构造函数:
找到了多个构造函数定义.可能未在代码中定义构造函数.
那么,ActionScript-3不能有多个构造函数?
我有一个字符串
var s:String = "This is a line \n This is another line.";
this.txtHolder.text = s; //.text has \n, not a new line
Run Code Online (Sandbox Code Playgroud)
我想将它放入文本区域,但忽略新的行字符.我怎样才能确保文本在分配时打破我想要的位置?
actionscript-3 ×10
flash ×4
apache-flex ×3
actionscript ×1
adobe ×1
flash-cs5 ×1
flex4 ×1
haxe ×1
html ×1
ide ×1
php ×1
properties ×1
regex ×1
sprite ×1
string ×1
tags ×1
textarea ×1
timestamp ×1
unix ×1