首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Actionscript 3-设置数字的倍数等于数字

Actionscript 3-设置数字的倍数等于数字
EN

Stack Overflow用户
提问于 2012-07-03 07:46:01
回答 2查看 511关注 0票数 2

我正在用ActionScript3编写一个程序,其中涉及一个滑块,它显示一年中的周和月,当您将它滑动到右侧时,格式为“月2周3”或“月8周2”。我这样做了几个月:函数monthHandler(){

代码语言:javascript
复制
var a:Number = ((Math.ceil(aSlider.value/4))+1);
monthLabel.text = "Month" + String(a);

}

然而,对于相同的滑块(aSlider),我想显示每个月的周,最多4周。我知道我基本上需要设置一个数字阈值;值1-4将显示周: 1-4,但是值5-8也必须显示周1-4。

我知道我可以通过使用crapton的If()循环来做到这一点,但我对编程相对较新,所以我假设有一种更有效的方法来做到这一点,而我只是不知道它。我在网络上四处寻找,检查数字的倍数,并设置数字阈值,但似乎没有适合我的问题。

几周的当前代码是:

代码语言:javascript
复制
function weekHandler(){
var b:Number = ((Math.ceil(aSlider.value/12))+1);
weekLabel.text = "Week:" + String(b);
}

所有这一切所做的是显示1-4当我滑动我的滑块在四分之一的东西。就像我说的,我知道这不起作用,但我不知道该怎么做才能修复它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-03 13:12:39

假设你的滑块是12个月,每月4周:

月份:

代码语言:javascript
复制
var months:int = (int)(dateSlider.value / 4);

Week:

代码语言:javascript
复制
var weeks:int = (dateSlider.value % 4) + 1;

闪存示例:

如果您有dateSlider闪存组件:

您可以更新dateText标签,例如:

代码语言:javascript
复制
import fl.events.SliderEvent;

dateSlider.addEventListener(SliderEvent.CHANGE, sliderChangeHandler);

function sliderChangeHandler(event:SliderEvent):void
{
    dateText.text = "Month: " + (int)(event.value / 4) + " " +
                    "Week: " + ((event.value % 4) + 1);
}

Flex示例:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx">

    <s:layout>
        <s:VerticalLayout />
    </s:layout>

    <s:Label text="Month: {(int)(dateSlider.value / 4)} Week: {(dateSlider.value % 4) + 1}" />

    <s:HSlider id="dateSlider"
               maximum="{(13 * 4) - 1}"
               snapInterval="1"
               stepSize="1" />

</s:Application>

应该注意的是,这种对日期的解释似乎很初级,因为每个月的实际周数是4.34812周。

显式计算日期时间跨度将是有益的。

票数 0
EN

Stack Overflow用户

发布于 2012-07-03 13:10:37

基本上,我认为你想要的代码是:

代码语言:javascript
复制
var a:Number = (Math.ceil(aSlider.value) % 4) +1;
weekLabel.text = "Week" + String(a);

A%b=a除以b的余数。

否则你不需要太多的'if()‘来计算它。

您可以使用(a - Math.floor(a/b)*b) <=,但不要使用它,请使用a%b

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11302697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档