私は Titanium モバイル アプリに取り組んでおり、 backgroundRadient の使用中にボタン フォーカスに問題があります。
touchstart イベントを使用して成功を収めています (changeBackgroundGradient は、ここに表示されないようにするのに十分単純です)。
authButton.addEventListener('touchstart', function(e) {
changeBackgroundGradient(authButton);
});
しかし、 touchend イベントは私が望むものではありません。ユーザーが要素へのタッチを終了した場合にのみ発生します (クリック イベントとして動作します)。Touchmove は、ユーザーが移動するとすぐに起動するため、私が望んでいるものでもありません。
authButton.addEventListener('touchmove', function(e) {
revertBackgroundGradient(authButton);
});
私が欲しいのは、ユーザーがボタンに触れている限り、ボタンにフォーカスがあるということです。「ontap」や「onrelease」のようなもの。backgroundFocusedColor と backgroundFocusedImage があることは知っていますが、backgroundFocusedGradient はありません。
backgroundGradient プロパティを使用しているときにボタンのフォーカスを処理するにはどうすればよいですか? デフォルトの動作にしたいのですが、backgroundGradient プロパティを使用するとすぐに停止するようです。
ありがとう。
- 編集:
完全なコードは次のとおりです。
// Authenticate Button
var authButton = Ti.UI.createButton({
width : '50%',
height : '60',
top : '15',
bottom : '15',
title : L('LoginView_authButton'),
font: {
fontSize: 20,
fontFamily: 'TrebuchetMS-Bold'
},
color : '#FFFFFF',
textAlign : 'center',
borderColor : '#3D86A9',
borderWidth : '2',
borderRadius : '5',
backgroundGradient : {
type : 'linear',
startPoint : {
x : '0%',
y : '0%'
},
endPoint : {
x : '0%',
y : '100%'
},
colors : [{
color : '#a2d6eb',
offset : 0.0
}, {
color : '#67afcf',
offset : 0.5
}, {
color : '#3591bc',
offset : 0.5
}, {
color : '#1e83b1',
offset : 1.0
},
]
}
});
authButton.addEventListener('touchstart', function(e) {
changeBackgroundGradient(authButton);
});
authButton.addEventListener('touchend', function(e) {
revertBackgroundGradient(authButton);
});
function changeBackgroundGradient(AuthButton)
{
AuthButton.backgroundGradient = {
type : 'linear',
startPoint : {
x : '0%',
y : '0%'
},
endPoint : {
x : '0%',
y : '100%'
},
colors : [{
color : '#f5bd8b',
offset : 0.0
}, {
color : '#e59a57',
offset : 0.5
}, {
color : '#da7a23',
offset : 0.5
}, {
color : '#c35211',
offset : 1.0
},
]
};
}
function revertBackgroundGradient(AuthButton)
{
AuthButton.backgroundGradient = {
type : 'linear',
startPoint : {
x : '0%',
y : '0%'
},
endPoint : {
x : '0%',
y : '100%'
},
colors : [{
color : '#9FD3E9',
offset : 0.0
}, {
color : '#63AAC9',
offset : 0.5
}, {
color : '#348BB8',
offset : 0.5
}, {
color : '#2081B2',
offset : 1.0
},
]
};
}