我在flash actionscript 3中为客户端构建了这个令人难以置信的精彩滚动缩略图图像查看器。(基本上它只是根据鼠标位置向上或向下滚动)。它的工作原理如此,(我永远无法获得正确的百分比,以便显示最顶层的图像)但是,这不是重点。什么真是令我感到烦恼的是当我打开浏览器窗口并加载我的.swf并点击桌面上的另一个应用程序时,浏览器窗口中的愚蠢滚动缩略图区域开始变得怪异。
“我的老鼠在哪儿啊?!?!?!?”我认为它在思考。
是否有stage.Unfocus事件我可以告诉我的滚动缩略图区域到STFU?
如果这是首选技术,我甚至会考虑编写一些javascript来调用flash函数。提前谢谢。
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"});
}
}
}
}
-J
答案 0 :(得分:2)
stage.addEventListener(Event.MOUSE_LEAVE, function(e:Event):void {});
答案 1 :(得分:2)
我建议在Javascript中检测窗口焦点事件onblur和onfocus(http://www.devguru.com/technologies/ecmascript/quickref/evHan_onBlur.html),然后使用ExternalInterface(http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html)将启用/禁用调用发送到SWF文件。所以在你的HTML中你可能有像这样的东西(在这里假设swfobject,但这不是必需的http://code.google.com/p/swfobject/):
swfobject.embedSWF("mySWF", "mySWFId", swfWidth, swfHeight, "10.0.0", "", flashvars, params, attributes);
window.onblur=function () {
if ( document.getElementById("mySWFId").disableMouseScrolling) {
document.getElementById("mySWFId").disableMouseScrolling();
}
}
window.onfocus=function () {
if ( document.getElementById("mySWFId").enableMouseScrolling ) {
document.getElementById("mySWFId").enableMouseScrolling();
}
}
在你的SWF文件中有一些等效的ExternalInterface代码来连接方法:
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,Firefox 3和Crome 4。
此致