Voor school moet ik iets maken in flash, ik heb hiervoor gekozen een soort mp3speler te maken.
Eerst had ik het script in de timeline, alles werkte.. maar nu moest ik van de docent het script exporteren. Na al heel wat errors te hebben opgelost blijf ik bij deze twee steken:
Line 74 1120: Access of undefined property onNext.
Aangezien ik erg weinig verstand van flash heb lukt het me maar niet om dit op te lossen. Ik weet dat ik de property onNext ergens moet declareren fzo, maar heb geen idee hoe ik dat moet doen.
Eerst had ik het script in de timeline, alles werkte.. maar nu moest ik van de docent het script exporteren. Na al heel wat errors te hebben opgelost blijf ik bij deze twee steken:
Line 74 1120: Access of undefined property onNext.
Aangezien ik erg weinig verstand van flash heb lukt het me maar niet om dit op te lossen. Ik weet dat ik de property onNext ergens moet declareren fzo, maar heb geen idee hoe ik dat moet doen.
Code:
package
{
import flash.display.MovieClip;
import fl.controls.SliderDirection;
import flash.events.*;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.media.SoundMixer;
import flash.geom.Rectangle;
public class Mediaplayer2 extends MovieClip
{
public var my_songs:XMLList;
public var my_total:Number;
public var my_sound:Sound;
public var my_channel:SoundChannel;
public var current_song:Number = 0;
public var song_position:Number;
public var song_paused:Boolean;
public var myXMLLoader:URLLoader = new URLLoader();
//volume
public var soundVol:SoundTransform = new SoundTransform();
public var soundVolume:Number = 1;
// Code voor de volume slider
public var trackBounds:Rectangle = track_mc.getBounds(track_mc);
public var xPos:Number = trackBounds.x;
public var yPos:Number = trackBounds.y;
public var widthPos:Number = trackBounds.width-track_mc.slider_mc.width;
public var heightPos:Number = 0;
public var bounds:Rectangle = new Rectangle(xPos,yPos,widthPos,heightPos);
public function GetPlaylist(e:Event):void
{
myXMLLoader.load(new URLRequest("playlist.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
}
public function processXML(e:Event):void
{
var myXML:XML = new XML(e.target.data);
my_songs = myXML.SONG;
my_total = my_songs.length();
//playSong(0);
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader = null;
}
function playSong(mySong:Number):void
{
var myTitle = my_songs[mySong].@TITLE;
var myArtist = my_songs[mySong].@ARTIST;
var myURL = my_songs[mySong].@URL;
title_txt.text = myTitle;
artist_txt.text = myArtist;
if (my_channel) function onNext (e:Event):void
{
my_channel.stop();
my_channel.removeEventListener(Event.SOUND_COMPLETE, onNext);
}
my_sound = new Sound();
my_sound.load(new URLRequest(myURL));
my_channel = my_sound.play();
//error zit hier:
my_channel.addEventListener(Event.SOUND_COMPLETE, onNext);
}
public function NextButton(e:Event):void
{
next_btn.addEventListener(MouseEvent.CLICK, function(e:Event):void
{
current_song++;
if (current_song>=my_total)
{
current_song=0;
}
playSong(current_song);
});
}
public function PreviousButton(e:Event):void
{
prev_btn.addEventListener(MouseEvent.CLICK, function(e:Event):void
{
current_song--;
if (current_song<0)
{
current_song = my_total-1;
}
playSong(current_song);
});
}
public function PauseButton(e:Event):void
{
pause_btn.addEventListener(MouseEvent.CLICK, function(e:Event):void
{
if (my_channel)
{
song_position = my_channel.position;
my_channel.stop();
song_paused=true;
}
});
}
public function PlayButton(e:Event):void
{
play_btn.addEventListener(MouseEvent.CLICK, function(e:Event):void
{
if (song_paused)
{
my_channel = my_sound.play(song_position);
song_paused=false;
}
else if (!my_channel)
{
playSong(current_song);
}
});
}
public function Track(e:Event):void
{
track_mc.slider_mc.x = widthPos;
track_mc.mouseEnabled = false;
track_mc.slider_mc.buttonMode = true;
track_mc.slider_mc.addEventListener(MouseEvent.MOUSE_DOWN,dragSlider);
stage.addEventListener(MouseEvent.MOUSE_UP,stopSlider);
}
public function dragSlider(event:MouseEvent):void
{
event.target.startDrag(false,bounds);
addEventListener(Event.ENTER_FRAME,setVolume);
}
public function stopSlider(event:MouseEvent):void
{
track_mc.slider_mc.stopDrag();
removeEventListener(Event.ENTER_FRAME, setVolume);
}
public function setVolume(event:Event):void
{
soundVolume = track_mc.slider_mc.x/widthPos;
soundVol.volume = soundVolume;
SoundMixer.soundTransform = soundVol;
}
}
}