Salve a tutti , ho provato ad instanziare una classe dentro un'altra all'interno dello stesso package, le due classi sono su due file .as diversi nella stessa directory.
Quando istanzio la classe BgControls dentro la classe Game il compiler mi da questo errore:
1046: Type was not found or was not a compile-time constant: Event.
Se la classe BgControls al posto di essere una classe esterna è un metodo della classe Game tutto funziona ma io preferirei lavorare con varie classi separate.
Non sono esperto di actionscript e questo passaggio da as2 ad as3 non mi risulta del tutto semplice.
Qui di seguito posto il codice (premetto che la classe Background è contenuta nella libreria dello stage):
nome del file Game.as:
package games {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import fl.transitions.*;
import flash.net.*;
import flash.text.*;
import flash.ui.*;
import flash.utils.*;
public class Game extends MovieClip{
public function Game():void{
var backz = new BgControls;
}
}
}
----------------------------------------------------------
nome file BgControls.as:
package games {
internal class BgControls {
var bg:Background = new Background(); // classe contenuta nellla libreria dello stage
// init
public function BgControls():void{
addChild(bg);
bg.x=0;
bg.y=-550;
bg.addEventListener(Event.ENTER_FRAME, bgMove);
}
// background move
public function bgMove(event:Event):void{
if (event.target.y<0)
event.target.y+=5;
else
event.target.y=-1100;
}
}
}

Rispondi quotando