小编The*_*heo的帖子

我怎样才能"不接受"Flex中的拖累?

一旦我打电话DragManager.acceptDrag有没有办法"不接受"拖累?假设我有一个可以接受拖放的视图,但仅限于某些区域.一旦用户拖动其中一个区域,我就会调用DragManager.acceptDrag(this)(来自DragEvent.DRAG_OVER处理程序),但如果用户移出该区域,我想将拖动状态更改为不接受并显示DragManager.NONE反馈.但是,无论是呼唤DragManager.acceptDrag(null)还是DragManager.showFeedback(DragManager.NONE)似乎都没有任何效果.一旦我接受了拖动设置反馈类型我似乎无法改变它.

只是为了说清楚:用户应该能够放下的区域不是组件甚至是显示对象,实际上它们只是文本字段文本中的范围(如选择).如果他们是他们自己的组件我可以通过让他们每个人单独接受拖动事件来解决它.我想我可以创建漂浮在文本上的代理组件来模拟它,但如果没有必要,我宁愿不这样做.


我已经设法让它现在在AIR和浏览器中工作,但只能将代理组件放在文本范围之上,你应该能够丢弃东西.这样我得到了正确的反馈,并且在拖动出口处自动取消了下降.

这是关于AIR的D&D最奇怪的事情:

DragManager.doDrag(initiator, source, event, dragImage, offsetX, offsetY);
Run Code Online (Sandbox Code Playgroud)

在基于浏览器的Flex中,offsetX并且offsetY应该是否定的(这样说的文档,并能正常工作).但是,在AIR中运行完全相同的代码时,必须使偏移量为正.相同的数字,但积极的.这非常非常奇怪.


我已经测试了更多以及@maclema的工作原理,但是如果你在AIR中运行则不行.看起来AIR中的拖放是不同的.这真的非常奇怪,因为不仅反馈没有正确显示,也不可能不接受,但坐标也完全关闭.我只是在浏览器而不是AIR中尝试我的应用程序,拖放完全被打破.

另外,跳过dragEnter处理程序在AIR中运行良好,但在浏览器中运行时会破坏所有内容.

apache-flex drag-and-drop actionscript-3

5
推荐指数
1
解决办法
5072
查看次数

没有keep-alive的Jetty chunked传输编码

我使用Jetty作为服务器通过HTTP传输数据.数据来自消息队列,我正在异步处理处理,在准备就绪时有消息打印到连接,并且有消息可用.当客户端断开连接时,我停止从队列中消费消息并清理专用于该流的所有资源.

Jetty选择发送响应chunked并Transfer-Encoding: chunked默认设置 - 这就是我想要的,因为这是一个无休止的流,我显然无法设置Content-Length标头.

但是,我还需要设置Connection: close响应.服务器将在负载均衡器后面运行,该负载均衡器将尝试与后端服务器保持持久连接,除非它们明确发送Connection: close.我没办法配置负载均衡器,它完全不在我手中.如果负载均衡器保持连接打开,我无法知道何时停止从消息队列中消耗,因为连接将保持打开状态.

问题在于,当我执行response.setHeader("Connection", "close")Jetty时,停止将响应呈现为分块.它也没有设置Content-Length标头,只是将输出流式传输到连接.据我所知,这在HTTP中并不合适,即使许多客户端可能会处理它.我真的想使用分块传输编码,并禁用keep-alive.我怎么能说服Jetty呢?

这是一个显示我的工作的最小例子.如果我删除设置Connection标题的行Jetty块响应,但它没有.

