Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Double slider button (min/max)

Guest
May 26, 2013 May 26, 2013

Hello

I am working on a calculator project with sliders. Now 1 slider needs to have a double button with min and max. I have tried to use examples from others but i can not get it to work in the current script. I hope someone can help me.

This one needs to be double:

// skill slide

skillSb.addEventListener(Event.CHANGE,onSkilChange)

[code]import fl.controls.ComboBox

import fl.controls.Slider

import fl.controls.DataGrid

import fl.controls.dataGridClasses.DataGridColumn

import fl.data.DataProvider

///////////////////////////

var levelArray:Array=new Array("disastrous","wretched","poor","weak","inadequate","passable","solid","excellent","formidable","outstanding","brilliant","magnificent","worldclass","supernatural","titanic","extra-terrestrial","mythical","magical","utopian","divine")

var trainingArray:Array=new Array("Goalkeeping","Defending","Defensive Positions","Crossing","WingAttack","Playmaking","Scoring","Shooting","Short Passes","Through Passes","Set Pieces")

var trainingBase:Array=new Array(3.0206,5.4824,10.9648,3.2341,5.3902,4.6613,4.8536,8.0893,4.2989,5.0575,0.9938)

// years slide

yearsSb.addEventListener(Event.CHANGE,onYearsChange)

// days slide

daysSb.addEventListener(Event.CHANGE,onDaysChange)

// skill slide

skillSb.addEventListener(Event.CHANGE,onSkilChange)

// sublevel slide

subSb.addEventListener(Event.CHANGE,onSubChange);

// coach slide

coachSb.addEventListener(Event.CHANGE,onCoachChange)

// assistans slide

assSb.addEventListener(Event.CHANGE,onAssChange)

// intensity slide

intensitySb.addEventListener(Event.CHANGE,onIntensityChange)

// stamina slide

staminaSb.addEventListener(Event.CHANGE,onStaminaChange)

for (var i=0;i<trainingArray.length;i++){

          trainingCb.addItem({label:trainingArray, data:trainingBase})

}

trainingCb.addEventListener(Event.CHANGE,changeEvent)

trainingCb.selectedIndex=0

// datagrid

//dg.columns = ["Week", "Skill", "Length", "Age" ];

var weekCol:DataGridColumn=new DataGridColumn()

weekCol.dataField="Week"

weekCol.sortOptions = Array.NUMERIC;

weekCol.width=50

dg.addColumn(weekCol)

var skillCol:DataGridColumn=new DataGridColumn()

skillCol.dataField="Skill"

skillCol.width=150

skillCol.sortOptions = Array.NUMERIC;

dg.addColumn(skillCol)

var lengthCol:DataGridColumn=new DataGridColumn()

lengthCol.dataField="Length"

lengthCol.width=75

dg.addColumn(lengthCol)

var ageCol:DataGridColumn=new DataGridColumn()

ageCol.dataField="Age"

ageCol.width=75

dg.addColumn(ageCol)

// variables

var years:Number

var days:Number

var yearsFactor:Number

var level:Number

var subLevel:Number

var levelFactor:Number

var trainingFactor:Number

var coachFactor:Number

var assistentsFactor:Number

var intensity:Number

var stamina:Number

var weeks:Number

var skillUp:Number

var baseLevel:Number

var newLevel:Number

// initialise graph mc

var graphMc:MovieClip=new MovieClip()

graphMc.x=80

graphMc.y=680

for(i=0;i<levelArray.length;i++){

          var skilLab:skillLabel=new skillLabel()

          skilLab.txt.text=levelArray

          skilLab.name="sl"+i

          skilLab.x=30

          var graphPoint:point=new point()

          graphPoint.name="gp"+i

          graphMc.addChild(skilLab)

          graphMc.addChild(graphPoint)

}

addChild(graphMc)

// events

function onYearsChange(e){

          yearsVal.text=yearsSb.value.toString()

          calc()

}

function onDaysChange(e){

          daysVal.text=daysSb.value.toString()

          calc()

}

function onSkilChange(e){

          skillVal.text=levelArray[skillSb.value-1]

          calc()

}

function onSubChange(e){

          subVal.text=((subSb.value)/10).toString()

          calc()

}

