标签: actionscript-3

ActionScript:有没有充分的理由使用'as'投射?

根据我对ActionScript的理解,有两种类型的转换:

var bar0:Bar = someObj as Bar;  // "as" casting
var bar1:Bar = Bar(someObj); // "class name" casting (for want of a better name)
Run Code Online (Sandbox Code Playgroud)

另外,请纠正我,如果我在这里错了,ascast会返回一个类的实例,或者null"class name"cast会返回一个类的实例,或者如果演员不可能会引发异常 - 除了这,他们是相同的.

但是,鉴于此,as施法似乎是对早期失败 - 快速 - 失败 - 早期原则的大规模违反......而且我很难想象一种情况,即使用强制转换as而不是使用类名转换(可能会instanceof抛出那里.

所以,我的问题是:在什么情况下使用as铸造会更好?

actionscript-3

18
推荐指数
3
解决办法
5528
查看次数

Java的异步HTTP客户端

作为Java世界中的一个相对新手,我发现很多事情令人沮丧地完成,在许多其他框架中相对微不足道.一个主要的例子是异步http请求的简单解决方案.看起来似乎并不存在,最好的方法是什么?使用像httpclient这样的阻塞类型的lib或内置的java http东西来创建我自己的线程,或者我应该使用更新的非阻塞io java东西 - 对于应该简单的东西来说似乎特别复杂.

我正在寻找的是从开发人员的角度来看易于使用的东西 - 类似于AS3中的URLLoader - 您只需创建一个URLRequest - 附加一堆事件处理程序来处理完成,错误,进度等,并调用一种解雇它的方法.

如果您不熟悉AS3中的URLLoader,它非常简单,看起来像这样:

private void getURL(String url)
{
    URLLoader loader = new URLLoader();
    loader.addEventListener(Event.Complete, completeHandler);
    loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
    loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

    URLRequest request = new URLRequest(url);

    // fire it off - this is asynchronous so we handle
    // completion with event handlers
    loader.load(request);
}

private void completeHandler(Event event)
{
    URLLoader loader = (URLLoader)event.target;
    Object results = loader.data;

    // process results
}

private void httpStatusHandler(Event event)
{
    // check status code
}

private …
Run Code Online (Sandbox Code Playgroud)

java http httpwebrequest actionscript-3

18
推荐指数
5
解决办法
3万
查看次数

如何使用webpack访问全局对象(窗口)?

我正在尝试使用JavaScript ExternalInterface和webpack 将ActionScript与JavaScript连接起来.

ExternalInterface只能call在全局对象(window)上找到provoked()函数.如何在window(全局对象)上获取webpack模块参考?

请允许我详细说明一下,我想为company(window.companyName)创建一个名称空间,其接口为ExternalInterface:

window.companyName = { isReady: function() { ... },
                       driver1: function() { ... }, 
                       driver2: function() { ... } }
Run Code Online (Sandbox Code Playgroud)

ActionScript将驱动我的JavaScript.更基本的问题是,如何使用webpack设置全局变量以便ExternalInterface可以看到它们(最好是作为模块的导出)?

我试过用expose-loader,exports-loader imports-loader没有运气.expose-loader理想情况下,我需要什么,但似乎不起作用.当我在我的模块中设置window.companyName并尝试在我的chrome控制台中验证它时,它会导致undefined.

javascript global-variables actionscript-3 externalinterface webpack

18
推荐指数
2
解决办法
2万
查看次数

访问flash.net.URLLoader对象的HTTP响应头?

有没有办法在使用Flash/Flex时从HTTP结果访问响应头URLLoader

可以设置请求标头,访问响应代码也是如此,但是获得实际响应标头似乎显然缺乏...

具体来说,我想得到一个Last-Modified响应头.

apache-flex flash urlloader actionscript-3 http-headers

17
推荐指数
1
解决办法
1万
查看次数

你如何决定使用抽象类和接口?

重复:接口与基类


我已经深入了解OOP,设计模式和动作脚本3的世界,我仍然很好奇如何知道何时使用Abstract类(对于不支持Abstract类的AS3的伪)和接口.对我来说,两者都只是作为模板来确保在给定的类中实现某些方法.区别仅在于抽象类需要继承而接口只是扩展吗?

谢谢,Brian Hodge hodgedev.com

oop abstract-class interface actionscript-3

17
推荐指数
2
解决办法
2万
查看次数

绑定到AS3中的只读getter

请考虑以下代码:

[Bindable(event="ReportHeaderVO_effectiveFromDateJulian_updated")]
public function set effectiveFromDateJulian ( value:Number ) : void
{
    _effectiveFromDateJulian = value;
    dispatchEvent( new FlexEvent("ReportHeaderVO_effectiveFromDateJulian_updated") );
}

public function get effectiveFromDateJulian () : Number
{
    return _effectiveFromDateJulian;
}

public function get effectiveFromDate () : Date
{
    return DateUtil.convertJDEJulianToDate(_effectiveFromDateJulian);
}
Run Code Online (Sandbox Code Playgroud)

有效的FromDateJulian有一个setter和一个getter,它是日期的数字表示.我提供了一个单独的getter,它检索相同的值,只转换为正确的日期.它只是一个getter,它依赖于numeric属性的setter来获取它的数据; 所以effectiveFromDate属性实际上是只读的.

数据绑定适用于effectiveFromDateJulian属性; 任何更新工作正常,并正确通知一切.但是当绑定到effectiveFromDate(仅限getter)属性时,我收到编译器的警告:

warning: unable to bind to property 'effectiveToDate' on class 'com.vo::ReportHeaderVO'
Run Code Online (Sandbox Code Playgroud)

有没有办法可以绑定到这个只读属性?我想我必须在setter上调度一个影响只读属性的事件,但我不知道那会是什么样子.

这是一个简单的示例,您可以想象一个只读属性依赖于几个setter来运行,当更新任何setter时,只读属性也需要触发propertyChanged事件.有任何想法吗?如果我需要澄清任何事情,请告诉我.

更新:从这里的Adobe文档:

http://livedocs.adobe.com/flex/3/html/help.html?content=databinding_8.html

使用只读属性作为数据绑定的源

您可以自动使用getter方法定义的只读属性,这意味着没有setter方法,作为数据绑定表达式的源.Flex在应用程序启动时执行一次数据绑定.

由于只读属性的数据绑定仅在应用程序启动时发生一次,因此省略了只读属性的[Bindable]元数据标记.

这对于常量值是有意义的,但在这种情况下,值确实会发生变化,它不会直接设置.

apache-flex data-binding binding properties actionscript-3

17
推荐指数
1
解决办法
4890
查看次数

Flash AS3:ReferenceError:错误#1056:无法创建属性

我在Flash/AS3中写了一些东西,我遇到了这个问题:

ReferenceError: Error #1056: Cannot create property txtInput on package.name.DocumentClasss

基本上我有一个文档类,我可以创建movieclips剪辑的实例并编译没有问题.但是当我在舞台上放置一个输入文本字段(调色板中的"T"图标),并且它拒绝编译时出现上述错误.

我不确定这是否有所不同,但我在FlashDevelop中编写ActionScript,并在Flash IDE中完成编译.我也有两个Strict ModeWarnings Mode选择下Publish Settings -> Flash -> Script -> Settings... -> Errors.

我已经在网上搜索了这个解决方案,并且那里的唯一建议似乎是不在Flash IDE中插入文本字段,而是在文档类中动态创建它们.

有更好的解决方案吗?

谢谢

flash flashdevelop actionscript-3 textfield

17
推荐指数
1
解决办法
3万
查看次数

在使用iphone时,.ipa和.app格式有什么不同?

我尝试了基于在Windows操作系统中开发iphone应用程序的Adobe Flash专业cs5但是当我发布时它将是.ipa格式,所以它在iphone中正常工作吗?所以你能知道ipa和app请解释我.还有可能在Adobe Flash专业cs5中开发iphone应用程序,我们如何获得.app格式?

iphone flash adobe actionscript-3

17
推荐指数
2
解决办法
2万
查看次数

ActionScript 3 .replace()仅替换第一个实例

在Flash ActionScript 3中,我尝试做一些我认为很简单的事情:用另一个短语替换文本字符串中的短语的所有实例.但是,由于某种原因,只更换了第一个实例,而忽略了其余的实例.我通过在字符串替换函数中运行它大约9次来一起解决了一个解决方案,所以最终的结果已经全部被<br />替换但是我想知道我做错了什么.提前致谢!

我的代码:

var importPostAddress = "123 Fake Street<br />Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />";
var postAddress = importPostAddress.replace("<br />",", ");
Run Code Online (Sandbox Code Playgroud)

跟踪时的预期结果postAddress:

123 Fake Street, Mytown, Mycounty, Mycountry, PO5 7CD, , 
Run Code Online (Sandbox Code Playgroud)

实际结果:

123 Fake Street, Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />
Run Code Online (Sandbox Code Playgroud)

string actionscript-3

17
推荐指数
2
解决办法
3万
查看次数

如何打开Android设备的GPS设置?

我正在制作GPS安卓应用程序(用于安卓的空气)和我想要的是如果GPS关闭我想在设备上打开GPS设置或开启GPS但我不知道如何.我想在AS3中执行它或在Java中打开android设置.感谢帮助!

java android actionscript-3

17
推荐指数
2
解决办法
2万
查看次数