我在SQL中编写了一个数据库生成脚本,并希望在我的Adobe AIR应用程序中执行它:
Create Table tRole (
roleID integer Primary Key
,roleName varchar(40)
);
Create Table tFile (
fileID integer Primary Key
,fileName varchar(50)
,fileDescription varchar(500)
,thumbnailID integer
,fileFormatID integer
,categoryID integer
,isFavorite boolean
,dateAdded date
,globalAccessCount integer
,lastAccessTime date
,downloadComplete boolean
,isNew boolean
,isSpotlight boolean
,duration varchar(30)
);
Create Table tCategory (
categoryID integer Primary Key
,categoryName varchar(50)
,parent_categoryID integer
);
...
Run Code Online (Sandbox Code Playgroud)
我使用以下方法在Adobe AIR中执行此操作:
public static function RunSqlFromFile(fileName:String):void {
var file:File = File.applicationDirectory.resolvePath(fileName);
var stream:FileStream = …Run Code Online (Sandbox Code Playgroud) 如何Class从该类的实例中获取actionscript类的实例?
在Python中,这将是x.__class__; 在Java中x.getClass();.
我知道有一些可怕的黑客可以做到这一点,但我正在寻找一个内置的语言设施,或者至少建立在可靠的基础上的库例程.
for (var k in dictionary)
{
var key:KeyType = KeyType(k);
var value:ValType = ValType(dictionary[k]); // <-- lookup
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
这是我用来遍历字典中的条目.正如您在每次迭代中看到的那样,我在字典中执行查找.是否有更有效的方法来迭代字典(同时保持对密钥的访问)?
我想在我的代码的任何函数中看到堆栈跟踪,所以我做了这样的事情来调用它并打印堆栈跟踪:
public function PrintStackTrace() {
try {
throw new Error('StackTrace');
} catch (e:Error) {
trace(e.getStackTrace());
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有其他方法可以做到这一点.在某些地方,Error类创建堆栈跟踪,但也许它没有使用ActionScript 3.0,所以也许它不可行,但我想知道.
谢谢!
假设我有一个600x600的BitmapData,我想将其缩小到100x100.
我知道这两种语言都来自相同的ECMA-262标准.看来,这两个正在成为使用JavaScript通过类似的方法增加对核心对象实例的事件监听器非常相似freeze,并seal在EMCAScript-262第5版和这样的.我想知道差异是什么?
将konami代码实现到flex应用程序的最佳方法是什么?
我想创建一个组件,将其添加到我的所有proyects上,只是为了好玩.
谢谢
更新:感谢ZaBlanc,我制作了一个简单的组件
<?xml version="1.0" encoding="utf-8"?>
<mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Metadata>
[Event(name="success", type="flash.events.Event")]
</mx:Metadata>
<mx:Script>
<![CDATA[
// up-up-down-down-left-right-left-right-B-A
public static const KONAMI_CODE:String = "UUDDLRLRBA";
// signature
private var signatureKeySequence:String = "";
private function init():void{
systemManager.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}
private function onKeyDown(event:KeyboardEvent):void{
var keyCode:int = event.keyCode;
switch (keyCode) {
case Keyboard.UP:
signatureKeySequence += "U";
break;
case Keyboard.DOWN:
signatureKeySequence += "D";
break;
case Keyboard.LEFT:
signatureKeySequence += "L";
break;
case Keyboard.RIGHT:
signatureKeySequence += "R";
break;
case 66: //Keyboard.B only for AIR :/
signatureKeySequence += …Run Code Online (Sandbox Code Playgroud) 当将非常接近1的浮点数乘以int> 0时,它是否可以解释为1.
也就是说,如果Math.random()返回其最高可能结果(比1.0低1步),将会
(int)(Math.random() * 8)
Run Code Online (Sandbox Code Playgroud)
是8还是7?
对于一个实际的例子,这个经常使用的构造是否可以提供索引超出范围的错误:
someArray[(int)(Math.random() * someArray.length)];
Run Code Online (Sandbox Code Playgroud)
我对Java和ActionScript 3的答案特别感兴趣,但我想它们都使用相同的浮点运算规则,任何平台的答案都会很有用.
更新:虽然我已经接受了答案,但我仍然感谢确认这在ActionScript 3中也不会出错,因为一位同事报告说他看到它出错了,这部分促使我提出这个问题.
嘿那里,我正在尝试对字符串执行向后正则表达式搜索,将其划分为3位数组.从AS3 文档中我可以看到,在reg ex引擎中无法向后搜索.
这个练习的目的是将三元组逗号插入到这样的数字中:
10000000 => 10,000,000
Run Code Online (Sandbox Code Playgroud)
我想这样做:
string.replace(/(\d{3})/g, ",$1")
Run Code Online (Sandbox Code Playgroud)
但这是不正确的,因为搜索没有从后面发生,替换$ 1只适用于第一场比赛.
我感觉我会更好地使用循环执行此任务.
更新:
由于AS3不支持前瞻,这就是我解决它的方法.
public static function formatNumber(number:Number):String
{
var numString:String = number.toString()
var result:String = ''
while (numString.length > 3)
{
var chunk:String = numString.substr(-3)
numString = numString.substr(0, numString.length - 3)
result = ',' + chunk + result
}
if (numString.length > 0)
{
result = numString + result
}
return result
}
Run Code Online (Sandbox Code Playgroud) actionscript-3 ×10
flash ×4
apache-flex ×3
actionscript ×2
air ×1
bitmapdata ×1
image ×1
iteration ×1
iterator ×1
java ×1
javascript ×1
math ×1
porting ×1
regex ×1
resize ×1
stack-trace ×1