- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名练习处理的新手程序员,最近开发了一个使用 Twitter4j 的草图。当我从处理开发环境中以 Java 模式运行草图时,它运行得很好。此外,当我从 Java 模式导出草图时,生成的应用程序运行完美。但是,当我切换到 JavaScript 模式并尝试运行草图时,浏览器预览不会显示任何内容。
我认为该问题与 Twitter4j 有关,因为当我从草图中删除 Twitter4j 相关代码并运行它(在 JavaScript 模式下)时,浏览器预览会显示处理视觉效果。
我已经花了几天时间寻找解决方案,但我找不到足够的答案。我遇到过解决相关问题的帖子,但答案仅涉及“签署 JAR 文件”(我认为仅与 Java 模式相关)之类的术语,或者仅揭示了在浏览器上以 JavaScript 模式运行处理草图的问题-- 排除涉及使用 Twitter4j 的草图。
我在下面包含了整个代码的副本,并且非常感谢您提供逐步的答案,以满足新手的需求。我正在寻找解释,如果可能的话,如何才能让我的 JavaScript 模式导出处理 + Twitter4j 草图在 HTML/我的网站中运行。
感谢您的时间和您的技能。我在本文末尾添加了一些关于代码的注释。
import twitter4j.conf.*;
import twitter4j.*;
import twitter4j.auth.*;
import twitter4j.api.*;
import java.util.*;
Twitter twitter;
String searchString = "#brokendreams";
List<Status> tweets;
int currentTweet;
PFont f;
int amount1 = 300;
Star[] meteors = new Star[45];
StarDust[] sprinkle = {};
String chatter;
void setup() {
size(800,600);
f = createFont("Tahoma", 13, true);
textFont(f, 13);
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey("---");
cb.setOAuthConsumerSecret("---");
cb.setOAuthAccessToken("---");
cb.setOAuthAccessTokenSecret("---");
TwitterFactory tf = new TwitterFactory(cb.build());
twitter = tf.getInstance();
getNewTweets();
currentTweet = 0;
dustField();
Status status = tweets.get(currentTweet);
for (int j = 0; j < meteors.length; j++) {
meteors[j] = new Star(chatterText());
}
}
void draw() {
background(0, 35, 0);
for (int i = 0; i < sprinkle.length; i++) {
StarDust dust = sprinkle[i];
dust.move();
}
for (int j = 0; j < meteors.length; j++) {
meteors[j].appear();
meteors[j].randomOrbit();
}
chatterText();
}
void dustField() {
for (int i = 0; i < amount1; i++) {
StarDust dust = new StarDust();
dust.swish();
sprinkle = (StarDust[])append(sprinkle, dust);
}
}
String chatterText() {
currentTweet += 1;
if (currentTweet >= tweets.size()) {
currentTweet = 0;
}
Status status = tweets.get(currentTweet);
chatter = status.getText();
return chatter;
}
void getNewTweets() {
try {
Query query = new Query(searchString);
QueryResult result = twitter.search(query);
tweets = result.getTweets();
} catch (TwitterException te) {
System.out.println("Failed to search tweets: " + te.getMessage());
System.exit(-1);
}
}
void refreshTweets() {
while (true) {
getNewTweets();
println("Updated Tweets");
delay(30000);
}
}
class Star {
float x, y;
float xmove, ymove;
float radius;
color linecol, fillcol;
float alpha;
String msg;
float frag1, frag2, frag3, frag4;
Status status;
Star(String message) {
msg = message;
x = random(width);
y = random(height);
radius = random(20, 60) + 10;
linecol = color(random(255), random(255), random(255));
fillcol = color(random(255), random(255), random(255));
alpha = random(200);
xmove = sin(random(2) / 2);
ymove = sin(random(2) / 2);
frag1 = random(radius/5);
frag2 = random(radius/3);
frag3 = random(radius/4);
frag4 = random(radius/2);
}
void appear() {
if (mouseX > x-(radius/2) && mouseX < x+(radius/2) && mouseY > y-(radius/2) && mouseY < y+(radius/2)) {
strokeWeight(1);
stroke(linecol);
noFill();
ellipse(x, y, radius, radius);
} else {
noStroke();
fill(fillcol, alpha);
ellipse(x, y, radius, radius);
}
fill(fillcol);
noStroke();
beginShape();
vertex(x - (radius/3), y + frag1 - frag2);
vertex(x, y - (radius/3));
vertex(x, y);
endShape(CLOSE);
fill(linecol, alpha);
beginShape();
vertex(x, y);
vertex(x, y - (radius/3));
vertex(x + (radius/4), y - frag3 - frag4);
vertex(x + (radius/3), y + frag1 - frag2);
endShape(CLOSE);
fill(fillcol);
beginShape();
vertex(x, y);
vertex(x + (radius/3), y + frag1 - frag2);
vertex(x + (radius/4), y + frag3);
endShape(CLOSE);
fill(linecol, alpha);
beginShape();
vertex(x, y);
vertex(x + (radius/4), y + frag3);
vertex(x + (radius/5), y + frag2);
vertex(x, y + (radius/3));
vertex(x - (radius/3), y + frag1 - frag2);
endShape(CLOSE);
}
void randomOrbit() {
x += xmove;
y += ymove;
if (x > (width + radius)) { x = 0 - radius; }
if (x < (0 - radius)) { x = width + radius; }
if (y > (height + radius)) { y = 0 - radius; }
if (y < (0 - radius)) { y = height + radius; }
appear();
displayTweet();
}
void displayTweet() {
if (mouseX > x-(radius/2) && mouseX < x+(radius/2) && mouseY > y-(radius/2) && mouseY < y+(radius/2) && mousePressed) {
x = mouseX;
y = mouseY;
fill(255);
text(msg, mouseX + 30, mouseY, 200, 200);
mouseReleased();
}
}
void mouseReleased() {alpha = 80;}
}
class StarDust {
float x, y;
float xmove, ymove;
float radius;
float alpha, beta;
Status status;
StarDust() {
x = random(width);
y = random(height);
radius = random(2, 4);
alpha = random(255);
beta = random(155);
xmove = random(1.9) - 0.9;
ymove = random(1.9) - 0.9;
}
void flipColor() {
fill(random(255), random(255), random(255), beta);
stroke(random(255), random(255), random(255), beta);
}
void swish() {
flipColor();
rect(x, y, radius, radius);
}
void move() {
swish();
x += xmove;
y += ymove;
if (x > (width + radius)) { x = 0 - radius; }
if (x < (0 - radius)) { x = width + radius; }
if (y > (height + radius)) { y = 0 - radius; }
if (y < (0 - radius)) { y = height + radius; }
squarespray(xmove);
}
void squarespray(float spray) {
stroke(random(175, 255), random(255), 0, alpha);
strokeWeight(random(7));
point(x + random(radius), y + random(spray));
point(y + sin(spray) * radius, x - spray);
point(random(spray) - 60 + y, random(radius) + x - 30);
}
}
-抱歉我没有发表评论。这是我仍在努力培养的习惯。不过,我认为在涉及 Twitter4j 的主线之后没有任何相关内容。
-在上面的代码中,“---”是我的 key 的替代品。
-这是代码,否则与我从 JavaScript 模式导出并希望从浏览器运行的代码完全相同。
-我之前在我的网站上运行过处理草图;这是第一次涉及 Twitter4j。
最佳答案
您的评论是正确的:您的草图无法在 JavaScript 模式下工作,因为您正在使用 Java 库。只要您依赖 Java 库,您的代码就只能在 Java 模式下运行。您可能需要检查 JavaScript 控制台中的错误消息。
要解决此问题,您可以尝试寻找等效的 JavaScript 库并使用它来代替 twitter4j。然后你的代码就可以在 JavaScript 模式下工作了。这可能是正确的做法。
我这么说的原因是让 Java 应用程序在浏览器中运行是一件非常痛苦的事情。您必须创建一个小程序,然后使用付费证书对 jar 进行签名,或者让您的用户修改他们的 Java 安全设置 - 即使这样,您的用户在运行您的小程序之前也会收到一堆安全警告和提示.
您最好要么部署为可运行的 jar 或特定于平台的可执行文件,要么通过查找等效的 JavaScript 库完全切换到 JavaScript 模式。
关于javascript - 如何在浏览器中运行Processing+Twitter4j sketch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29049586/
如何调整箭头大小,而不是粗细 enter image description here 最佳答案 很遗憾,没有具体的设置。 我建议您使用一条线和一个元素(例如三角形)来获得与可控尺寸相同的效果。您还可
如何在 Sketch 中减去矢量路径。形状很简单,文字也可以。附加图像中的白线需要穿过矩形。建议? 最佳答案 您需要先将矢量路径转换为轮廓。 选择带有轮廓的所需元素 在菜单内选择:Layer > Co
素描字体在PT中设置 现在我想使用 bootstrap 4 编写一个网络应用程序。所以我习惯使用 pixels/em/rem 来表示字体和距离。我使用 PT 看不到值。积分似乎是针对打印媒体的 那么将
我试图了解 AMS sketch 和 Count Sketch 算法之间的区别。我的理解是他们的目标/输出都是返回一个草图,这是一个频率向量。它包含经过的 Steam 中元素的频率。两者有什么区别?
开发草图插件,该插件可以基于用户身份验证从插图托管平台获取/收集数据。 我正在使用 SKPM with sketch-module-web-view . 目前,我们有针对该网站的 Google 和 F
我创建了一个文本图层,默认情况下它的宽度只是对内容的响应,但是现在,我调整了它的宽度或它所属的组的大小,然后它的宽度将像下面一样增长。 现在,我必须手动减小其宽度。 我怎样才能让它减少它的宽度以自动响
我是素描新手。在草图中设计了一个图标后,我想将其导出为 PNG。图标是用多条路径绘制并组合在一起的。但是当我导出它时,导出的图像中有阴影。我不要影子有没有办法摆脱它? 最佳答案 你可以试试icongr
我正在开发一个应用程序,它可以让用户通过手指触摸在屏幕上“绘画”——所以基本上用户可以写、画形状——类似于白板。 问题是,就 iphone 图形编程而言,我是一个新手,如果这里的社区提供一些示例代码链
我正在尝试构建我的第一个 Sketch 插件,该插件首先向页面添加新的画板。 Sketch插件使用JSTalk ,并在Bohemian Coding documentation中它指出画板是一种图层,
所以我似乎找不到改变画板背景颜色的方法。 This is what i have currently just missing the method to set the color. var doc
我的processing.js 草图有一个 size() 调用,该调用取决于在获取 div 大小时加载的窗口。 50% 的情况下,草图会在 CSS 启动之前加载,因此草图的大小不正确。我认为解决这个问
好吧,我现在有一个半完整的 Arduino 草图。基本上,如果一串字符等于 *{blink_Flow_A}*,下面的草图将使 kegboard-mini 扩展板上的 LED 闪烁,但是,在 Ardui
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-top
我有一个简单的 SVG,我画的是 Sketch 2。 形状是一个简单的倾斜矩形,从上到下具有线性渐变。顶部为白色,不透明度为 75%,底部也是白色,不透明度为 0%。 我在上面的示例中添加了灰色背景,
我是一名练习处理的新手程序员,最近开发了一个使用 Twitter4j 的草图。当我从处理开发环境中以 Java 模式运行草图时,它运行得很好。此外,当我从 Java 模式导出草图时,生成的应用程序运行
我目前正在开发一个自动跳棋盘。我使用三个类在 C++ 中对其进行了编码,然后进行了必要的更改以将其用作 Arduino 上的库。C++ 代码分为三个类,它们为棋盘的位置启动一个 8 x 8 数组,并跟
工作: http://jsfiddle.net/3rxvnrLp/1/ 新: http://jsfiddle.net/g3sTL/229/ 检查工作 fiddle 。如果您按住左键并开始拖动鼠标,画笔
我有在 test.ino 中编写的 Arduino 代码,现在我想使用 java 将其发送到 Arduino ide 上。我应该怎么办?我的 test.ino 代码如下。 void setup() {
所以我有一个 Arduino 草图,它读取串行命令(一串字符),然后让草图根据它接收到的命令执行某些操作。截至目前,我有两个命令, {open_valve} {close_valve} 当我向 Ard
我正在尝试在我的 Xcode 项目中插入启动图像。我用 Sketch 3 创建了图像并以正常、@2x 和 @3x 格式导出,我还检查了启动图像所需的尺寸 here它们匹配,但显然 XCode 不想让我
我是一名优秀的程序员,十分优秀!