public class StreamingServer {
  public static void main(String[] args) throws Exception {
    Server server = new Server(2000);
    server.setHandler(new AbstractHandler() {
      public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        response.setBufferSize(1024);
        // if I remove this line I get Transfer-Encoding: chunked
        response.setHeader("Connection", "close");
        response.flushBuffer();
        AsyncContext asyncContext = request.startAsync();
        asyncContext.setTimeout(0);
        final ServletOutputStream …
Run Code Online (Sandbox Code Playgroud)

asynchronous jetty

5
推荐指数
0
解决办法
1595
查看次数

BigQuery COALESCE/IFNULL类型与文字不匹配

在SQL我通常使用COALESCE,并IFNULL确保我得到的数字,而不是NULL当我查询包含像聚合函数COUNTSUM,例如:

SELECT IFNULL(COUNT(foo), 0) AS foo_count FROM …
Run Code Online (Sandbox Code Playgroud)

但是,在BigQuery中我遇到了一个错误:

函数中的参数类型不匹配IFNULL:'f0_'是uint64类型,'0'是int32类型.

有没有办法让BigQuery理解unit64在这个上下文中应该将文字0解释为a ?

我尝试过使用CAST,但是unit64我没有可以使用的类型,所以我尝试INTEGER:

SELECT IFNULL(COUNT(foo), CAST(0 AS INTEGER)) AS foo_count FROM …
Run Code Online (Sandbox Code Playgroud)

这给了我基本相同的错误,但至少我已成功获得64位零而不是32位:

函数中的参数类型不匹配IFNULL:'f0_'是uint64类型,'0'是int64类型.

如果我使用同样的事情INTEGER(0).

如果我将两个参数都转换为INTEGER:

SELECT IFNULL(INTEGER(COUNT(foo)), INTEGER(0)) AS foo_count FROM …
Run Code Online (Sandbox Code Playgroud)

但现在它开始变得冗长.这真的是你应该如何在BigQuery中做到这一点?

sql google-bigquery

5
推荐指数
1
解决办法
4082
查看次数

Athena 的 .csv.metadata 文件的数据格式是什么?

.csv.metadataAmazon Athena 写入的文件的数据格式是什么?

除了每个查询的输出文件之外,还有一个元数据文件。看起来它描述了结果的架构。我假设这是 Athena 用于创建请求ResultSet.ResultSetMetadata响应部分的内容GetQueryResults,并且它是由 Hive 或 Presto 以某种方式创建的。

2019-04-23 14:51:29         27 e7629796-9b91-476a-bfb7-2fe6c9595bce.csv
2019-04-23 14:51:29         56 e7629796-9b91-476a-bfb7-2fe6c9595bce.csv.metadata
2019-04-27 14:23:53    1591958 ebe432ac-db7b-4ea1-b5de-529350d1a02a.csv
2019-04-27 14:23:53        712 ebe432ac-db7b-4ea1-b5de-529350d1a02a.csv.metadata
2019-04-25 16:31:23      10152 eeb6f4ab-9ac3-4a7e-81c4-0cc155187acb.csv
2019-04-25 16:31:23        494 eeb6f4ab-9ac3-4a7e-81c4-0cc155187acb.csv.metadata
2019-04-25 22:30:56   22384376 f0160ff7-e5b3-466d-926a-a660a5208c5f.csv
2019-04-25 22:30:56        494 f0160ff7-e5b3-466d-926a-a660a5208c5f.csv.metadata
Run Code Online (Sandbox Code Playgroud)

e7629796-9b91-476a-bfb7-2fe6c9595bce.csv.metadata这是上面列表中的十六进制转储:

00000000  0a 1b 32 30 31 39 30 34  32 33 5f 31 32 35 31 32  |..20190423_12512|
00000010  38 5f 30 30 30 30 31 5f  65 68 74 75 …
Run Code Online (Sandbox Code Playgroud)

file-format hive amazon-athena

5
推荐指数
1
解决办法
1824
查看次数

在 Athena 中分解数组

我在 athena 中有一个简单的表,它有一系列事件。我想编写一个简单的选择语句,以便数组中的每个事件成为一行。

我尝试过爆炸、变形,但没有成功。我已经在 Spark 和 Hive 中成功完成了。但这雅典娜却在欺骗我。请指教

DROP TABLE bi_data_lake.royalty_v4;
CREATE external TABLE bi_data_lake.royalty_v4 (
   KAFKA_ID string,
   KAFKA_TS string,
   deviceUser struct< deviceName:string, devicePlatform:string >,
   consumeReportingEvents array<
                                struct<
                                        consumeEvent: string,
                                        consumeEventAction: string,
                                        entryDateTime: string
                                      >
                               >
   )
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://XXXXXXXXXXX';
Run Code Online (Sandbox Code Playgroud)

查询哪个不起作用

select kafka_id, kafka_ts,deviceuser, 
transform( consumereportingevents, consumereportingevent -> consumereportingevent.consumeevent) as cre
from bi_data_lake.royalty_v4 
where kafka_id = 'events-consumption-0-490565';
Run Code Online (Sandbox Code Playgroud)

不支持横向视图分解(consumereportingevents)作为consumereportingevent

回答问题使用unnset

找到了我的问题的答案

WITH samples AS (
 select kafka_id, kafka_ts,deviceuser, consumereportingevent, consumereportingeventPos
 from bi_data_lake.royalty_v4 
 cross join unnest(consumereportingevents)  WITH ORDINALITY AS …
Run Code Online (Sandbox Code Playgroud)

amazon-dynamodb presto amazon-athena

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

如何在Redshift表中找出每列的大小?

在Redshift中尝试不同的压缩设置时,了解每列的大小非常有用.我知道如何获取表的大小,但我想知道该表中每个列的大小.

sql amazon-redshift

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

为什么Google Analytics跟踪代码中的所有方法都以下划线开头?

使用下划线对变量和方法名称进行前缀是将事物标记为私有的常见约定.为什么Google Analytics跟踪代码(ga.js)中的网页跟踪器类中的所有方法都以下划线开头,即使是那些明显公开的,_getTracker也是如此_trackPageView

google-analytics

2
推荐指数
1
解决办法
561
查看次数

如何在ActionScript 2中检测鼠标离开舞台的时间?

我不得不将一些ActionScript 3代码下载到ActionScript 2并且我在检测鼠标何时离开舞台时遇到问题.

在ActionScript 3中有一个名为的事件Event.MOUSE_LEAVE,可用于检测鼠标何时离开舞台,但在我看到的情况下,ActionScript 2中没有相应的事件.

您最好如何模拟相同的功能?

听鼠标移动并根据舞台边界检查鼠标坐标不起作用,因为当鼠标离开舞台时鼠标坐标停止更新.

flash actionscript-2

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

mac上的〜/ bin vs/usr/local/bin之间的区别

我有一些我想在命令行上运行的exec脚本.

哪个文件夹我应该把他们~/bin还是/usr/local/bin

这两个文件夹有什么区别?

哪个是什么时候用的?

macos command-line

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