17个Flash Gallery
曾经的PHP相册程序可能已经满足不到我们现在网络要求了,那么这17个Flash网络相册可能会带给你新的感觉吧?
3. dfGallery
4. Flash Page Flip Photo Gallery Demo
7. Photo Viewer Demo
8. Flash Carousel Slideshow Demo
10. SimpleViewer Demo
11. TiltViewer Demo
12. AutoViewer Demo
13. PostcardViewer Demo
15. FlashGalleryGenerator Demo
16. Agile Gallery Demo
as3右键响应事件–使用js屏蔽flash的右键菜单
JAVASCRIPT:
[cc lang="js"]
/**
*
* Copyright 2007
*
* Paulius Uza
* http://www.uza.lt
*
* Dan Florio
* http://www.polygeek.com
*
* Project website:
* http://code.google.com/p/custom-context-menu/
*
* --
* RightClick for Flash Player.
* Version 0.6.2
*
*/
var RightClick = {
/**
* Constructor
*/
init: function ( ) {
this.FlashObjectID = "customRightClick";
this.FlashContainerID = "flashcontent";
this.Cache = this.FlashObjectID;
if (window.addEventListener ) {
window.addEventListener ( "mousedown", this.onGeckoMouse ( ), true );
} else {
document.getElementById ( this.FlashContainerID ).onmouseup = function ( ) { document.getElementById (RightClick.FlashContainerID ).releaseCapture ( ); }
document.oncontextmenu = function ( ) { if (window.event.srcElement.id == RightClick.FlashObjectID ) { return false; } else { RightClick.Cache = "nan"; } }
document.getElementById ( this.FlashContainerID ).onmousedown = RightClick.onIEMouse;
}
},
/**
* GECKO / WEBKIT event overkill
* @param {Object} eventObject
*/
killEvents: function (eventObject) {
if (eventObject) {
if (eventObject.stopPropagation ) eventObject.stopPropagation ( );
if (eventObject.preventDefault ) eventObject.preventDefault ( );
if (eventObject.preventCapture ) eventObject.preventCapture ( );
if (eventObject.preventBubble ) eventObject.preventBubble ( );
}
},
/**
* GECKO / WEBKIT call right click
* @param {Object} ev
*/
onGeckoMouse: function (ev) {
return function (ev) {
if (ev.button != 0 ) {
RightClick.killEvents (ev);
if (ev.target.id == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID ) {
RightClick.call ( );
}
RightClick.Cache = ev.target.id;
}
}
},
/**
* IE call right click
* @param {Object} ev
*/
onIEMouse: function ( ) {
if (event.button> 1 ) {
if (window.event.srcElement.id == RightClick.FlashObjectID && RightClick.Cache == RightClick.FlashObjectID ) {
RightClick.call ( );
}
document.getElementById (RightClick.FlashContainerID ).setCapture ( );
if (window.event.srcElement.id )
RightClick.Cache = window.event.srcElement.id;
}
},
/**
* Main call to Flash External Interface
*/
call: function ( ) {
document.getElementById ( this.FlashObjectID ).rightClick ( );
}
}
[/cc]
Actionscript:
[cc lang="actionscript3"]
package {
import flash.display.*;
import flash.external.ExternalInterface;
public class RightClick extends Sprite
{
public function RightClick( )
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
var methodName:String = "rightClick";
var method:Function = onRightClick;
ExternalInterface.addCallback (methodName, method);
}
private function onRightClick( ):void {
var mx:int = stage.mouseX;
var my:int = stage.mouseY;
if (my> 0 && my 0 && mx <stage.stageWidth ) {
// YOUR CODE HERE
}
}
}
}
[/cc]
WINDOWS VISTA
* Internet Explorer 7.0.6001 (16549)
* Firefox 2.0.0.6 (with mouse gestures disabled)
* Maxthon 2 (with mouse gestures disabled)
* Safari 3.0.3 (522.15.5)
Windows XP SP2
* Internet Explorer 6
* Internet Explorer 7
* Maxthon 2 (with mouse gestures disabled)
* FireFox 2 (with mouse gestures disabled)
* Safari 3
* Netscape 8
Mac OSX 10.4.10 (Intel)
* Firefox 2
* Safari 3.0.3
参考:
http://www.uza.lt/blog/2007/08/solved-right-click-in-as3/
DEMO:http://www.uza.lt/rightclick/
如何完全屏蔽网页中FLASH里F5刷新及功能键
【问题需求描述】
使用flash开发的课件,交互性虽好,但是加入用户在学习过程中无意或有意按了F5,则flash会重新载入,前面的就白学了
【要解决的问题】
1.屏蔽网页里的F5刷新及功能键
2.取消由于M$改变active的机制后造成的flash空间需要激活的虚框提示
3.屏蔽焦点位于flash上时造成的针对1的解决方案所不足的刷新
【解决步骤】
1.要屏蔽网页里的F5及功能键,需要先用js判断浏览器类型,由于不同浏览器返回的事件对象以及获得事件对象keycode的方法都不一样,故用到BrowserCompatible.js来解决浏览器兼容性问题。主要代码如下:
[cc lang="js"]
//
document.onkeydown=keyDown;
function keyDown(e)
{
if(e==null)
e=BrowserCompatible.getEvent(e);
var keycode=BrowserCompatible.getKeyCode(e);
if ( keycode >=112 && keycode<=123 )
{
alert(keycode);
if(navigator.appName.indexOf("Microsoft") != -1){
e.keyCode = 0;
e.cancelBubble = true;
e.returnvalue = false;
}
return false;
//
[/cc]
2,网页的F5屏蔽和功能键都已成功,接下来就要屏蔽flash中的了,我的思路是当flash获得焦点的时候,自动将焦点再还给浏览器。具体方法如下,首先flash初始时监听mousedown事件,利用flash中的ExternalInterface.call,来调用js,使浏览器重新获得焦点。js代码如下:
[cc lang="js"]
function htmlFocus()
{
document.body.focus();
}
[/cc]
3,但是这样做的话,flash所有的键盘事件都无法被flash所获取,若需要flash获取键盘事件的话,还需把浏览器事件所产生的keycode再传回来,利用flash中的ExternalInterface.addcall()来接受js的值,具体代码如下:
[cc lang="js"]
function getMovie(movieName) {
if(navigator.appName.indexOf("Microsoft") != -1){
return window[movieName];
}
else {
if(document[movieName].length != undefined) { return document[movieName][1]; }
return document[movieName];
}
}
getMove("flash").sendKeyCode(event.keyCode);
[/cc]