function onCoachChange(e){

          coachVal.text=levelArray[coachSb.value-1]

          calc()

}

function onAssChange(e){

          assVal.text=assSb.value.toString()

          calc()

}

function onIntensityChange(e){

          intensityVal.text=intensitySb.value.toString()

          calc()

}

function onStaminaChange(e){

          staminaVal.text=staminaSb.value.toString()

          calc()

}

function changeEvent(e){

          calc()

}

calc()

function calc(){

 

          years=yearsSb.value

          days=daysSb.value

          level=skillSb.value

          subLevel=subSb.value/10

 

          yearsFactor=Math.pow(1.0404,years+days/112-17)

          levelFactor=-1.4595*Math.pow((level+subLevel)/20,2)+3.7535*(level+subLevel)/20-0.1349

 

          trainingFactor=trainingBase[trainingCb.selectedIndex]

          coachFactor=1+(7-Math.min(coachSb.value,7.5))*0.091

          assistentsFactor=1+(1.041392685-(Math.log(assSb.value+1))*Math.LOG10E)*0.2749

          intensity=1/(intensitySb.value/100)

          stamina=1/(1-staminaSb.value/100)

          weeks=yearsFactor*levelFactor*trainingFactor*coachFactor*assistentsFactor*intensity*stamina

          weeks=Math.max(weeks,1)

          skillUp=1/weeks

          baseLevel=level+subLevel

          newLevel=baseLevel

          var dosta:Boolean=false

          var weeksNo:Number=0

          var weeksCount:Number=0

          var dp:DataProvider=new DataProvider()

          while(!dosta){

                    weeksNo++

                    weeksCount++

                    days+=7

                    if(days>111){

                              years++

                              days=days-112

                    }

                    reCalc()

                    newLevel+=skillUp

                    if((newLevel-level)>=1){

                              dp.addItem({ Week: weeksNo, Skill: (Math.floor(newLevel))+"-"+levelArray[Math.floor(newLevel)-1], Length:weeksCount+" weeks", Age:years+"y "+days+"d" })

                              level++

                              weeksCount=0

                    }

                    if(newLevel>=20 || years>=31){

                              dosta=true

                    }

 

          }

          dg.dataProvider=dp

          drawGraph(dp)

}

function reCalc(){

          yearsFactor=Math.pow(1.0404,years+days/112-17)

          levelFactor=-1.4595*Math.pow(newLevel/20,2)+3.7535*newLevel/20-0.1349

          weeks=yearsFactor*levelFactor*trainingFactor*coachFactor*assistentsFactor*intensity*stamina

          weeks=Math.max(weeks,1)

          skillUp=1/weeks

}

function drawGraph(dp){

          if(dp.length>0){

                    var lastRow=dp.getItemAt(dp.length-1)

                    var weekNo:Number=parseInt(lastRow.Week)

                    var topSkill:Number=parseInt(lastRow.Skill)

                    var firstRow=dp.getItemAt(0)

                    var baseSkill:Number=parseInt(firstRow.Skill)-1

                    var skillH=300/(topSkill-baseSkill)

                    var weekW=450/weekNo

                    graphMc.graphics.clear()

                    // draw greed

                    graphMc.graphics.lineStyle(2,0xffffff)

                    graphMc.graphics.moveTo(50,0)

                    graphMc.graphics.lineTo(50,300)

                    graphMc.graphics.lineTo(500,300)

                    graphMc.graphics.lineStyle(1,0xcccccc)

                    for (i=0;i<weekNo+1;i++){

                              graphMc.graphics.moveTo(50+(450/weekNo)*i,0)

                              graphMc.graphics.lineTo(50+(450/weekNo)*i,300)

                    }

                    for (i=baseSkill;i<=topSkill;i++){

                              graphMc.graphics.moveTo(50,300+baseSkill*skillH-skillH*i)

                              graphMc.graphics.lineTo(500,300+baseSkill*skillH-skillH*i)

                    }

                    // draw line

                    graphMc.graphics.lineStyle(2,0xff0000)

                    graphMc.graphics.moveTo(50,300)

                    for(i=0;i<dp.length;i++){

                              var r=dp.getItemAt(i)

                              var s=parseInt(r.Skill)

                              var w=parseInt(r.Week)

                              graphMc.graphics.lineTo(50+w*weekW,300+baseSkill*skillH-s*skillH)

                    }

                    for(i=0;i<levelArray.length;i++){

                              var sl=graphMc.getChildByName("sl"+i)

                              sl.y=300-skillH*(i-baseSkill+1)

                              if(sl.y<0 || sl.y>300){

                                        sl.visible=false

                              }else{

                                        sl.visible=true

                              }

                              var gp=graphMc.getChildByName("gp"+i)

                              if(i<baseSkill || i>=topSkill){

                                        gp.visible=false

                              }else{

                                        r=dp.getItemAt(i-baseSkill)

                                        s=parseInt(r.Skill)

                                        w=parseInt(r.Week)

                                        gp.visible=true

                                        gp.txt.text=r.Age

                                        gp.txtW.text=r.Week+" w"

                                        gp.y=300-skillH*(i-baseSkill+1)

                                        gp.x=50+w*weekW

                              }

                    }

          }

}

