Olá pessoal tenho este código que ta a dar 2 erros será que me podem
ajudar a resolver este problema
o código:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" initialize="iniciaData()"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import flash.utils.Timer;
import flash.events.TimerEvent;
// first arrays that are going to set the length of the
array
collection
private var arrayFlor:Array;
private var arrayElevat:Array;
private var turn:Number = 0;
private var secs:Number = 0;
// these are the the array collections to store the
ojects floor
and elevator
[Bindable]
public var dispArrayElevat:ArrayCollection;
public var dispArrayFlor:ArrayCollection;
//this is the variable of type timer that fires every 1
sec
private var t:Timer;
// here is where we initiate the timer
private function init() : void {
t = new Timer(1000);
t.addEventListener(TimerEvent.TIMER, tempo);
t.start();
}
// maybe I will need an array of
buttons, the size of the floors
// assing to each one the same function, match its index
public function iniciaData():void {
dispArrayElevat = new
ArrayCollection(arrayElevat);
dispArrayFlor = new ArrayCollection(arrayFlor);
}
// this function is filling the array collection with
the objects
// when the button "set" is clicked - you have to click
it before
ckicking a floor
private function outPut(event:Event):void{
arrayFlor= new Array(floorsNum.value);
arrayElevat= new Array(elevatorNum.value);
for(var i:Number=0; i< elevatorNum.value; i++) {
dispArrayElevat.addItem(new
Elevator(i,4,true));
}
for(var j:Number=0; j< floorsNum.value; j++) {
dispArrayFlor.addItem(new
Floor(j,4,false));
}
}
// if a button is pressed this funtion hanges the floor
state
private function call(event:Event):void{
var currentFloor:Number =
Number(event.currentTarget.label);
if(Already(currentFloor)){
dispArrayFlor.getItemAt(currentFloor).setLightState(false);
dispArrayFlor.getItemAt(currentFloor).setFloorState(1);
output0.text = "" +
dispArrayFlor.getItemAt(currentFloor).getFloorState();//output
}
else{
dispArrayFlor.getItemAt(currentFloor).setFloorState(2);
dispArrayFlor.getItemAt(currentFloor).setLightState(true);
}
}
// this function checks if the elevator is already on a
floor
called
private function Already(floor:int):Boolean {
var i:Number=0;
for ( i = 0; i<dispArrayElevat.length; i++){
if(floor ==
dispArrayElevat.getItemAt(i).getPosition()){
return true;
}
}
i++;
return false;
}
// checks if any floor above has the state 2, "called"
private function CalledAbove(index:Number):Boolean{
var j:Number;
for ( j = dispArrayFlor.length-1; j > index;
j--){
if(dispArrayFlor.getItemAt(j).getState() == 2){
return true;
}
}
return false;
}
// checks if any floor bellow has the state 2, "called"
private function isCalledBellow(index:Number):Boolean{
var j:Number;
for ( j = 0; j < index; j++){
if(dispArrayFlor.getItemAt(j).getLightState() == true){
return true;
}
}
return false;
}
// this function is working in the first else, it
checks if there
are calls bellow but not above...BUG
private function tempo(event:TimerEvent):void {
var position:Number =
dispArrayElevat.getItemAt(turn).getPosition();
if(
dispArrayElevat.getItemAt(turn).getDirection()==true &&
CalledAbove(position)==true ) {
dispArrayElevat.getItemAt(turn).moveUP();
turn++;
}
else if(
dispArrayElevat.getItemAt(turn).getDirection()==false &&
isCalledBellow(position)==true ) {
dispArrayElevat.getItemAt(turn).moveDown();
turn++;
}
else{
dispArrayElevat.getItemAt(turn).switchDirection();
}
if(turn == dispArrayElevat.length -1) {
turn=0;
}
output.text = "direction:
"+dispArrayElevat.getItemAt(turn).getDirection()+" Position:
"+dispArrayElevat.getItemAt(turn).getPosition();//output
}
]]>
</mx:Script>
<mx:NumericStepper id="floorsNum" maximum="12" minimum="2" x="81"
y="30" width="42"/>
<mx:NumericStepper id="elevatorNum" maximum="8" minimum="1" x="203"
y="30" width="35"/>
<mx:Button id="setRC" x="262" y="30" label="Set"
click="{outPut(event)}"/>
<mx:Label x="32" y="32" text="Floors:" fontSize="13"
fontWeight="bold"/>
<mx:Label x="139" y="31" text="Elevators:" fontWeight="bold"
fontSize="13"/>
<mx:Label x="360" y="57" text="Output:"/>
<mx:Label x="260" y="325" text="Output2:"/>
<mx:TextArea id="output0" text="" x="318" y="318" width="136"
height="22"/>
<mx:TextArea id="output" text="" x="410" y="50" width="228"
height="22"/>
<mx:Button id="b0" x="29" y="462" label="0" click="{call(event)}"/>
<mx:Button id="b1" x="29" y="432" label="1" click="{call(event)}"/>
<mx:Button id="b2" x="29" y="402" label="2" click="{call(event)}"/>
<mx:Button id="b3" x="29" y="372" label="3" click="{call(event)}"/>
<mx:Button id="b4" x="29" y="342" label="4" click="{call(event)}"/>
<mx:Button id="b5" x="29" y="312" label="5" click="{call(event)}"/>
<mx:Button id="b6" x="29" y="282" label="6" click="{call(event)}"/>
<mx:Button id="b7" x="29" y="252" label="7" click="{call(event)}"/>
<mx:Button id="b8" x="29" y="222" label="8" click="{call(event)}"/>
<mx:Button id="b9" x="29" y="192" label="9" click="{call(event)}"/>
<mx:Button id="b10" x="29" y="162" label="10" click="{call(event)}"/>
<mx:Button id="b11" x="29" y="132" label="11" click="{call(event)}"/>
<mx:Button id="b12" x="29" y="102" label="12" click="{call(event)}"/>
</mx:Application>
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
To unsubscribe from this group, send email to
flexdev+unsubscribegooglegroups.com or reply to this email with the words
"REMOVE ME" as the subject.