Hey… im kinda new to As3… (Did some as2 before)
anyway… Starting the OOP way of learning as3.
The question:
I cannot understand how i get a function in one AS file to interact with another AS file in the same (folder). I understand that the siblings of one parent does not talk together. They each talk to the parent but not eachother!?(or?)
Here is the deal :
1:the
[CENTER]"“KnapperBakgrunn.as”"[/CENTER] file is the parent of:
[CENTER]“skyer.as” and “Knapper.as”[/CENTER]
I need the Knapper.as to be able to send commands to the skyer.as. I think its called scoping(not sure) but i dont know where or how to put it in the code.
Here is the code for KnapperBakgrunn.as
package
{
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import bakgrunn;
import Knapper;
import skyer;
import bgImage;
public class knapperBakgrunn extends MovieClip
{
private var numberOfButtons:int = 5;
private var offsetX:int = (stage.stageWidth) /numberOfButtons;
private var offsetY:int = 50;
private var padding:int = 25;
public var clouds:skyer;
public var button:Knapper;
public function knapperBakgrunn()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
//Bakgrunns bilde
var bgI:bgImage = new bgImage();
addChild(bgI);
setChildIndex(bgI, 0);
//Skyer 1
var clouds:skyer = new skyer();
addChild(clouds);
trace(clouds.x)
//Bakgrunnbanner
var bg:bakgrunn = new bakgrunn();
addChild(bg);
for (var i:int=0; i<numberOfButtons; i++)
{
var button:Knapper = new Knapper("knapp" + (i+1));
button.x = offsetX;
button.y = offsetY;
button.addEventListener(MouseEvent.CLICK, onButtonClicked);
addChild(button);
offsetX += button.width + padding;
}
}
private function onButtonClicked(e:MouseEvent=null):void
{
var button:Knapper = e.target as Knapper;
trace("onButtonClicked: " + button.getLabel());
}
}
}
The Code for Knapper.as
package {
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.text.TextField;
import caurina.transitions.Tweener;
import skyer;
public class Knapper extends MovieClip {
public var label:TextField;
public function Knapper(l:String="Default") {
label.text = l;
buttonMode = true;
mouseChildren = false;
addEventListener(MouseEvent.ROLL_OVER, onRollOver);
addEventListener(MouseEvent.ROLL_OUT, onRollOut);
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
public function setLabel(l:String="Default"):void {
label.text = l;
}
public function getLabel():String {
return label.text;
}
public function onRollOver(e:MouseEvent=null):void {
alpha = 0.75;
}
public function onRollOut(e:MouseEvent=null):void {
alpha = 1;
}
public function onMouseDown(e:MouseEvent=null):void {
Tweener.addTween(skyer2,{x:200, time:2});
alpha = 0.5;
}
public function onMouseUp(e:MouseEvent=null):void {
alpha = 0.75;
}
}
}
And the code for skyer.as
package
{
import flash.events.Event;
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.MouseEvent;
import caurina.transitions.Tweener;
import Knapper;
public class skyer extends MovieClip
{
public function skyer()
{
//Skyer 2
var clouds2:skyer2 = new skyer2();
//clouds2.x = 0;
addChild(clouds2);
//Skyer 3
var clouds3:skyer3 = new skyer3();
addChild(clouds3);
//Skyer 4
var clouds4:skyer4 = new skyer4();
addChild(clouds4);
//Skyer 5
var clouds5:skyer5 = new skyer5();
addChild(clouds5);
//Skyer 6
var clouds6:skyer6 = new skyer6();
addChild(clouds6);
}
private function onAddedToStage(e:Event=null):void
}
}
I hope i described it correctly. Thanks for any help. ill provide all the information i can on this.