Groups | Blog | Home
all groups > flash actionscript > november 2006 >

flash actionscript : FLVPlayback Empty Buffer


knucklenutz
11/28/2006 10:59:20 PM
Hello,

Is it possible to listen for and empty or full buffer in the FLVPlayback
component? I know this can be done with NetStream.Buffer.Empty and
NetStream.Buffer.Full however I am wondering if there is similar function for
the FLVPlayback component. I cannot seem to find anything documented. Only
stateChange is documented and I am not sure this can acheive the same effect as
the NetStream.Buffer.Empty.

Thanks.
arunbe
11/29/2006 12:00:00 AM
Try to look, what kind of netStream is using the Component.
You can get all the variables and Mcs used in the component by tracing like
this
for(I in FLVPlayback_cmp)
{
trace(i)
}
So, if you got the netStream name used in the FLV COmponent you can trace out
the states....
knucklenutz
11/29/2006 5:56:10 PM
Thank you for the advice,

I did what you recommeneded but can't identify any property that would be
considered a netStream object:

flv_container.flv._seekBar = undefined
flv_container.flv._cuePoints = null
flv_container.flv._cpMgr = [object Object]
flv_container.flv._vpState = [object Object]
flv_container.flv._vp = _level0.flv_container.flv.0
flv_container.flv._topVP = 0
flv_container.flv._visibleVP = 0
flv_container.flv._activeVP = 0
flv_container.flv._uiMgr = [object Object]
flv_container.flv._firstStreamShown = true
flv_container.flv._firstStreamReady = true
flv_container.flv._preSeekTime = -1
flv_container.flv._scaleY = 100
flv_container.flv._scaleX = 100
flv_container.flv._origWidth = 400
flv_container.flv._prevWidth = 400
flv_container.flv.__width = 400
flv_container.flv._origHeight = 320
flv_container.flv._prevHeight = 320
flv_container.flv.__height = 320
flv_container.flv._bufferingBarHides = false
flv_container.flv._transform = null
flv_container.flv._progressInterval = 250
flv_container.flv._playheadUpdateInterval = 250
flv_container.flv._seekToPrevOffset = 1
flv_container.flv._idleTimeout = 300000
flv_container.flv.dispatchQueue = [type Function]
flv_container.flv.dispatchEvent = [type Function]
flv_container.flv.removeEventListener = [type Function]
flv_container.flv.addEventListener = [type Function]
flv_container.flv._volume = 100
flv_container.flv._totalTime = 0
flv_container.flv._skinAutoHide = false
flv_container.flv._skin =
flv_container.flv._aspectRatio = true
flv_container.flv._isLive = false
flv_container.flv._contentPath =
flv_container.flv._bufferTime = 3
flv_container.flv._autoSize = false
flv_container.flv._autoRewind = true
flv_container.flv._autoPlay = false
flv_container.flv.0 = _level0.flv_container.flv.0
flv_container.flv.boundingBox_mc = _level0.flv_container.flv.boundingBox_mc
danielholmes85
12/6/2006 11:49:25 PM
it may be in the:

flv_container.flv._vp, that should be the video player that the flvplayback
is "wrapping". You can actually look into the source code of the flvplayback to
find it also. To find it search your hard drive for "FLVPlayback.as", then
trace the code in there to find a netstream. For me it was in C:\Program
Files\Macromedia\Flash 8\en\First Run\Classes\mx\video\FLVPlayback.as.

Remember also depending if you are strict typing or not you will need to
access it like so:

flv_container.flv["_vp"]

knucklenutz
12/8/2006 6:50:07 PM
danielholmes85
12/10/2006 10:26:05 PM
[q][i]Originally posted by: [b][b]knucklenutz[/b][/b][/i]
it seems to be a private variable. I could potentially change it but don't
think it is worth it to foul anything up.[/q]

Nah definately don't change the flvplayback file (or wherever it is), but you
can still access and use it using array notation. That's what i meant by:

flv_container.flv["_vp"]

instead of using ._ns or whatever it is (which would give you an error because
it is private), use ["_ns"] instead. If you are just using events it won't mess
anything up. I probably wouldn't recommend setting variables or calling
modifier functions in it though.

Something which kind of shows how it works is if you do this line in a blank
fla:

var str: String = _root.getDepth(); //get an error

OR

var str: String = _root["getDepth"](); // no error
AddThis Social Bookmark Button