Java屏蔽系统右键菜单_Flex自定义右键菜单-1屏蔽默认菜单

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).οnmοuseup=function() { document.getElementById(RightClick.FlashContainerID).releaseCapture(); }

document.οncοntextmenu=function(){if(window.event.srcElement.id==RightClick.FlashObjectID) {returnfalse; }else{ RightClick.Cache="nan"; }}

document.getElementById(this.FlashContainerID).οnmοusedοwn=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) {returnfunction(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

* 'flexview_rightClick'*/call: function() {

document.getElementById(this.FlashObjectID).flexview_rightClick();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native中实现侧滑菜单可以使用第三方组件库,如react-native-drawer、react-native-side-menu等,也可以自己手写实现。以下是手写实现的简单示例: 1. 安装react-native-gesture-handler库 ```bash npm install react-native-gesture-handler ``` 2. 在App.js中引入GestureHandlerRootView,并在render方法中添加侧滑菜单和主页布局 ```javascript import { GestureHandlerRootView } from 'react-native-gesture-handler'; class App extends Component { constructor(props) { super(props); this.state = { isMenuOpen: false, }; } render() { return ( <GestureHandlerRootView style={{ flex: 1 }}> <View style={{ flex: 1 }}> {this.state.isMenuOpen ? <View style={{ flex: 1, backgroundColor: 'white' }}> <Text>侧滑菜单</Text> </View> : <View style={{ flex: 1, backgroundColor: 'white' }}> <Text>主页布局</Text> </View> } </View> </GestureHandlerRootView> ); } } ``` 3. 添加手势识别和动画 ```javascript import { PanGestureHandler, State } from 'react-native-gesture-handler'; class App extends Component { constructor(props) { super(props); this.state = { isMenuOpen: false, gestureState: State.UNDETERMINED, translateX: new Animated.Value(0), }; this.onGestureEvent = Animated.event( [{ nativeEvent: { translationX: this.state.translateX } }], { useNativeDriver: true } ); } onHandlerStateChange = event => { if (event.nativeEvent.oldState === State.ACTIVE) { const { translationX } = event.nativeEvent; if (translationX < -50) { this.setState({ isMenuOpen: true }); Animated.spring(this.state.translateX, { toValue: -200, useNativeDriver: true, }).start(); } else { Animated.spring(this.state.translateX, { toValue: 0, useNativeDriver: true, }).start(); } } }; render() { return ( <GestureHandlerRootView style={{ flex: 1 }}> <View style={{ flex: 1 }}> <PanGestureHandler onGestureEvent={this.onGestureEvent} onHandlerStateChange={this.onHandlerStateChange} > <Animated.View style={{ flex: 1, transform: [{ translateX: this.state.translateX }], }} > {this.state.isMenuOpen ? <View style={{ flex: 1, backgroundColor: 'white' }}> <Text>侧滑菜单</Text> </View> : <View style={{ flex: 1, backgroundColor: 'white' }}> <Text>主页布局</Text> </View> } </Animated.View> </PanGestureHandler> </View> </GestureHandlerRootView> ); } } ``` 这样就可以实现一个简单的侧滑菜单了。需要注意的是,手写实现的侧滑菜单可能会存在一些问题,如滑动冲突、性能问题等,使用第三方组件库可以避免这些问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值