class TypeSound
package flixel.addons.text
extends Sound › EventDispatcher
import flixel.addons.text.FlxTypeText
@:directlyUsed@:build(openfl.utils._internal.AssetsMacro.embedSound())@:autoBuild(openfl.utils._internal.AssetsMacro.embedSound())@:build(hscript.macros.UsingHandler.build())@:build(hscript.macros.ClassExtendMacro.build())@:sound("assets/sounds/type.ogg")Constructor
Inherited Variables
Defined by Sound
read onlybytesLoaded:Int
Returns the currently available number of bytes in this sound object. This property is usually useful only for externally loaded files.
read onlyid3:ID3Info
Provides access to the metadata that is part of an MP3 file.
MP3 sound files can contain ID3 tags, which provide metadata about the
file. If an MP3 sound that you load using the Sound.load()
method
contains ID3 tags, you can query these properties. Only ID3 tags that
use the UTF-8 character set are supported.
Flash Player 9 and later and AIR support ID3 2.0 tags, specifically
2.3 and 2.4. The following tables list the standard ID3 2.0 tags and
the type of content the tags represent. The Sound.id3
property
provides access to these tags through the format my_sound.id3.COMM
,
my_sound.id3.TIME
, and so on. The first table describes tags that
can be accessed either through the ID3 2.0 property name or the
Haxe property name. The second table describes ID3 tags that
are supported but do not have predefined properties in Haxe.
ID3 2.0 tag | Corresponding Sound class property |
---|---|
COMM | Sound.id3.comment |
TALB | Sound.id3.album |
TCON | Sound.id3.genre |
TIT2 | Sound.id3.songName |
TPE1 | Sound.id3.artist |
TRCK | Sound.id3.track |
TYER | Sound.id3.year |
The following table describes ID3 tags that are supported but do not
have predefined properties in the Sound class. You access them by
calling mySound.id3.TFLT
, mySound.id3.TIME
, and so on. NOTE:
None of these tags are supported in Flash Lite 4.
Property | Description |
---|---|
TFLT | File type |
TIME | Time |
TIT1 | Content group description |
TIT2 | Title/song name/content description |
TIT3 | Subtitle/description refinement |
TKEY | Initial key |
TLAN | Languages |
TLEN | Length |
TMED | Media type |
TOAL | Original album/movie/show title |
TOFN | Original filename |
TOLY | Original lyricists/text writers |
TOPE | Original artists/performers |
TORY | Original release year |
TOWN | File owner/licensee |
TPE1 | Lead performers/soloists |
TPE2 | Band/orchestra/accompaniment |
TPE3 | Conductor/performer refinement |
TPE4 | Interpreted, remixed, or otherwise modified by |
TPOS | Part of a set |
TPUB | Publisher |
TRCK | Track number/position in set |
TRDA | Recording dates |
TRSN | Internet radio station name |
TRSO | Internet radio station owner |
TSIZ | Size |
TSRC | ISRC (international standard recording code) |
TSSE | Software/hardware and settings used for encoding |
TYER | Year |
WXXX | URL link frame |
When using this property, consider the Flash Player security model:
- The
id3
property of a Sound object is always permitted for SWF files that are in the same security sandbox as the sound file. For files in other sandboxes, there are security checks. - When you load the sound, using the
load()
method of the Sound class, you can specify acontext
parameter, which is a SoundLoaderContext object. If you set thecheckPolicyFile
property of the SoundLoaderContext object totrue
, Flash Player checks for a URL policy file on the server from which the sound is loaded. If a policy file exists and permits access from the domain of the loading SWF file, then the file is allowed to access theid3
property of the Sound object; otherwise it is not.
However, in Adobe AIR, content in the application
security sandbox
(content installed with the AIR application) are not restricted by
these security limitations.
For more information related to security, see the Flash Player Developer Center Topic: Security.
read onlyisBuffering:Bool
Returns the buffering state of external MP3 files. If the value is
true
, any playback is currently suspended while the object
waits for more data.
read onlyurl:String
The URL from which this sound was loaded. This property is applicable only
to Sound objects that were loaded using the Sound.load()
method. For Sound objects that are associated with a sound asset from a
SWF file's library, the value of the url
property is
null
.
When you first call Sound.load()
, the url
property initially has a value of null
, because the final URL
is not yet known. The url
property will have a non-null value
as soon as an open
event is dispatched from the Sound
object.
The url
property contains the final, absolute URL from
which a sound was loaded. The value of url
is usually the
same as the value passed to the stream
parameter of
Sound.load()
. However, if you passed a relative URL to
Sound.load()
the value of the url
property
represents the absolute URL. Additionally, if the original URL request is
redirected by an HTTP server, the value of the url
property
reflects the final URL from which the sound file was actually downloaded.
This reporting of an absolute, final URL is equivalent to the behavior of
LoaderInfo.url
.
In some cases, the value of the url
property is truncated;
see the isURLInaccessible
property for details.
Inherited Methods
Defined by Sound
close():Void
Closes the stream, causing any download of data to cease. No data may
be read from the stream after the close()
method is called.
Throws:
IOError | The stream could not be closed, or the stream was not open. |
---|
@:value({ context : null })load(stream:URLRequest, ?context:SoundLoaderContext):Void
Initiates loading of an external MP3 file from the specified URL. If you
provide a valid URLRequest object to the Sound constructor, the
constructor calls Sound.load()
for you. You only need to call
Sound.load()
yourself if you don't pass a valid URLRequest
object to the Sound constructor or you pass a null
value.
Once load()
is called on a Sound object, you can't later
load a different sound file into that Sound object. To load a different
sound file, create a new Sound object.
When using this method, consider the following security model:
- Calling
Sound.load()
is not allowed if the calling file is in the local-with-file-system sandbox and the sound is in a network sandbox. - Access from the local-trusted or local-with-networking sandbox requires permission from a website through a URL policy file.
- You cannot connect to commonly reserved ports. For a complete list of blocked ports, see "Restricting Networking APIs" in the OpenFL Developer's Guide.
- You can prevent a SWF file from using this method by setting the
allowNetworking
parameter of theobject
andembed
tags in the HTML page that contains the SWF content.
In Flash Player 10 and later, if you use a multipart Content-Type (for example "multipart/form-data") that contains an upload (indicated by a "filename" parameter in a "content-disposition" header within the POST body), the POST operation is subject to the security rules applied to uploads:
- The POST operation must be performed in response to a user-initiated action, such as a mouse click or key press.
- If the POST operation is cross-domain (the POST target is not on the same server as the SWF file that is sending the POST request), the target server must provide a URL policy file that permits cross-domain access.
Also, for any multipart Content-Type, the syntax must be valid (according to the RFC2046 standards). If the syntax appears to be invalid, the POST operation is subject to the security rules applied to uploads.
In Adobe AIR, content in the application
security sandbox
(content installed with the AIR application) are not restricted by these
security limitations.
For more information related to security, see the Flash Player Developer Center Topic: Security.
Parameters:
stream | A URL that points to an external MP3 file. |
---|---|
context | An optional SoundLoader context object, which can define the buffer time (the minimum number of milliseconds of MP3 data to hold in the Sound object's buffer) and can specify whether the application should check for a cross-domain policy file prior to loading the sound. |
Throws:
IOError | A network error caused the load to fail. |
---|---|
IOError | The |
SecurityError | Local untrusted files may not communicate with the Internet. You can work around this by reclassifying this file as local-with-networking or trusted. |
SecurityError | You cannot connect to commonly reserved ports. For a complete list of blocked ports, see "Restricting Networking APIs" in the OpenFL Developer's Guide. |
See also:
loadCompressedDataFromByteArray(bytes:ByteArray, bytesLength:Int):Void
Load MP3 sound data from a ByteArray object into a Sound object. The data will be read from the current ByteArray position and will leave the ByteArray position at the end of the specified bytes length once finished. If the MP3 sound data contains ID3 data ID3 events will be dispatched during this function call. This function will throw an exception if the ByteArray object does not contain enough data.
Parameters:
bytes | |
---|---|
null | bytesLength |
@:value({ sampleRate : 44100, stereo : true, format : "float" })loadPCMFromByteArray(bytes:ByteArray, samples:Int, format:String = "float", stereo:Bool = true, sampleRate:Float = 44100):Void
Load PCM 32-bit floating point sound data from a ByteArray object into a Sound object. The data will be read from the current ByteArray position and will leave the ByteArray position at the end of the specified sample length multiplied by either 1 channel or 2 channels if the stereo flag is set once finished.
Starting with Flash Player 11.8, the amount of audio data that can be passed to this function is limited. For SWF versions >= 21, this function throws an exception if the amount of audio data passed into this function is more than 1800 seconds. That is, samples / sampleRate should be less than or equal to 1800. For swf versions < 21, the runtime fails silently if the amount of audio data passed in is more than 12000 seconds. This is provided only for backward compatibility.
This function throws an exception if the ByteArray object does not contain enough data.
Parameters:
bytes | |
---|---|
samples | |
format | |
stereo | |
null | sampleRate |
@:value({ sndTransform : null, loops : 0, startTime : 0.0 })play(startTime:Float = 0.0, loops:Int = 0, ?sndTransform:SoundTransform):SoundChannel
Generates a new SoundChannel object to play back the sound. This method returns a SoundChannel object, which you access to stop the sound and to monitor volume.(To control the volume, panning, and balance, access the SoundTransform object assigned to the sound channel.)
Parameters:
startTime | The initial position in milliseconds at which playback should start. |
---|---|
loops | Defines the number of times a sound loops back to the
|
sndTransform | The initial SoundTransform object assigned to the sound channel. |
Returns:
A SoundChannel object, which you use to control the sound. This
method returns null
if you have no sound card or if
you run out of available sound channels. The maximum number of
sound channels available at once is 32.
See also:
Defined by EventDispatcher
@:value({ useWeakReference : false, priority : 0, useCapture : false })addEventListener<T>(type:EventType<T>, listener:T ‑> Void, useCapture:Bool = false, priority:Int = 0, useWeakReference:Bool = false):Void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event. You can register event listeners on all nodes in the display list for a specific type of event, phase, and priority.
After you successfully register an event listener, you cannot change
its priority through additional calls to addEventListener()
.
To change a listener's priority, you must first call
removeListener()
. Then you can register the listener again
with the new priority level.
Keep in mind that after the listener is registered, subsequent calls to
addEventListener()
with a different type
or
useCapture
value result in the creation of a separate
listener registration. For example, if you first register a listener with
useCapture
set to true
, it listens only during
the capture phase. If you call addEventListener()
again using
the same listener object, but with useCapture
set to
false
, you have two separate listeners: one that listens
during the capture phase and another that listens during the target and
bubbling phases.
You cannot register an event listener for only the target phase or the bubbling phase. Those phases are coupled during registration because bubbling applies only to the ancestors of the target node.
If you no longer need an event listener, remove it by calling
removeEventListener()
, or memory problems could result. Event
listeners are not automatically removed from memory because the garbage
collector does not remove the listener as long as the dispatching object
exists (unless the useWeakReference
parameter is set to
true
).
Copying an EventDispatcher instance does not copy the event listeners attached to it.(If your newly created node needs an event listener, you must attach the listener after creating the node.) However, if you move an EventDispatcher instance, the event listeners attached to it move along with it.
If the event listener is being registered on a node while an event is being processed on this node, the event listener is not triggered during the current phase but can be triggered during a later phase in the event flow, such as the bubbling phase.
If an event listener is removed from a node while an event is being processed on the node, it is still triggered by the current actions. After it is removed, the event listener is never invoked again (unless registered again for future processing).
Parameters:
type | The type of event. |
---|---|
useCapture | Determines whether the listener works in the
capture phase or the target and bubbling phases.
If |
priority | The priority level of the event listener. The priority is designated by a signed 32-bit integer. The higher the number, the higher the priority. All listeners with priority n are processed before listeners of priority n-1. If two or more listeners share the same priority, they are processed in the order in which they were added. The default priority is 0. |
useWeakReference | Determines whether the reference to the listener is strong or weak. A strong reference (the default) prevents your listener from being garbage-collected. A weak reference does not. Class-level member functions are not subject to
garbage collection, so you can set
Weak references are supported on some OpenFL targets only, including html5, cpp, and flash/air. On other targets, this parameter is ignored, and the reference will be strong instead. |
Throws:
ArgumentError | The |
---|
dispatchEvent(event:Event):Bool
Dispatches an event into the event flow. The event target is the
EventDispatcher object upon which the dispatchEvent()
method
is called.
Parameters:
event | The Event object that is dispatched into the event flow. If
the event is being redispatched, a clone of the event is
created automatically. After an event is dispatched, its
|
---|
Returns:
A value of true
if the event was successfully
dispatched. A value of false
indicates failure or
that preventDefault()
was called on the event.
Throws:
Error | The event dispatch recursion limit has been reached. |
---|
hasEventListener(type:String):Bool
Checks whether the EventDispatcher object has any listeners registered for
a specific type of event. This allows you to determine where an
EventDispatcher object has altered handling of an event type in the event
flow hierarchy. To determine whether a specific event type actually
triggers an event listener, use willTrigger()
.
The difference between hasEventListener()
and
willTrigger()
is that hasEventListener()
examines only the object to which it belongs, whereas
willTrigger()
examines the entire event flow for the event
specified by the type
parameter.
When hasEventListener()
is called from a LoaderInfo
object, only the listeners that the caller can access are considered.
Parameters:
type | The type of event. |
---|
Returns:
@:value({ useCapture : false })removeEventListener<T>(type:EventType<T>, listener:T ‑> Void, useCapture:Bool = false):Void
Removes a listener from the EventDispatcher object. If there is no matching listener registered with the EventDispatcher object, a call to this method has no effect.
Parameters:
type | The type of event. |
---|---|
useCapture | Specifies whether the listener was registered for the
capture phase or the target and bubbling phases. If the
listener was registered for both the capture phase and
the target and bubbling phases, two calls to
|
willTrigger(type:String):Bool
Checks whether an event listener is registered with this EventDispatcher
object or any of its ancestors for the specified event type. This method
returns true
if an event listener is triggered during any
phase of the event flow when an event of the specified type is dispatched
to this EventDispatcher object or any of its descendants.
The difference between the hasEventListener()
and the
willTrigger()
methods is that hasEventListener()
examines only the object to which it belongs, whereas the
willTrigger()
method examines the entire event flow for the
event specified by the type
parameter.
When willTrigger()
is called from a LoaderInfo object,
only the listeners that the caller can access are considered.
Parameters:
type | The type of event. |
---|
Returns: