根据我对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铸造会更好?
作为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) 我正在尝试使用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
有没有办法在使用Flash/Flex时从HTTP结果访问响应头URLLoader?
可以设置请求标头,访问响应代码也是如此,但是获得实际响应标头似乎显然缺乏...
具体来说,我想得到一个Last-Modified响应头.
重复:接口与基类
我已经深入了解OOP,设计模式和动作脚本3的世界,我仍然很好奇如何知道何时使用Abstract类(对于不支持Abstract类的AS3的伪)和接口.对我来说,两者都只是作为模板来确保在给定的类中实现某些方法.区别仅在于抽象类需要继承而接口只是扩展吗?
谢谢,Brian Hodge hodgedev.com
请考虑以下代码:
[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]元数据标记.
这对于常量值是有意义的,但在这种情况下,值确实会发生变化,它不会直接设置.
我在Flash/AS3中写了一些东西,我遇到了这个问题:
ReferenceError: Error #1056: Cannot create property txtInput on package.name.DocumentClasss
基本上我有一个文档类,我可以创建movieclips剪辑的实例并编译没有问题.但是当我在舞台上放置一个输入文本字段(调色板中的"T"图标),并且它拒绝编译时出现上述错误.
我不确定这是否有所不同,但我在FlashDevelop中编写ActionScript,并在Flash IDE中完成编译.我也有两个Strict Mode并Warnings Mode选择下Publish Settings -> Flash -> Script -> Settings... -> Errors.
我已经在网上搜索了这个解决方案,并且那里的唯一建议似乎是不在Flash IDE中插入文本字段,而是在文档类中动态创建它们.
有更好的解决方案吗?
谢谢
我尝试了基于在Windows操作系统中开发iphone应用程序的Adobe Flash专业cs5但是当我发布时它将是.ipa格式,所以它在iphone中正常工作吗?所以你能知道ipa和app请解释我.还有可能在Adobe Flash专业cs5中开发iphone应用程序,我们如何获得.app格式?
在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) 我正在制作GPS安卓应用程序(用于安卓的空气)和我想要的是如果GPS关闭我想在设备上打开GPS设置或开启GPS但我不知道如何.我想在AS3中执行它或在Java中打开android设置.感谢帮助!
actionscript-3 ×10
flash ×3
apache-flex ×2
java ×2
adobe ×1
android ×1
binding ×1
data-binding ×1
flashdevelop ×1
http ×1
http-headers ×1
interface ×1
iphone ×1
javascript ×1
oop ×1
properties ×1
string ×1
textfield ×1
urlloader ×1
webpack ×1