PDA

Просмотр полной версии : Отловить событие при Fullscreen


Skriv
06.12.2007, 11:10
Привет!
Подскажите в чем засада:

есть класс TestMove

package {
import flash.display.MovieClip;
import flash.display.StageDisplayState;
import flash.events.*;

public class TestMove extends MovieClip {
public function TestMove() {
this.alpha = 0.5;
this.x = 300;
this.y = 300;
this.addEventListener(????, doFull);
}
private function doFull(????) {
this.rotation = 30;
}
}
}



и есть главный класс:

package {
import flash.display.Sprite;
import flash.display.StageScaleMode;
import flash.display.StageDisplayState;
import flash.events.Event;
import flash.events.MouseEvent;
import TestMove;

public class StageExample extends Sprite {

private var serg:TestMove;

public function StageExample() {
var serg:TestMove = new TestMove;
addChild(serg);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(MouseEvent.CLICK, doCl);

}
private function doCl(e:MouseEvent) {
stage.displayState = StageDisplayState.FULL_SCREEN;
}
}
}



Требуется отловить событие FULLSCREEN в TestMove !!!
Фуллскрин работает, а событие не отлавливается.
В чем засада??

baron27
06.12.2007, 12:33
addEventListener(FullScreenEvent.FULL_SCREEN, onFullScreenEvent);

Skriv
06.12.2007, 12:42
Неа, не хочет...



public class TestMove extends MovieClip {
public function TestMove() {
this.alpha = 0.5;
this.x = 300;
this.y = 300;
this.addEventListener(FullScreenEvent.FULL_SCREEN, onFullScreenEvent);
}
private function onFullScreenEvent(e:FullScreenEvent) {
this.rotation = 30;
}

}

baron27
06.12.2007, 12:50
а что ты делаеш то? это событие срабатывает при вызове
stage.displayState = StageDisplayState.FULL_SCREEN;
ты его вызываешь?

Skriv
06.12.2007, 12:56
Ну я его вызвал.. оно отработалось все нормально. Fullscreen работает.

Но мне надо чтоб когда фуллскрин, мовик
this.rotation = 30;

а он не поворачивается.. !!!

baron27
06.12.2007, 13:06
лень повторять пример. попробуй вызывать фулскрин из основного класса, там же подписываться на событие и оттуда вызывать serg.rotation = 30;

Skriv
06.12.2007, 13:27
нет не хочет поварачиваться

baron27
06.12.2007, 13:56
public function StageExample() {
serg = new TestMove;
addChild(serg);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(MouseEvent.CLICK, doCl);

}

ты задал private переменную, а создал локальную. var не нужен.

Skriv
06.12.2007, 14:22
Да все отлично из главного класса.. работает, но как достучаться до не из главного класса?


public class TestMove extends MovieClip {
public function TestMove() {
this.alpha = 0.5;
this.x = 300;
this.y = 300;
this.addEventListener(FullScreenEvent.FULL_SCREEN, onFullScreenEvent);
}
private function onFullScreenEvent(e:FullScreenEvent) {
this.rotation = 30;
}

}

baron27
06.12.2007, 14:30
что ты хочешь сделать?

Skriv
06.12.2007, 14:33
я хочу, чтоб this.rotation = 30; было прописано в классе Мувика.. а не в главном классе

baron27
06.12.2007, 14:58
создай public функцию rotate в классе мувика, в которой и вызывай вращение. Т.о. будешь писать serg.rotate();
или я что-то не понимаю?

Skriv
06.12.2007, 15:23
а можно ли как то без дополнительных функций.. а через слушателя..??