2012-07-02 4 views
2

나는 1 주일 동안 1 주일 동안의 슬라이드를 표시하는 슬라이더가 포함 된 프로그램을 Actionscript 3에 작성하고 있습니다. 슬라이더를 오른쪽으로 밀면 " 월 2 주 3 "또는"8 주 2 주 "로 설정됩니다. 이 같은 나는 한 달 : 기능 monthHandler() { 액션 스크립트 3 - 숫자와 같은 숫자의 배수 설정

var a:Number = ((Math.ceil(aSlider.value/4))+1); 
monthLabel.text = "Month" + String(a); 

} 

그러나 나는 매달 4까지, 주 표시 할 같은 슬라이더 (aSlider)합니다. 기본적으로 숫자 임계 값을 설정해야한다는 것을 알고 있습니다. 값 1-4는 주 : 1-4를 표시하지만 값 5-8은 주 1-4를 표시해야합니다.

If() 루프의 crapton을 사용하여이 작업을 수행 할 수 있음을 알고 있지만 프로그래밍이 비교적 새롭기 때문에이 작업을 수행하는보다 효율적인 방법이 있다고 가정하고 있습니다. . 나는 숫자의 배수를 확인하고 숫자 임계 값을 설정하기 위해 웹을 둘러 보았지만 아무 것도 내 문제에 적합하지 않은 것 같습니다. 주

현재 코드는 다음과 같습니다 나는 물건의 분기에 걸쳐 내 슬라이더를 모든이가하는

function weekHandler(){ 
var b:Number = ((Math.ceil(aSlider.value/12))+1); 
weekLabel.text = "Week:" + String(b); 
} 

디스플레이 1-4이다. 내가 말한 것처럼, 나는 이것이 작동하지 않는다는 것을 안다. 그러나 나는 그것을 고치기 위해 무엇을해야하는지 모른다. ') (만약'당신은 많이 필요하지 않을

b로 나누어의

var a:Number = (Math.ceil(aSlider.value) % 4) +1; 
weekLabel.text = "Week" + String(a); 

% B = 나머지 .. : 기본적으로

+2

모듈러스 (%) 연산자에 대한 문서보기 –

+0

여기 'ceil'함수의 사용이 잘못된 것일 수도 있다고 언급하고 싶습니다. +1을 추가하기 때문에 .filor()를 사용해야합니다 (예 : .ceil (1.0/4) + 1 = 2; .ceil (3.0/4) + 1 = 2; .. 0에서 3 사이의 값에 대해 month = 1을 반환하려고합니다. 바닥을 사용하면 1을 반환합니다. :) – zehelvion

답변

0

를 사용할 수 있습니다 귀하의 슬라이더했다 12 개월, 한달에 4 주 :

개월 :

var months:int = (int)(dateSlider.value/4); 

주 :

var weeks:int = (dateSlider.value % 4) + 1; 

플래시 예 :

flash-slider

당신은 dateSlider 플래시 구성 요소가 있다면 :

flash-date-slider

당신은 업데이트 수를 dateText 라벨과 같은 :

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); 
} 
,536,913 63,210


플렉스 예 :

month-0month-6month-12

<?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이므로 날짜의 해석, 기초적인 것 같다 주목해야한다.

날짜 시간대를 명시 적으로 계산하면 도움이됩니다.

1

, 나는 당신이 원하는 코드가 생각 그렇지 않으면 계산합니다.

당신은 (a - Math.floor(a/b)*b) <을 사용 =하지만를 사용하지 않는, 가정 a%b