Remove child werkt niet

Pagina: 1
Acties:
  • 148 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • MineMine
  • Registratie: November 2005
  • Laatst online: 29-08 00:40
Hallo mensen,

Ik zit met een probleem en dit moet met spoed verholpen zijn.
Ik wil graag een stuk in mijn flash verwijderen. Echter negeert hij het.
onderaan zie je meer uitleg met de debug die al gedaan was, maar niet meegepost was.

Het scriptje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public function runWait () : void{
Denken.visible = true;
var v:simpleFlvWait = new simpleFlvWait();
v.playMyFlv('include/wait.flv', true, whichsound);
v.addEventListener("LOOKFORLOOP", LoppyLot);

Denken.addChild(v);

}

private function LoppyLot(e :Event) : void {

trace ( "Bij controle: De button is ingedrukt: " + btn_pressed );

if ( btn_pressed == true ) {
trace ( "De button is ingedrukt: " + btn_pressed + " en gevonden" );

Denken.removeChild(e.target as simpleFlvWait);
trace ( "RemoveChild hier." );

trace ( "De button was: " + btn_pressed );
btn_pressed = false;
trace ( "De button is nu: " + btn_pressed );
}
Het bestand simpleFlvWait:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package nl.avans.cmd.game {
import flash.display.Sprite;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.media.Video;
import flash.text.TextFieldAutoSize;
import flash.text.TextField;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.events.NetStatusEvent;
import flash.utils.Timer;

public class simpleFlvWait extends Sprite{
private var _video:Video;
private var _stream:NetStream;
private var _playbackTime:TextField;
private var _duration:uint;
private var _timer:Timer;
private var _loop:Boolean = false;
private var _file:String;
private var _soundnumber: uint;

public function simpleFlvWait(){
_duration = 0;

_playbackTime = new TextField();
_playbackTime.autoSize = TextFieldAutoSize.LEFT;
_playbackTime.y = 20;
_playbackTime.x = 20;
_playbackTime.text = "Buffering …";

_timer = new Timer(1000);
_timer.addEventListener(TimerEvent.TIMER, onTimer);
_timer.start();
}

public function playMyFlv(flvUrl:String, loop:Boolean, soundint: uint = 0) : void {
_video = new Video();

if (soundint > 0 ) {
_soundnumber = soundint;
}

_loop = loop;

_file = flvUrl;

var connection:NetConnection = new NetConnection();
connection.connect(null);

_stream = new NetStream(connection);
_stream.play(flvUrl);


var Client:Object = new Object();
Client.onMetaData = onMetaData;
_stream.client = Client;
_video.attachNetStream(_stream);

_stream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);

addChild(_video);
addChild(_playbackTime);
}

private function onMetaData(data:Object) : void {
_duration = data.duration;
}

private function onNetStatus(e:NetStatusEvent) : void{
//_video.width = _video.videoWidth;
//_video.height = _video.videoHeight;
_video.width = 720;
_video.height = 576;
var info: Object = e.info;

if ( _loop == true ) {
trace (' Still looping: ' + _soundnumber );
dispatchEvent(new Event("LOOKFORLOOP"));
}
if(info.code == "NetStream.Play.Stop"){
//next movie
if ( _loop == false )
{
// no loop
trace("End movie: " + _file);
dispatchEvent(new Event("NEXTMOVIE"));
}
else {
trace ('loop the movie: ' + _soundnumber);


removeChild(_video);
removeChild(_playbackTime);
playMyFlv(_file, true);
}
}
if(info.code == "NetStream.Play.Start"){
trace("START: " + _file);
}

// for(var i: * in info){
// trace(i);
// trace(info[i]);
// }

}

private function onTimer(t:TimerEvent) :void{
if( _duration > 0 && _stream.time > 0 ){
_playbackTime.text = Math.round(_stream.time) + " / " + Math.round(_duration);
}

}

public function destroy () : void {
parent.removeChild(this);
}
}
}
Hij laad het scriptje goed.
Hij roept runWait aan, waardoor het loop filmpje begint te lopen.
Als het filmpje naar het einde komt, dan wordt het opnieuw ingeladen.

Wanneer je op een knop drukt, wordt btn_pressed (die altijd false was) true.
Bij true moet hij het filmpje afkappen en zet hij het weer op false.
De knoppen reageren en gooien een nieuwe film in.
Echter het keuze filmpje verdwijnt niet en blijft op de achtergrond loopen.
Ik weet niet wat er mis is. Jullie misschien.

De trace:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
START: include/wait.flv
 Still looping: 0
Bij controle: De button is ingedrukt: false
De button is ingedrukt: true
START: include/1-goed.flv
 Still looping: 0
Bij controle: De button is ingedrukt: true
De button is ingedrukt: true en gevonden
RemoveChild hier.
De button was: true
De button is nu: false
 Still looping: 0
Bij controle: De button is ingedrukt: false


Zoals je ziet zegt hij nog steeds still looping na verwijderen. Hij draait ook door.

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 19:46

MueR

Admin Tweakers Discord

is niet lief

En deze gaat wederom op slot. Post alleen relevante code, niet zomaar complete lappen script dumpen. Dit is nog altijd een quickfix.

Anyone who gets in between me and my morning coffee should be insecure.


Dit topic is gesloten.