/* Click to Go to Scene and Play

*/

Home.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene);

function fl_ClickToGoToScene(event:MouseEvent):void

{

removeChild(graphMc);

//remove graphMc listeners, if there are any

graphMc=null;

          MovieClip(this.root).gotoAndPlay(1, "Scene 1");

}

stop();

[/code]

TOPICS
ActionScript
1.0K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Guru , May 27, 2013 May 27, 2013

You are doing nothing with your skillmaxSb.value in calc()

PS:you should either use a code hihlighter to put this much on this forum, or concentrate on the essential.

Translate
Guru ,
May 26, 2013 May 26, 2013

are you making these sliders from scratch or are you trying to use the slider-component?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
May 27, 2013 May 27, 2013

I am trying to use the slider component. 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guru ,
May 27, 2013 May 27, 2013

This could help.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
May 27, 2013 May 27, 2013

Its to much to make them from scratch so i tried to work around that with 2 sliders linked as min and max. It works so far except for this:

The minimum skill slider will change the data grid upwards. But the maximum skill slider will not draw back the data grid downwards.

I hope this can be solved.

import fl.controls.ComboBox

import fl.controls.Slider

import fl.controls.DataGrid

import fl.controls.dataGridClasses.DataGridColumn

import fl.data.DataProvider

///////////////////////////

var levelArray:Array=new Array("disastrous","wretched","poor","weak","inadequate","passable","solid","excellent","formidable","outstanding","brilliant","magnificent","worldclass","supernatural","titanic","extra-terrestrial","mythical","magical","utopian","divine")

var trainingArray:Array=new Array("Goalkeeping","Defending","Defensive Positions","Crossing","WingAttack","Playmaking","Scoring","Shooting","Short Passes","Through Passes","Set Pieces")

var trainingBase:Array=new Array(3.0206,5.4824,10.9648,3.2341,5.3902,4.6613,4.8536,8.0893,4.2989,5.0575,0.9938)

// years slide

yearsSb.addEventListener(Event.CHANGE,onYearsChange)

// days slide

daysSb.addEventListener(Event.CHANGE,onDaysChange)

// Current skill slide

skillminSb.addEventListener(Event.CHANGE,onMinSkilChange)

// To skill slide

skillmaxSb.addEventListener(Event.CHANGE,onMaxSkilChange)

// sublevel slide

subSb.addEventListener(Event.CHANGE,onSubChange);

// coach slide

coachSb.addEventListener(Event.CHANGE,onCoachChange)

// assistans slide

assSb.addEventListener(Event.CHANGE,onAssChange)

// intensity slide

intensitySb.addEventListener(Event.CHANGE,onIntensityChange)

// stamina slide

staminaSb.addEventListener(Event.CHANGE,onStaminaChange)

for (var i=0;i<trainingArray.length;i++){

          trainingCb.addItem({label:trainingArray, data:trainingBase})

}

trainingCb.addEventListener(Event.CHANGE,changeEvent)

trainingCb.selectedIndex=0

// datagrid

//dg.columns = ["Week", "Skill", "Length", "Age" ];

var weekCol:DataGridColumn=new DataGridColumn()

weekCol.dataField="Week"

weekCol.sortOptions = Array.NUMERIC;

weekCol.width=50

dg.addColumn(weekCol)

