基于ActionScript 2.0的Adobe Flash可手动设置模拟时钟开发咨询
实现时钟指针与NumericStepper联动的ActionScript 2.0方案
你只需要在现有代码基础上,添加一个更新时钟指针旋转角度的函数,并在Stepper值变化时调用它,同时初始化时同步指针与Stepper的初始值即可。
修改后的完整代码:
var palletteArray = new Array(); palleteArray = ["0x7FAAD4", "0xFFDF7F"]; function setTheme() { _global.style.setStyle("themeColor", palleteArray[0]); _global.style.setStyle("backgroundColor", palleteArray[1]); _global.style.setStyle("fontSize", 11); _global.style.setStyle("fontWeight", "bold"); _global.style.setStyle("color", palleteArray[0]); } setTheme(); var stepsListener = new Object(); stepsListener.change = function() { populateTextBoxes(); }; stepperHour.addEventListener("change", stepsListener); stepperMin.addEventListener("change", stepsListener); function populateTextBoxes() { TextBox1.text = stepperHour.value; TextBox2.text = stepperMin.value; // 同步更新时钟指针 updateClockHands(stepperHour.value, stepperMin.value); } // 专门用于计算并更新指针角度的函数 function updateClockHands(selectedHour:Number, selectedMin:Number) { // 时针角度计算:(小时数 + 分钟数/60) * 30度(每小时对应30度) var hourRotation:Number = (selectedHour + selectedMin / 60) * 30; // 分针角度计算:分钟数 * 6度(每分钟对应6度) var minRotation:Number = selectedMin * 6; // 将角度应用到对应的指针影片剪辑(确保实例名与你舞台上的一致) hour._rotation = hourRotation; min._rotation = minRotation; // 如果需要秒针固定在0位,可添加这行: // sec._rotation = 0; } // 初始化时让指针与Stepper的初始值同步 updateClockHands(stepperHour.value, stepperMin.value);
说明:
updateClockHands函数复用了你之前显示当前时间时的角度计算逻辑,只是把时间参数换成了NumericStepper的选中值- 初始化时调用一次函数,避免页面加载后指针显示当前时间、与Stepper初始值不匹配的问题
- 确保舞台上的时针、分针影片剪辑实例名确实是
hour和min,如果你的实例名不同,记得修改代码中的对应名称
内容的提问来源于stack exchange,提问作者Ryan Ortega
相关产品推荐
相关产品推荐

