我做了几个Flash项目,作为ActionScripter,设计师做了所有漂亮的事情和动画.在开始时,我发现了很多关于ActionScript编码和闪存设计的信息.大多数可用信息似乎都集中在一个或另一个上.
我没有找到任何关于构建flash项目的信息,这种方式可以让编码器完成他们的工作并为设计师提供自由.
希望更有经验的人可以分享,这些是我在一些项目之后发现的一些事情
.fla文件中没有ActionScript ,它们是二进制文件,并且您希望尽可能地避开编码器你有什么经历?
我觉得在Flex上很容易找到样本,教程和简单示例.
基于现实项目找到提示和良好实践似乎更难.
有关如何:
我试图从JavaScript调用一个Actionscript函数,但我在Internet Explorer中遇到问题.我在mootools 1.2.1中使用Swiff.remote来调用actionscript函数,即:
Swiff.remote(playSwf.toElement(), 'sendResult', result, plays, name);
Run Code Online (Sandbox Code Playgroud)
这一切在FireFox,Safari和Opera中运行良好,但我在Internet Explorer 6和7中遇到"未指定"的错误.我尝试过使用沼泽标准:
window['flash'].sendResult(result, plays, name);
Run Code Online (Sandbox Code Playgroud)
无济于事.
谢谢你的帮助.标记
我正在寻找一种从Amazon S3动态流式下载文件压缩的方法.
该应用程序托管在EC2上,文件存储在S3上.
需要让用户能够从一组文件中进行选择,然后将这些文件捆绑并下载到这些文件中.
已经听说过一些可能的ActionScript库(aszip和fzip),或者可以在Ruby中完成,甚至可能是PHP.
这些文件不需要任何压缩,zip只是用于将文件捆绑到一个单独的下载....
有一个.fla文件,它的库中有声波.但是我没有在我的计算机上保存此声波,因此我无法在另一个应用程序中编辑或打开此声音.我想知道是否可以从fla库中提取这个*.wav文件?我做了一些研究,他们说要转出导出电影并将其导出为*.wav文件.但是我尝试了这个,它将整个fla文件导出为一个大*.wav dud.我试着玩它,没有任何事情发生,这是有道理的.
是否可以从.fla库中提取.wave文件.如果是这样,有人可以详细说明如何去做.
我已经阅读了这些内容,但我仍然不明白它们是如何互操作的,这些是竞争技术,甚至是真正的每一个都是明显的.
Flash,Air,Flex ......这些都是"容器"/类似JVM的运行时环境,其中运行ActionScript代码?
SWF,FLV,AIR ......这些竞争文件格式是Flash,Air还是Flex运行时环境执行的?
ActionScript是一种类似C语言,可编译为SWF,FLV或AIR文件?
对不起,围绕这些条款的所有营销,其中一些可以互换使用,我很遗憾.假设我想写一个AIR应用程序......那会带来什么?编写ActionScript,将其编译为SWF,然后安装AIR运行时以执行它?与Flash不同的是什么?
如果我想播放AIR应用程序,是否需要单独的AIR运行时或Flash是否执行AIR应用程序?
我正在处理由第三方创建的Flash文件.它在库中有很多文件夹和文件,我似乎无法在任何地方找到任何ActionScript.
有什么简单的方法可以在作者顽皮并且没有标记它或将它放在合理的位置时找到ActionScript的位置?
在我的Actionscript代码中,我有两个日期:
var date1:Date = new Date(2011,1,1);
var date2:Date = new Date(2011,1,1);
Run Code Online (Sandbox Code Playgroud)
这不起作用:
var equal:Boolean = date1 == date2;
Run Code Online (Sandbox Code Playgroud)
从阅读中我发现这是一个可行的替代方案,因为它只是从标准时间点获得毫秒数.
var equal:Boolean = date1.getTime() == date2.getTime();
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
提前致谢.
有没有人遇到过关于int和uint算术如何在Actionscript 3中运行的权威规范?("权威"是指"来自Adobe"或"已被Adobe宣布为权威").特别是我正在寻找一种支持的方法来做整数乘法模2 32.我无法找到的任何Adobe文档都没有涵盖这一点.
Actionscript声称基于ECMAScript,但ECMAScript根本不进行整数运算.它在IEEE-754双打上完成所有操作,并在按位运算之前减少模数2 32,在大多数情况下模拟整数运算.但是,这对于乘法不起作用:乘法的真实结果,例如,0x10000001*0x0FFFFFFF对于双尾数的尾数来说太长,因此如果遵循规范,则低位将丢失.
现在输入Actionscript.我已经通过实验发现,将两个int或多个uint变量相乘并立即将产品投入int或uint总是给我确切的结果.但是,生成的AVM2字节码只包含一个普通的"mul"指令,没有直接指示它应该产生整数结果而不是浮点结果; 虚拟机必须向前看以找到它.我担心我在实验中幸运,并获得额外的精确度作为奖励,而不是我可以依赖的东西.
(首先,我的实验都是使用x86 Flash播放器进行的.也许它代表中间结果,因为Intel 80位加倍,或者在评估堆栈上存储64位int,直到知道它将用于什么.在没有原生32×32→64乘法指令的非x86平板电脑上很容易实现,那么VM是否可以决定将精度降低到ECMAScript标准指定的范围?)
24小时状态:迈克威尔士做了一些有能力的调查并提供了非常有用的链接,但遗憾的是还不足以解决这个问题.还有谁?
(tl;博士在评论中辩论:whitequark在某种程度上反驳了我的假设理由之一,为什么答案可能是"不".他的观点有其优点,但当然不能表明答案是"是" ).
我发现通过参考方法使用ActionScript的数组赋值并不熟悉.我理解它在做什么,但我发现用这种方法管理很多数组会让人感到困惑.是否有一种简单的方法来处理ActionScript数组,其中数组赋值是通过VALUE而不是REFERENCE?例如,如果我想在将来永远分配oneArray给twoArray两个数组而不是将它们连接起来,那该怎么做呢?这会有用吗?
var oneArray:Array = new Array("a", "b", "c");
var twoArray:Array(3);
for (ii=0; ii<3; ii++) { twoArray[ii] = oneArray[ii]; }
Run Code Online (Sandbox Code Playgroud)
目的是能够在twoArray不看到变化的情况下进行更改oneArray.
有关如何通过VALUE而不是REFERENCE分配数组的任何建议吗?
- - 以供参考 - -
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html
数组赋值是通过引用而不是值.将一个数组变量分配给另一个数组变量时,两者都引用相同的数组:
var oneArray:Array = new Array("a", "b", "c");
var twoArray:Array = oneArray; // Both array variables refer to the same array.
twoArray[0] = "z";
trace(oneArray); // Output: z,b,c.
Run Code Online (Sandbox Code Playgroud) actionscript ×10
flash ×5
apache-flex ×3
air ×1
amazon-ec2 ×1
amazon-s3 ×1
blazeds ×1
date ×1
equality ×1
javascript ×1
operators ×1
puremvc ×1
ruby ×1
zip ×1