var skillCol:DataGridColumn=new DataGridColumn()

skillCol.dataField="Skill"

skillCol.width=150

skillCol.sortOptions = Array.NUMERIC;

dg.addColumn(skillCol)

var lengthCol:DataGridColumn=new DataGridColumn()

lengthCol.dataField="Length"

lengthCol.width=75

dg.addColumn(lengthCol)

var ageCol:DataGridColumn=new DataGridColumn()

ageCol.dataField="Age"

ageCol.width=75

dg.addColumn(ageCol)

// variables

var years:Number

var days:Number

var yearsFactor:Number

var level:Number

var subLevel:Number

var levelFactor:Number

var trainingFactor:Number

var coachFactor:Number

var assistentsFactor:Number

var intensity:Number

var stamina:Number

var weeks:Number

var skillUp:Number

var baseLevel:Number

var newLevel:Number

// initialise graph mc

var graphMc:MovieClip=new MovieClip()

graphMc.x=80

graphMc.y=680

for(i=0;i<levelArray.length;i++){

          var skilLab:skillLabel=new skillLabel()

          skilLab.txt.text=levelArray

          skilLab.name="sl"+i

          skilLab.x=30

          var graphPoint:point=new point()

          graphPoint.name="gp"+i

          graphMc.addChild(skilLab)

          graphMc.addChild(graphPoint)

}

addChild(graphMc)

// events

function onYearsChange(e){

          yearsVal.text=yearsSb.value.toString()

          calc()

}

function onDaysChange(e){

          daysVal.text=daysSb.value.toString()

          calc()

 

}

function onMinSkilChange(e){

          skillValMin.text=levelArray[skillminSb.value-1]

  

    if (skillminSb.value > skillmaxSb.value) skillminSb.value = skillmaxSb.value;

    calc()

}

function onMaxSkilChange(e){

          skillValMax.text=levelArray[skillmaxSb.value-1]

 

          if (skillmaxSb.value < skillminSb.value) skillmaxSb.value = skillminSb.value;

          calc()

}

function onSubChange(e){

          subVal.text=((subSb.value)/10).toString()

          calc()

}

function onCoachChange(e){

          coachVal.text=levelArray[coachSb.value-1]

          calc()

}

function onAssChange(e){

          assVal.text=assSb.value.toString()

          calc()

}

function onIntensityChange(e){

          intensityVal.text=intensitySb.value.toString()

          calc()

}

function onStaminaChange(e){

          staminaVal.text=staminaSb.value.toString()

          calc()

}

function changeEvent(e){

          calc()

}

calc()

function calc(){

 

          years=yearsSb.value

          days=daysSb.value

          level=skillminSb.value

          subLevel=subSb.value/10

 

          yearsFactor=Math.pow(1.0404,years+days/112-17)

          levelFactor=-1.4595*Math.pow((level+subLevel)/20,2)+3.7535*(level+subLevel)/20-0.1349

 

          trainingFactor=trainingBase[trainingCb.selectedIndex]

          coachFactor=1+(7-Math.min(coachSb.value,7.5))*0.091

          assistentsFactor=1+(1.041392685-(Math.log(assSb.value+1))*Math.LOG10E)*0.2749

          intensity=1/(intensitySb.value/100)

          stamina=1/(1-staminaSb.value/100)

          weeks=yearsFactor*levelFactor*trainingFactor*coachFactor*assistentsFactor*intensity*stamina

          weeks=Math.max(weeks,1)

          skillUp=1/weeks

          baseLevel=level+subLevel

          newLevel=baseLevel

          var dosta:Boolean=false

          var weeksNo:Number=0

          var weeksCount:Number=0

          var dp:DataProvider=new DataProvider()

          while(!dosta){

                    weeksNo++

                    weeksCount++

                    days+=7

                    if(days>111){

                              years++

                              days=days-112

                    }

                    reCalc()

                    newLevel+=skillUp

                    if((newLevel-level)>=1){

                              dp.addItem({ Week: weeksNo, Skill: (Math.floor(newLevel))+"-"+levelArray[Math.floor(newLevel)-1], Length:weeksCount+" weeks", Age:years+"y "+days+"d" })

                              level++

                              weeksCount=0

                    }

                    if(newLevel>=20 || years>=31){

                              dosta=true

                    }

 

          }

          dg.dataProvider=dp

          drawGraph(dp)

}

