Javascript 闪光阶段失去焦点
我在FlashActionScript3中为一个客户端构建了这个非常出色的滚动缩略图图像查看器。(基本上,它只是根据鼠标位置向上或向下滚动)。它的工作原理是这样的,(我永远无法得到正确的百分比,以便它显示最顶端的图像),但是,这不是重点。真正让我恼火的是,当我打开浏览器窗口并加载.swf,然后单击桌面上的另一个应用程序时,浏览器窗口中愚蠢的滚动缩略图区域开始崩溃 “我的老鼠在哪里?”我猜它在想 是否有舞台。无焦点事件我可以告诉我的滚动缩略图区域到STFU 我甚至会考虑编写一些JavaScript来调用Flash函数,如果这是一个首选的技术。Javascript 闪光阶段失去焦点,javascript,actionscript-3,flash,dom-events,addeventlistener,Javascript,Actionscript 3,Flash,Dom Events,Addeventlistener,我在FlashActionScript3中为一个客户端构建了这个非常出色的滚动缩略图图像查看器。(基本上,它只是根据鼠标位置向上或向下滚动)。它的工作原理是这样的,(我永远无法得到正确的百分比,以便它显示最顶端的图像),但是,这不是重点。真正让我恼火的是,当我打开浏览器窗口并加载.swf,然后单击桌面上的另一个应用程序时,浏览器窗口中愚蠢的滚动缩略图区域开始崩溃 “我的老鼠在哪里?”我猜它在想 是否有舞台。无焦点事件我可以告诉我的滚动缩略图区域到STFU 我甚至会考虑编写一些JavaScript
function checkMousePos(e:Event):void
{
if(mouseX < 145){
try{
var sHeight:int = MovieClip(root).stageHeight;
}catch(Error){
trace("stage not loaded");
}
if(mouseY > (sHeight/2) + 100){
if(tHolder.y-50 > - (compHeight-sHeight)){
Tweener.addTween(tHolder, {y:tHolder.y - 90, time:1,transition:"easeOutCubic"});
}
}else if(mouseY < (sHeight/2) - 100){
if(tHolder.y+50 < 80){
Tweener.addTween(tHolder, {y:tHolder.y + 90, time:1,transition:"easeOutCubic"});
}else{
Tweener.addTween(tHolder, {y:80, time:1,transition:"easeOutCubic"});
}
}
}
}
函数checkMousePos(e:Event):无效
{
if(mouseX<145){
试一试{
var-sHeight:int=MovieClip(root).stageHeight;
}捕获(错误){
跟踪(“未加载的阶段”);
}
如果(鼠标>(sHeight/2)+100){
如果(tHolder.y-50>-(组件高度){
Tweener.addTween(tHolder,{y:tHolder.y-90,时间:1,过渡:“easeOutCubic”});
}
}否则如果(鼠标<(sHeight/2)-100){
如果(t文件夹y+50<80){
Tweener.addTween(tHolder,{y:tHolder.y+90,时间:1,过渡:“easeOutCubic”});
}否则{
addTween(tHolder,{y:80,时间:1,转变:“easeOutCubic”});
}
}
}
}
我建议在Javascript中检测窗口焦点事件onblur和onfocus(),然后使用ExternalInterface()向SWF文件发送一个enable/disable调用,因此在HTML中可能会出现类似的情况(假设这里是swfobject,但这不是必需的):
在SWF文件中,使用一些等效的外部接口代码来连接这些方法:
public class MyApplication extends ...
{
public function MyApplication ():void
{
ExternalInterface.addCallback("disableMouseScrolling", disableMouseScrolling);
ExternalInterface.addCallback("disableMouseScrolling", enableMouseScrolling);
...
}
private function disableMouseScrolling ():void
{
}
private function enableMouseScrolling ():void
{
}
...
}
希望这有帮助。我在IE8、Firefox3和Crome4中使用过它
关于,我建议在Javascript中检测窗口焦点事件onblur和onfocus(),然后使用ExternalInterface()向SWF文件发送一个enable/disable调用,因此在HTML中可能有类似的内容(假设这里有swfobject,但这不是必需的): 在SWF文件中,使用一些等效的外部接口代码来连接这些方法:
public class MyApplication extends ...
{
public function MyApplication ():void
{
ExternalInterface.addCallback("disableMouseScrolling", disableMouseScrolling);
ExternalInterface.addCallback("disableMouseScrolling", enableMouseScrolling);
...
}
private function disableMouseScrolling ():void
{
}
private function enableMouseScrolling ():void
{
}
...
}
希望这有帮助。我在IE8、Firefox3和Crome4中使用过它
您好,您可以发布一个指向滚动条的链接吗?或者一些滚动代码?嘿,莱昂,刚刚添加了这个功能。当我的电影剪辑加载时,我会添加一个事件。输入调用此函数的帧事件侦听器。顺便说一句,如果单击“打印”或“品牌”箭头,则可以使用滚动条。您可以发布滚动条的链接吗?或者一些滚动代码?嘿,莱昂,刚刚添加了这个功能。当我的电影剪辑加载时,我添加了一个事件。输入调用此函数的帧事件侦听器。顺便说一句,如果你单击“打印”或“品牌”箭头,滚动器就在这里,你可以使用它。这让我非常兴奋,只是它没有注册,因为舞台设置为100%的浏览器窗口。我不确定这是否是它不起作用的原因,但事实并非如此。不管你的舞台是100%还是其他什么状态。当鼠标离开舞台时触发此事件。当事件被触发时,您所要做的就是停止Tweens和鼠标侦听器。有很多教程,但先看看这一点:我想我发现它不起作用,因为我用“发布预览”尝试了它,我只是将事件设置为触发{trace(“off”)},它不会出现。现在好像在工作。。。现在我只需要找出如何在我的蹩脚代码中实现它。你知道吗。。。它对鼠标输出有效。。。但当实际的浏览器失去焦点时,我仍然得到了一个令人毛骨悚然的结果。这让我兴奋不已,只是它没有注册,因为舞台被设置为浏览器窗口的100%。我不确定这是否是它不起作用的原因,但事实并非如此。不管你的舞台是100%还是其他什么状态。当鼠标离开舞台时触发此事件。当事件被触发时,您所要做的就是停止Tweens和鼠标侦听器。有很多教程,但先看看这一点:我想我发现它不起作用,因为我用“发布预览”尝试了它,我只是将事件设置为触发{trace(“off”)},它不会出现。现在好像在工作。。。现在我只需要找出如何在我的蹩脚代码中实现它。你知道吗。。。它对鼠标输出有效。。。但当实际的浏览器失去焦点时,我仍然会得到一个奇怪的结果。
public class MyApplication extends ...
{
public function MyApplication ():void
{
ExternalInterface.addCallback("disableMouseScrolling", disableMouseScrolling);
ExternalInterface.addCallback("disableMouseScrolling", enableMouseScrolling);
...
}
private function disableMouseScrolling ():void
{
}
private function enableMouseScrolling ():void
{
}
...
}