我正在遇到已发布的Flash电影的错误.当我将电影嵌入HTML页面(使用SWFObject 2.1),并将其设置为'transparent'的wmode参数值时,基于MouseWheel事件的所有函数都停止工作.这部电影基于AS2.知道这个bug的人吗?
希望这不会被当作两次问相同的问题...
因此,我正在一个Flash网站(在AS2中)工作,该网站具有外部索引swf,可使用来加载子swf文件loadMovie("subfoo1.swf", placeToShowSwf)。这些反过来加载一个xml文件,告诉它要加载什么内容。一切正常,但是我们想在索引swf中添加一个按钮,以打开一个子swf文件,其中一个或两个变量具有一个或两个不同的值。
不幸的是,只添加了一个说
loadMovie("foo1.swf", placeToShowSwf);
placeToShowSwf.openProject(x);
Run Code Online (Sandbox Code Playgroud)
不起作用,我认为是因为openProject(x)在未完全加载的文件上调用。我知道代码没有问题,因为我在其他地方创建了一个仅调用按钮,placeToShowSwf.openProject(x)没有任何问题。
我看到两个解决方案,我不确定该怎么做。
loadMovie(new foo1.swf(x), placeToShowSwf)或等效的话真是太好了。placeToShowSwf.openProject(x)。有人对这些解决方案有任何指导,或者有人以类似豌豆的大脑无法理解的其他方式获得了指导?
我知道这是一个简单的问题,但我没有使用ActionScript ...
我知道如何使用Flash创建文本输入字段.我可以在舞台上创建它并给它一个实例名称.
捕获文本输入字段值并在动态文本字段中显示该值的代码是什么?ActionScript 2.0和3.0之间的这个过程有何不同?
我注意到一些程序员根据时间的不同动画对象.我不确定为什么,即使这是合乎逻辑的.有谁知道这个意义吗?
下面是一段代码,解释了我的意思:
var timePassed:int = getTimer()-lastTime;
lastTime += timePassed;
var newBallX = ball.x + ballDX*timePassed;
var newBallY = ball.y + ballDY*timePassed;
Run Code Online (Sandbox Code Playgroud) 我有一个项目,我有一个movie.swf(AS2)和一些按钮与html部分中的js/jQuery.现在我想要按钮来控制闪光灯.例如,按下Button1将执行gotoAndPlay(1)和Button2 gotoAndPlay(150)Button3 gotoAndStop(450)
Flashmovie使用Actionscript 2.
如果我使用MovieClip而不是Sprite扩展MainClass,还可以做些什么.我知道MovieClip扩展了Sprite并且它下面定义了Timeline.但仍然是如何通过MovieClip使用它?
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.display.MovieClip;
import flash.text.TextFieldType;
public class MainClass extends Sprite{
public function MainClass() {
var m:Module=new Module("Admin","John");
var tf:TextField=new TextField();
tf.text=m.info;
tf.border=true;
tf.type=TextFieldType.INPUT;
var myFormat:TextFormat = new TextFormat();
myFormat.size = 3;
tf.defaultTextFormat=myFormat;
addChild(tf);
this.width=500;
this.height=300;
this.x=0;
this.y=10;
}
}
}
class Module{
private var m_mName:String;
private var m_owner:String;
public function Module(mName:String,owner:String):void{
m_mName=mName;
m_owner=owner;
}
public function get info():String{
return owner+' is owner of '+mName;
}
public function get mName():String{
return m_mName;
} …Run Code Online (Sandbox Code Playgroud) 我正在对一个旧的 Flash 游戏进行逆向工程,并在登录过程中将 POST 请求发送到服务器。动作脚本2:
req.username = inicial.login_mc.username_txt.text;
req.password = inicial.login_mc.password_txt.text;
xmlResponse = new LoadVars();
xmlResponse.onLoad = function() {
xml = new XML(xmlResponse.xml);
trace("login xml: " + xml);
user = xml.childNodes[0];
};
url_login = "api/auth/user";
req.sendAndLoad(url_login, xmlResponse, "POST");
Run Code Online (Sandbox Code Playgroud)
要求:
req.username = inicial.login_mc.username_txt.text;
req.password = inicial.login_mc.password_txt.text;
xmlResponse = new LoadVars();
xmlResponse.onLoad = function() {
xml = new XML(xmlResponse.xml);
trace("login xml: " + xml);
user = xml.childNodes[0];
};
url_login = "api/auth/user";
req.sendAndLoad(url_login, xmlResponse, "POST");
Run Code Online (Sandbox Code Playgroud)
我的回复:
Request URL: http://localhost:3000/api/auth/user
Request Method: POST
Status …Run Code Online (Sandbox Code Playgroud) 我试图使用JS将数据发送到带有ExternalInterface的Flash AS2.0音乐播放器,除了我找不到有关ExternalInterface的好教程或指南.我希望能够通过单击JavaScript链接更改播放器中的当前歌曲,并在页面/窗口加载时不点击,播放默认歌曲.
我不需要在闪存等中加载声音的超级复杂的答案,我只是在让JS向Flash发送任何内容时遇到很多困难,当我开始工作时 - 我是否需要将一些if/else放入闪存以确定链接是否已被点击?
谢谢
编辑继承人现在的代码:
AS 2.0
import flash.external.ExternalInterface;
ExternalInterface.addCallback('loadSong', null, flashFunction);
function flashFunction (val) {
extra = val;
}
Run Code Online (Sandbox Code Playgroud)
JavaScript的
var flashObj = document.getElementById('VSPLAYER');
function loadSong(val) {
return val
}
Run Code Online (Sandbox Code Playgroud)
HTML
<a href="javascript:loadSong('2')">Play song 2</a>
<object id="VSPLAYER" type="application/x-shockwave-flash" data="vs_player.swf" width="280" height="90">
<param name="movie" value="vs_player.swf" />
<param name="allowscriptaccess" value="always" />
</object>
Run Code Online (Sandbox Code Playgroud) 我让 nodejs 监听 tcp 端口并从 Flash XMLSocket 获取内容。如果我尝试从 flash ( XMLSocket.send(long_message)) 的一条消息中推送大量数据,我总是最终stream.on("data", function(d) {触发事件,而我希望在传输整个消息时发生。Flash 的 XMLSocket 将数据作为以空字节结尾的 UTF8 编码字符串传输。如何控制我的消息一致性?
我在这里找到了类似的问题。但没有明确的答案。我知道我的消息的结尾应该是空字节,但是你能给我一个关于如何存储不完整消息并避免与下一条/并发消息重叠的例子吗?
在 maerics 的回答之后,我做了类似的事情
var server = net.createServer(function(stream) {
var dataBlock = "";
stream.on("data", function(d) {
processChunk(d);
});
function processChunk(data) {
var chunks = data.split("\0");
while (chunks.length > 1) {
if (dataBlock.length > 0) {
dataBlock += chunks.shift();
processIncompingMessage(dataBlock);
dataBlock = "";
}
else {
processIncompingMessage(chunks.shift());
}
}
dataBlock += chunks.shift();
}
}
Run Code Online (Sandbox Code Playgroud) actionscript-2 ×10
flash ×8
actionscript ×3
javascript ×2
amf ×1
animation ×1
http ×1
jquery ×1
node.js ×1
perl ×1
python ×1
textinput ×1
wmode ×1