function reCalc(){

          yearsFactor=Math.pow(1.0404,years+days/112-17)

          levelFactor=-1.4595*Math.pow(newLevel/20,2)+3.7535*newLevel/20-0.1349

          weeks=yearsFactor*levelFactor*trainingFactor*coachFactor*assistentsFactor*intensity*stamina

          weeks=Math.max(weeks,1)

          skillUp=1/weeks

}

function drawGraph(dp){

          if(dp.length>0){

                    var lastRow=dp.getItemAt(dp.length-1)

                    var weekNo:Number=parseInt(lastRow.Week)

                    var topSkill:Number=parseInt(lastRow.Skill)

                    var firstRow=dp.getItemAt(0)

                    var baseSkill:Number=parseInt(firstRow.Skill)-1

                    var skillH=300/(topSkill-baseSkill)

                    var weekW=450/weekNo

                    graphMc.graphics.clear()

                    // draw greed

                    graphMc.graphics.lineStyle(2,0xffffff)

                    graphMc.graphics.moveTo(50,0)

                    graphMc.graphics.lineTo(50,300)

                    graphMc.graphics.lineTo(500,300)

                    graphMc.graphics.lineStyle(1,0xcccccc)

                    for (i=0;i<weekNo+1;i++){

                              graphMc.graphics.moveTo(50+(450/weekNo)*i,0)

                              graphMc.graphics.lineTo(50+(450/weekNo)*i,300)

                    }

                    for (i=baseSkill;i<=topSkill;i++){

                              graphMc.graphics.moveTo(50,300+baseSkill*skillH-skillH*i)

                              graphMc.graphics.lineTo(500,300+baseSkill*skillH-skillH*i)

                    }

                    // draw line

                    graphMc.graphics.lineStyle(2,0xff0000)

                    graphMc.graphics.moveTo(50,300)

                    for(i=0;i<dp.length;i++){

                              var r=dp.getItemAt(i)

                              var s=parseInt(r.Skill)

                              var w=parseInt(r.Week)

                              graphMc.graphics.lineTo(50+w*weekW,300+baseSkill*skillH-s*skillH)

                    }

                    for(i=0;i<levelArray.length;i++){

                              var sl=graphMc.getChildByName("sl"+i)

                              sl.y=300-skillH*(i-baseSkill+1)

                              if(sl.y<0 || sl.y>300){

                                        sl.visible=false

                              }else{

                                        sl.visible=true

                              }

                              var gp=graphMc.getChildByName("gp"+i)

                              if(i<baseSkill || i>=topSkill){

                                        gp.visible=false

                              }else{

                                        r=dp.getItemAt(i-baseSkill)

                                        s=parseInt(r.Skill)

                                        w=parseInt(r.Week)

                                        gp.visible=true

                                        gp.txt.text=r.Age

                                        gp.txtW.text=r.Week+" w"

                                        gp.y=300-skillH*(i-baseSkill+1)

                                        gp.x=50+w*weekW

                              }

                    }

          }

}

/* Click to Go to Scene and Play

*/

Home.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene);

function fl_ClickToGoToScene(event:MouseEvent):void

{

removeChild(graphMc);

//remove graphMc listeners, if there are any

graphMc=null;

          MovieClip(this.root).gotoAndPlay(1, "Scene 1");

}

stop();

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guru ,
May 27, 2013 May 27, 2013

You are doing nothing with your skillmaxSb.value in calc()

PS:you should either use a code hihlighter to put this much on this forum, or concentrate on the essential.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
May 27, 2013 May 27, 2013

Thanks for the pointers. I just solved it with this:

var skillDown:Number

skillDown=skillmaxSb.value

newLevel+=skillUp

                    if((newLevel-skillDown)>=1){

                              dp.removeItem({ Week: weeksNo, Skill: (Math.floor(newLevel))+"-"+levelArray[Math.floor(newLevel)-1], Length:weeksCount+" weeks", Age:years+"y "+days+"d" })

                              level++

                              weeksCount=0

                    }

Thanks!

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guru ,
May 27, 2013 May 27, 2013
LATEST

You`re welcome

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines