--- /dev/null
+//■ABC File MinorVersion:16 , MajorVersion:46
+
+//INT cnt=143
+//UINT cnt=1
+//DOUBLE cnt=32
+//STRING cnt=6667
+//NAMESPACES cnt=1166
+//NAMESPACE_SETS cnt=279
+//MULTINAMES cnt=7959
+//Methods cnt=5427
+//METADATA cnt=0
+//INTERFACE cnt=465
+//CLASS cnt=465
+//SCRIPT cnt=396
+
+//■script000■
+
+package jp.nicovideo.ext{
+
+ import jp.nicovideo.ext.config.IThumbConfig
+ import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
+
+ //■class(instance)_index:0
+ public interface IThumbPlayer
+ {
+ //static constructor
+ public static function IThumbPlayer$cinit()
+ { //MethodID:0, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function setThumbWatchVars(hug1:IThumbConfig, hug2:NicoFlashVars):void; //MethodID:1, dispID:0
+
+ function get initialized():Boolean; //MethodID:2, dispID:0
+
+ function playThumbPlayer():void; //MethodID:3, dispID:0
+
+ function pauseThumbPlayer():void; //MethodID:4, dispID:0
+
+ function set onChangedVideoStatus(hug1:Function):void; //MethodID:5, dispID:0
+
+ function get videoPlayerStatus():String; //MethodID:6, dispID:0
+
+ //constructor
+ public function IThumbPlayer(); //MethodID:7, dispID:0
+ }
+}
+
+//■script001■
+
+package jp.nicovideo.nicoplayer{
+
+ import flash.display.DisplayObject
+ import flash.display.MovieClip
+ import flash.display.Sprite
+ import flash.display.StageAlign
+ import flash.display.StageScaleMode
+ import flash.errors.IOError
+ import flash.errors.IllegalOperationError
+ import flash.events.Event
+ import flash.events.TimerEvent
+ import flash.net.URLRequest
+ import flash.net.URLVariables
+ import flash.net.navigateToURL
+ import flash.system.Security
+ import flash.ui.ContextMenu
+ import flash.utils.Timer
+ import jp.nicovideo.ext.config.IThumbConfig
+ import jp.nicovideo.hiroba.HirobaConnectorClient
+ import jp.nicovideo.hiroba.IHirobaConnector
+ import jp.nicovideo.hiroba.events.HirobaErrorEvent
+ import jp.nicovideo.hiroba.events.HirobaEvent
+ import jp.nicovideo.hiroba.events.HirobaEventReferer
+ import jp.nicovideo.hiroba.models.HirobaMessageServerInfo
+ import jp.nicovideo.marquee.INicoMarqueePlayer
+ import jp.nicovideo.marquee.MarqueeClient
+ import jp.nicovideo.nicoplayer.app.ApplibarLoader
+ import jp.nicovideo.nicoplayer.config.DebugMode
+ import jp.nicovideo.nicoplayer.config.DefaultInitializer
+ import jp.nicovideo.nicoplayer.config.NicoConfig
+ import jp.nicovideo.nicoplayer.config.getDebugMode
+ import jp.nicovideo.nicoplayer.external.ExternalClient
+ import jp.nicovideo.nicoplayer.hiroba.HirobaPlayer
+ import jp.nicovideo.nicoplayer.hiroba.events.HirobaErrorStatus
+ import jp.nicovideo.nicoplayer.models.IPlayerConfig
+ import jp.nicovideo.nicoplayer.models.MyList
+ import jp.nicovideo.nicoplayer.models.PlayDelay
+ import jp.nicovideo.nicoplayer.models.PlayerConfig
+ import jp.nicovideo.nicoplayer.models.PlayerInfo
+ import jp.nicovideo.nicoplayer.models.PlayerVersion
+ import jp.nicovideo.nicoplayer.models.RelatedVideoList
+ import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
+ import jp.nicovideo.nicoplayer.models.StartVposConfig
+ import jp.nicovideo.nicoplayer.models.SystemMessage
+ import jp.nicovideo.nicoplayer.models.VideoDetail
+ import jp.nicovideo.nicoplayer.models.VideoLoadGuardian
+ import jp.nicovideo.nicoplayer.models.api.BGMVideoInfo
+ import jp.nicovideo.nicoplayer.models.api.GetBGM
+ import jp.nicovideo.nicoplayer.models.api.GetChecklist
+ import jp.nicovideo.nicoplayer.models.api.GetFLV
+ import jp.nicovideo.nicoplayer.models.api.GetRelation
+ import jp.nicovideo.nicoplayer.models.api.GetSponsorInfo
+ import jp.nicovideo.nicoplayer.models.api.ICapturableVideoContainer
+ import jp.nicovideo.nicoplayer.models.api.IKeygen
+ import jp.nicovideo.nicoplayer.models.api.InitializeInfo
+ import jp.nicovideo.nicoplayer.models.api.Jumper
+ import jp.nicovideo.nicoplayer.models.api.Keygen
+ import jp.nicovideo.nicoplayer.models.api.RegisterBGM
+ import jp.nicovideo.nicoplayer.models.comment.CommentConstants
+ import jp.nicovideo.nicoplayer.models.comment.CommentList
+ import jp.nicovideo.nicoplayer.models.comment.CommentListPublicStatus
+ import jp.nicovideo.nicoplayer.models.comment.CommentPoolContainer
+ import jp.nicovideo.nicoplayer.models.comment.CommentRouter
+ import jp.nicovideo.nicoplayer.models.comment.CommentStorageEvents
+ import jp.nicovideo.nicoplayer.models.comment.ICommentList
+ import jp.nicovideo.nicoplayer.models.comment.LocalCommentList
+ import jp.nicovideo.nicoplayer.models.comment.OwnerCommentList
+ import jp.nicovideo.nicoplayer.models.comment.TimeMachine
+ import jp.nicovideo.nicoplayer.models.filter.ChannelReplacer
+ import jp.nicovideo.nicoplayer.models.filter.DeleteFilter
+ import jp.nicovideo.nicoplayer.models.filter.LockedComment
+ import jp.nicovideo.nicoplayer.models.filter.NGComment
+ import jp.nicovideo.nicoplayer.models.filter.NGInfo
+ import jp.nicovideo.nicoplayer.models.filter.NGResponseConstants
+ import jp.nicovideo.nicoplayer.models.filter.NGType
+ import jp.nicovideo.nicoplayer.models.filter.Replacer
+ import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
+ import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVarsInitializer
+ import jp.nicovideo.nicoplayer.models.flashvars.PlaylistFlashVars
+ import jp.nicovideo.nicoplayer.models.log.LogManager
+ import jp.nicovideo.nicoplayer.models.mylist.DefaultMylistAppender
+ import jp.nicovideo.nicoplayer.models.playlist.Playlist
+ import jp.nicovideo.nicoplayer.models.playlist.PlaylistController
+ import jp.nicovideo.nicoplayer.models.playlist.PlaylistErrorManager
+ import jp.nicovideo.nicoplayer.models.video.ChildVideoName
+ import jp.nicovideo.nicoplayer.models.video.FLVVideo
+ import jp.nicovideo.nicoplayer.models.video.IVideo
+ import jp.nicovideo.nicoplayer.models.video.SWFVideo
+ import jp.nicovideo.nicoplayer.models.video.VideoController
+ import jp.nicovideo.nicoplayer.models.video.VideoLoadWatcher
+ import jp.nicovideo.nicoplayer.models.video.VideoType
+ import jp.nicovideo.nicoplayer.models.video.VideoWrapper
+ import jp.nicovideo.nicoplayer.models.video.VposWatcher
+ import jp.nicovideo.nicoplayer.models.video.userSponsor.IUserSponsorVideo
+ import jp.nicovideo.nicoplayer.models.video.userSponsor.UserSponsorVideoClient
+ import jp.nicovideo.nicoplayer.plugin.NicoPluginClient
+ import jp.nicovideo.nicoplayer.remocon.RemoconClient
+ import jp.nicovideo.nicoplayer.remocon.RemoconFullScreenKeeper
+ import jp.nicovideo.nicoplayer.remocon.RemoconNotifier
+ import jp.nicovideo.nicoplayer.remocon.RemoconPlayerStateObserver
+ import jp.nicovideo.nicoplayer.remocon.RemoconReceiver
+ import jp.nicovideo.nicoplayer.remocon.RemoconState
+ import jp.nicovideo.nicoplayer.remocon.method.defineRemoconMethods
+ import jp.nicovideo.nicoplayer.storages.CommentStorage
+ import jp.nicovideo.nicoplayer.storages.CommentStorageError
+ import jp.nicovideo.nicoplayer.storages.ICommentStorage
+ import jp.nicovideo.nicoplayer.storages.MessageServerClient
+ import jp.nicovideo.nicoplayer.tpls.INicoViewController
+ import jp.nicovideo.nicoplayer.tpls.NicoViewControllerClient
+ import jp.nicovideo.nicoplayer.tpls.shutter.AudioShutterConstants
+ import jp.nicovideo.nicoplayer.tpls.shutter.CommentShutterConstants
+ import jp.nicovideo.nicoplayer.tpls.shutter.ControllerShutter
+ import jp.nicovideo.nicoplayer.videoender.IVideoenderTesterConfig
+ import jp.nicovideo.nicoplayer.videoender.VideoenderTesterConfig
+ import jp.nicovideo.nicoplayer.views.JumpMessageLayer
+ import jp.nicovideo.nicoplayer.views.VideoLayerConstants
+ import jp.nicovideo.nicoplayer.views.VideoLayerManager
+ import jp.nicovideo.nicoplayer.views.comment.CommentLayer
+ import jp.nicovideo.nicoplayer.views.comment.CommentLayerID
+ import jp.nicovideo.nicoplayer.views.comment.CommentLayerView
+ import jp.nicovideo.nicoplayer.views.comment.CommentViewTransformer
+ import jp.nicovideo.nicoplayer.views.framerate.FrameRateBooster
+ import jp.nicovideo.nicoscript.INicoSPlayer
+ import jp.nicovideo.nicoscript.NicoSClient
+ import jp.nicovideo.nicoscript.NicoSConstants
+ import jp.nicovideo.nicoscript.macro.parsers.IMacroParserResult
+ import jp.nicovideo.util.CrossSharedObject
+ import jp.nicovideo.util.HTTPUtils
+ import jp.nicovideo.util.ObjectUtils
+ import jp.nicovideo.util.StringUtils
+ import jp.nicovideo.util.api.APICacheProxy
+ import jp.nicovideo.util.events.EventBarrier
+ import jp.nicovideo.util.events.EventChunk
+ import jp.nicovideo.util.events.EventPipe
+ import jp.nicovideo.util.events.EventResult
+ import jp.nicovideo.util.events.EventSequence
+ import jp.nicovideo.util.events.event_sender
+ import jp.nicovideo.util.external.JSConnector
+ import jp.nicovideo.util.loka.Loka
+ import jp.nicovideo.util.loka.__MSG__
+
+ //■class(instance)_index:1
+ public class NicoPlayer extends Sprite implements IThumbPlayer
+ {
+ //static constructor
+ public static function NicoPlayer$cinit()
+ { //MethodID:9, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 54
+ DEBUG_MODE = getDebugMode();
+ DEBUG_MODE_EXT = ((DEBUG_MODE == DebugMode.NON) ? DebugMode.NON : DebugMode.EXTDEV);
+ }
+
+ //static variables/etc.
+ private static const DEBUG_MODE:uint; //slotID:1
+ private static const DEBUG_MODE_EXT:uint; //slotID:2
+
+ //constructor
+ public function NicoPlayer()
+ { //MethodID:10, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 137
+ this.commentListContainer = {};
+ this.systemMessage = SystemMessage.instance;
+ this.nicoViewControllerClient = new NicoViewControllerClient();
+ this.pluginClient = new NicoPluginClient();
+ this._playlistSequences = [];
+
+ super();
+ Security.allowDomain("*");
+
+ this.isThumbWatchMode = (loaderInfo.parameters[this._IS_THUMBWATCH_PARAM] == "1");
+ this.configure = new NicoConfig();
+ Loka.instance.debug = true;
+
+ if(this.isThumbWatchMode) return;
+
+ if(loaderInfo.parameters[this._PLAYLIST_ID]){
+ this.initializePlaylistPlayer();
+
+ return;
+ }
+
+ this.initializeWatchPlayer();
+ }
+
+ //variables/etc.
+ private const _IS_THUMBWATCH_PARAM:String = "thumbWatch"; //slotID:0
+ private const _PLAYLIST_ID:String = "playlistId"; //slotID:0
+ private var getFLV:GetFLV; //slotID:0
+ private var flashVars:NicoFlashVars; //slotID:0
+ private var playlistFlashVars:PlaylistFlashVars; //slotID:0
+ private var playerConfig:IPlayerConfig; //slotID:0
+ private var video:VideoWrapper; //slotID:0
+ private var commentListContainer:Object; //slotID:0
+ private var mainCommentListName:String = "commentlist:main"; //slotID:0
+ private var commentList:CommentList; //slotID:0
+ private var ownerCommentList:OwnerCommentList; //slotID:0
+ private var privateCommentList:CommentList; //slotID:0
+ private var nicoSCommentList:CommentList; //slotID:0
+ private var localCommentList:LocalCommentList; //slotID:0
+ private var systemMessage:SystemMessage; //slotID:0
+ private var relatedList:RelatedVideoList; //slotID:0
+ private var ngComment:NGComment; //slotID:0
+ private var lockedComment:LockedComment; //slotID:0
+ private var replacer:Replacer; //slotID:0
+ private var playerVersion:PlayerVersion; //slotID:0
+ private var playerInfo:PlayerInfo; //slotID:0
+ private var timeMachine:TimeMachine; //slotID:0
+ private var deleteFilter:DeleteFilter; //slotID:0
+ private var channelReplacer:ChannelReplacer; //slotID:0
+ private var videoLoadGuardian:VideoLoadGuardian; //slotID:0
+ private var getChecklist:GetChecklist; //slotID:0
+ private var myList:MyList; //slotID:0
+ private var playlist:Playlist; //slotID:0
+ private var initializeInfo:InitializeInfo; //slotID:0
+ private var _startVposConfig:StartVposConfig; //slotID:0
+ private var commentLayerView:CommentLayerView; //slotID:0
+ private var commentLayer:CommentLayer; //slotID:0
+ private var commentViewTransformer:CommentViewTransformer; //slotID:0
+ private var commentRouter:CommentRouter; //slotID:0
+ private var videoLayerManager:VideoLayerManager; //slotID:0
+ private var videoController:VideoController; //slotID:0
+ private var jumpMsgLayer:JumpMessageLayer; //slotID:0
+ private var nicoViewController:INicoViewController; //slotID:0
+ private var nicoViewControllerClient:NicoViewControllerClient; //slotID:0
+ private var vposWatcher:VposWatcher; //slotID:0
+ private var commentShutter:ControllerShutter; //slotID:0
+ private var audioShutter:ControllerShutter; //slotID:0
+ private var playlistController:PlaylistController; //slotID:0
+ private var frameRateBooster:FrameRateBooster; //slotID:0
+ private var userSponsorVideo:IUserSponsorVideo; //slotID:0
+ private var hirobaPlayer:HirobaPlayer; //slotID:0
+ private var hirobaConnectorClient:HirobaConnectorClient; //slotID:0
+ private var _thumbConfig:IThumbConfig; //slotID:0
+ private var configure:NicoConfig; //slotID:0
+ private var keygen:IKeygen; //slotID:0
+ private var commentStorage:ICommentStorage; //slotID:0
+ private var jumper:Jumper; //slotID:0
+ private var nicosPlayer:INicoSPlayer; //slotID:0
+ private var nicosClient:NicoSClient; //slotID:0
+ private var nicosPipe:Function; //slotID:0
+ private var BGMVideoInfos:Array; //slotID:0
+ private var marqueeClient:MarqueeClient; //slotID:0
+ private var externalClient:ExternalClient; //slotID:0
+ private var isThumbWatchMode:Boolean = false; //slotID:0
+ private var _onChangedVideoStatus:Function; //slotID:0
+ private var _initialized:Boolean = false; //slotID:0
+ private var _wholeVideoLoadSucceeded:Boolean = false; //slotID:0
+ private var pluginClient:NicoPluginClient; //slotID:0
+ private var _playlistSequences:Array; //slotID:0
+ private var _isPlaylist:Boolean = false; //slotID:0
+ private var _videoLoadSucceeded:Boolean; //slotID:0
+ private var _isPlaylistPrepared:Boolean = false; //slotID:0
+ private var _shutterKeyLastClosed:int = -1; //slotID:0
+ private var _isShowedDialog:Boolean = false; //slotID:0
+ private var _logManager:LogManager; //slotID:0
+ private var _playerPageMyselfURL:String; //slotID:0
+ private var _videoenderTesterConfig:IVideoenderTesterConfig; //slotID:0
+
+ private function initializePlaylistPlayer():void
+ { //MethodID:12, LocalCount= 2 , MaxScope= 2, MaxStack= 19, CodeLength= 422
+ internal var menu:ContextMenu; //slotID:1
+ internal var vars:Object; //slotID:2
+ internal var seq:EventSequence; //slotID:3
+
+ this._isPlaylist = true;
+
+ DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE);
+
+ this.keygen = new Keygen(this.configure);
+ stage.align = StageAlign.TOP_LEFT;
+ stage.scaleMode = StageScaleMode.NO_SCALE;
+ menu = new ContextMenu();
+
+ menu.hideBuiltInItems();
+
+ menu.builtInItems.quality = true;
+ contextMenu = menu;
+ vars = loaderInfo.parameters;
+ this.flashVars = new NicoFlashVars();
+
+ NicoFlashVarsInitializer.setFlashVars(this.flashVars, vars);
+
+ this.playlistFlashVars = new PlaylistFlashVars(vars);
+ this._playerPageMyselfURL = function():String{ //MethodID:11, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 49
+ var hug1:* = {};
+
+ if(playlistFlashVars.playlistSort) hug1["sort"] = playlistFlashVars.playlistSort;
+
+ return StringUtils.joinQuery((configure.PLAYLIST_PAGE_BASE_URL + playlistFlashVars.playlistID), hug1);
+ }();
+ this.nicoViewControllerClient.nicoConfig = this.configure;
+
+ this.nicoViewControllerClient.flashVars = this.flashVars;
+ this.nicoViewControllerClient.playlistFlashVars = this.playlistFlashVars;
+ this.nicoViewControllerClient.playerPageMyselfURL = this._playerPageMyselfURL;
+
+ this.pluginClient.setProperty("nicoConfig", this.configure);
+ this.pluginClient.setProperty("flashVars", this.flashVars);
+
+ this.nicoViewControllerClient.pluginClient = this.pluginClient;
+ this._playlistSequences = [this._loadWatchAPI, this.loadVideoInfoAPI, this.initializeMyList, this.loadBGMVideoInfo, this.initializeCommentStorage, this.initializeGetChecklist, this.initializeHiroba, this.prepareVideo, this.prepareCommentLists, this.initializeModelAndView, this.initializeCommentRouter, this.initializeModelAndView4Watch, this.initializeLogger, this.loadConfirm, this.initializePlugin, this.initializeCommentLists, this._delayVideo, this._loadVideo];
+ seq = new EventSequence(this);
+
+ seq.push(this.initializePlayerVersion, this.initializePlayerInfo, this.initializeCrossSharedObjectSWF, this.initializeJSConnector, this.initializeJumper, this.createLogger, this.initializePlayerConfig, this.loadTemplateSWF, this.initializePlaylist, this.loadViewControllerSWF, this.loadNicoScriptSWF, this.checkInitializePlaylist, this.initializeNG, this.startPlaylist);
+ seq.next();
+ }
+
+ private function startPlaylist():void
+ { //MethodID:13, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 54
+ if(this.playlistController) this.playlistController.play(null, null, (this.playerConfig.autoPlay && !this.initializeInfo.isPremium));
+ EventSequence.current.next();
+ }
+
+ private function _loadWatchAPI():void
+ { //MethodID:15, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 96
+ internal var apiParams:Object; //slotID:1
+
+ this.nicoViewControllerClient.flashVars = null;
+ apiParams = {};
+
+ if(this._isPlaylist){
+ apiParams["mode"] = "playlist";
+ apiParams["playlist_token"] = this.playlist.token;
+ }
+
+ HTTPUtils.loadJSON(EventSequence.bind(function(hug1:Object):void{ //MethodID:14, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 245
+ var hug2:* = undefined;
+
+ if(!hug1 || (hug1.status == "ng")){
+ if(_isPlaylist){
+ if(hug1.status_message == PlaylistErrorManager.TOKEN_TIMEOUT){
+ if(playlistController.errorCount < 1){
+ playlistController.errorCount++;
+ playlistController.isInvalidToken = true;
+ playlistController.isVideoUpdating = false;
+
+ playlistController.play(playlistController.threadID);
+
+ return;
+ }
+ }
+
+ playlistController.onError(hug1.status_message.toString());
+
+ if(PlaylistErrorManager.TABWINDOW_ALERT_ERRORS.indexOf(hug1.status_message.toString()) != (-1)) playlistController.goNext(null, (playerConfig.autoPlay && !initializeInfo.isPremium));
+ }
+
+ return;
+ }
+
+ flashVars = new NicoFlashVars();
+
+ NicoFlashVarsInitializer.setFlashVars(flashVars, hug1);
+
+ if(_isPlaylist){
+ hug2 = playlist.getVideoInfo(playlistController.threadID);
+ hug2.flashVars = flashVars;
+ }
+
+ nicoViewControllerClient.flashVars = flashVars;
+
+ EventSequence.current.next();
+ }), (this.configure.WATCH_API_URL + this.playlistController.threadID), apiParams);
+ }
+
+ private function initializePlaylist():void
+ { //MethodID:18, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 96
+ internal var apiParams:Object; //slotID:1
+
+ apiParams = {};
+ apiParams["ts"] = new Date().time;
+ apiParams["playlist_token"] = this.playlistFlashVars.playlistToken;
+ this.playlist = new Playlist((this.configure.GET_PLAYLIST_URL + this.playlistFlashVars.playlistID), apiParams, this.playlistFlashVars.playlistSort, EventSequence.bind(function(hug1:Boolean):void{ //MethodID:17, LocalCount= 3 , MaxScope= 1, MaxStack= 11, CodeLength= 172
+ internal var success:Boolean; //slotID:1
+ internal var reset:Function; //slotID:2
+
+ reset = null;
+ success = hug1;
+ reset = function():void{ //MethodID:16, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 43
+ nicoViewControllerClient.getFLVData = null;
+ nicoViewControllerClient.videoController = null;
+ nicoViewControllerClient.commentRouter = null;
+ nicoViewControllerClient.relatedList = null;
+ nicoViewControllerClient.myList = null;
+ nicoViewControllerClient.defaultMylistAppender = null;
+ };
+
+ _isPlaylistPrepared = success;
+
+ if(!success){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ if(playlistController){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ initializeInfo = InitializeInfo.getInstance();
+ nicoViewControllerClient.initializeInfo = initializeInfo;
+
+ pluginClient.setProperty("initializeInfo", initializeInfo);
+
+ playlistController = new PlaylistController(_playlistSequences, initializePlaylist, playlist, playlistFlashVars, configure, playerInfo.playlistLimit, reset, playerConfig.isPlaylistRandomPlay, _playerPageMyselfURL);
+ nicoViewControllerClient.playlistController = playlistController;
+
+ EventSequence.current.next();
+ }));
+ }
+
+ private function checkInitializePlaylist():void
+ { //MethodID:19, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 105
+ var hug1:String = null;
+
+ if(!this.initializeInfo || !this.initializeInfo.userID){
+ this.systemMessage.informln(__MSG__("ユーザー情報の取得に失敗"));
+
+ hug1 = ("<p><b>" + __MSG__("ユーザー情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("ログインしていない可能性があります。") + "</p>");
+
+ this.systemMessage.alert(hug1);
+
+ return;
+ }
+
+ EventSequence.current.next();
+ }
+
+ public function setThumbWatchVars(hug1:IThumbConfig, hug2:NicoFlashVars):void
+ { //MethodID:20, LocalCount= 4 , MaxScope= 1, MaxStack= 23, CodeLength= 234
+ if(DEBUG_MODE_EXT != DebugMode.NON){
+ DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE_EXT);
+ DefaultInitializer.setThumbDebugMode(this.configure);
+ }else{
+ DefaultInitializer.setConfig(this.configure, hug1.playerURL, DebugMode.NON);
+ }
+
+ this.keygen = new Keygen(this.configure);
+ this._thumbConfig = hug1;
+ this.flashVars = hug2;
+ this.nicoViewControllerClient.thumbConfig = hug1;
+ this.nicoViewControllerClient.nicoConfig = this.configure;
+ this.nicoViewControllerClient.flashVars = hug2;
+ var hug3:EventSequence = new EventSequence(this);
+
+ hug3.push(this.initializePlayerVersion, this.initializePlayerInfo, this.initializeCrossSharedObjectSWF, this.initializeJSConnector, this.initializeJumper, this.initializePlayerConfig, this._loadThumbViewSWF, this._loadThumbControllerSWF, this.loadNicoScriptSWF, this._loadThumbVideoInfo, this.loadBGMVideoInfo, this.initializeNG, this.initializeCommentStorage, this.prepareVideo, this.prepareCommentLists, this.initializeModelAndView, this._initializeModelAndViewThumbWatch, this.initializeSponsorVideo, this._delayVideo, this._loadVideo, this.initializeCommentLists, this.beginToPlayVideo);
+ hug3.next();
+ }
+
+ public function get initialized():Boolean
+ { //MethodID:21, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._initialized;
+ }
+
+ public function playThumbPlayer():void
+ { //MethodID:22, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 47
+ if(this.isThumbWatchMode && this.video && this.video.isInitialized) this.video.play();
+ }
+
+ public function pauseThumbPlayer():void
+ { //MethodID:23, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 47
+ if(this.isThumbWatchMode && this.video && this.video.isInitialized) this.video.stop();
+ }
+
+ public function set onChangedVideoStatus(hug1:Function):void
+ { //MethodID:25, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 57
+ internal var onChanged:Function; //slotID:1
+
+ onChanged = hug1;
+
+ if(!this.isThumbWatchMode) throw new IllegalOperationError("NicoPlayer.set onChangedVideoStatus: player is not in thumbwatch.");
+
+ if(onChanged == null) throw new ArgumentError("NicoPlayer.set onChangedVideoStatus: invalid parameters onChanged is null.");
+
+ this._onChangedVideoStatus = function(hug1:String):void{ //MethodID:24, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 24
+ if(!_initialized) _initialized = true;
+ onChanged(hug1);
+ };
+ }
+
+ public function get videoPlayerStatus():String
+ { //MethodID:26, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 49
+ if(this.isThumbWatchMode && this.video && this.video.isInitialized) return this.video.videoPlayerStatus;
+
+ return "";
+ }
+
+ private function initializeWatchPlayer():void
+ { //MethodID:27, LocalCount= 4 , MaxScope= 1, MaxStack= 31, CodeLength= 362
+ DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE);
+
+ this.keygen = new Keygen(this.configure);
+ stage.align = StageAlign.TOP_LEFT;
+ stage.scaleMode = StageScaleMode.NO_SCALE;
+ var hug1:ContextMenu = new ContextMenu();
+
+ hug1.hideBuiltInItems();
+
+ hug1.builtInItems.quality = true;
+ contextMenu = hug1;
+ var hug2:Object = loaderInfo.parameters;
+ this.flashVars = new NicoFlashVars();
+
+ NicoFlashVarsInitializer.setFlashVars(this.flashVars, hug2);
+
+ this._playerPageMyselfURL = (this.configure.BASE_URL + "watch/" + this.flashVars.watchID);
+ this.nicoViewControllerClient.nicoConfig = this.configure;
+ this.nicoViewControllerClient.flashVars = this.flashVars;
+ this.nicoViewControllerClient.playerPageMyselfURL = this._playerPageMyselfURL;
+
+ this.pluginClient.setProperty("nicoConfig", this.configure);
+ this.pluginClient.setProperty("flashVars", this.flashVars);
+
+ this.nicoViewControllerClient.pluginClient = this.pluginClient;
+ var hug3:EventSequence = new EventSequence(this);
+
+ hug3.push(this.initializePlayerVersion, this.initializePlayerInfo, this.initializeCrossSharedObjectSWF, this.initializeJSConnector, this.initializeJumper, this.createLogger, this.initializePlayerConfig, this.loadTemplateSWF, this.loadViewControllerSWF, this.loadNicoScriptSWF, this.loadVideoInfoAPI, this.initializeMyList, this.loadBGMVideoInfo, this.initializeNG, this.initializeCommentStorage, this.initializeGetChecklist, this.initializeHiroba, this.prepareVideo, this.prepareCommentLists, this.initializeModelAndView, this.initializeCommentRouter, this.initializeModelAndView4Watch, this.initializeSponsorVideo, this.initializeLogger, this.loadConfirm, this.initializePlugin, this.initializeCommentLists, this._delayVideo, this._loadVideo, this.beginToPlayVideo);
+ hug3.next();
+ }
+
+ private function initializeCrossSharedObjectSWF():void
+ { //MethodID:30, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 64
+ internal var _url:String; //slotID:1
+
+ _url = null;
+ _url = StringUtils.joinQuery(this.configure.CROSSSHAREDOBJECT_SWF_URL, {t:this.playerVersion.crossSharedObject});
+
+ CrossSharedObject.init(_url, EventSequence.bind(function(hug1:Boolean):void{ //MethodID:29, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 134
+ internal var sccessed:Boolean; //slotID:1
+
+ sccessed = hug1;
+
+ if(!sccessed) throw new Error("NicoPlayer.loadCrossSharedObjectSWF: failure to load \"" + configure.CROSSSHAREDOBJECT_SWF_URL + "\"");
+
+ if(CrossSharedObject.isPersistable || !configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL){
+ EventSequence.current.next();
+ }else{
+ CrossSharedObject.terminate();
+
+ _url = StringUtils.joinQuery(configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL, {t:playerVersion.crossSharedObject});
+
+ CrossSharedObject.init(_url, EventSequence.bind(function(hug1:Boolean):void{ //MethodID:28, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 38
+ if(!hug1) throw new Error("NicoPlayer.loadCrossSharedObjectNoNimgSWF: failure to load \"" + configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL + "\"");
+ EventSequence.current.next();
+ }));
+ }
+ }));
+ }
+
+ private function createLogger():void
+ { //MethodID:31, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 42
+ this._logManager = new LogManager(!CrossSharedObject.isPersistable);
+ this.nicoViewControllerClient.logManager = this._logManager;
+
+ EventSequence.current.next();
+ }
+
+ private function initializePlayerConfig():void
+ { //MethodID:32, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 116
+ this.playerConfig = new PlayerConfig(this.isThumbWatchMode);
+ this.nicoViewControllerClient.playerConfig = this.playerConfig;
+
+ this.pluginClient.setProperty("playerConfig", this.playerConfig);
+
+ this.playerConfig.deepenedCommentForce = this.flashVars.isDeepenedCommentForce;
+ this.playerConfig.aspectRatio = ((this.flashVars.isWide || this._isPlaylist) ? ScreenAspectRatio.WIDE : ScreenAspectRatio.NORMAL);
+
+ EventSequence.current.next();
+ }
+
+ private function initializeJumper():void
+ { //MethodID:33, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 74
+ this.jumper = new Jumper(this.configure, this.flashVars.watchID);
+ this.nicoViewControllerClient.jumper = this.jumper;
+ this._startVposConfig = new StartVposConfig(this.jumper, this.flashVars);
+ this.nicoViewControllerClient.startVposConfig = this._startVposConfig;
+
+ EventSequence.current.next();
+ }
+
+ private function initializePlayerVersion():void
+ { //MethodID:35, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 116
+ internal var request:URLRequest; //slotID:1
+ internal var params:URLVariables; //slotID:2
+ internal var api:APICacheProxy; //slotID:3
+
+ request = new URLRequest(this.configure.PLAYERVERSION_XML_URL);
+ params = new URLVariables();
+ params.v = this.flashVars.playerVersionUpdated;
+ request.data = params;
+ api = new APICacheProxy(request, 0, uint.MAX_VALUE, this.flashVars.playerVersionUpdated, false);
+ this.playerVersion = new PlayerVersion(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:34, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 36
+ if(!hug1) throw new Error("NicoPlayer.playerVersion. initialize error");
+
+ nicoViewControllerClient.playerVersion = playerVersion;
+
+ EventSequence.current.next();
+ }), api);
+ }
+
+ private function initializeJSConnector():void
+ { //MethodID:37, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 71
+ internal var request:URLRequest; //slotID:1
+
+ request = new URLRequest(this.configure.JSCONNECTOR_SWF_URL);
+ request.data = new URLVariables("v=" + this.playerVersion.jsconnector);
+
+ JSConnector.init(request, EventSequence.current.bind(function(hug1:Boolean):void{ //MethodID:36, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 27
+ if(!hug1) throw new IOError("NicoPlayer.initializeJSConnector: initialize error.");
+ EventSequence.current.next();
+ }));
+ }
+
+ private function initializePlayerInfo():void
+ { //MethodID:39, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 116
+ internal var request:URLRequest; //slotID:1
+ internal var params:URLVariables; //slotID:2
+ internal var api:APICacheProxy; //slotID:3
+
+ request = new URLRequest(this.configure.PLAYERINFO_XML_URL);
+ params = new URLVariables();
+ params.v = this.flashVars.playerInfoUpdated;
+ request.data = params;
+ api = new APICacheProxy(request, 0, uint.MAX_VALUE, this.flashVars.playerInfoUpdated, false);
+ this.playerInfo = new PlayerInfo(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:38, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 36
+ if(!hug1) throw new Error("NicoPlayer.playerInfo. initialize error");
+
+ nicoViewControllerClient.playerInfo = playerInfo;
+
+ EventSequence.current.next();
+ }), api);
+ }
+
+ private function loadTemplateSWF():void
+ { //MethodID:41, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
+ HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:40, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 45
+ if(!hug1) throw new Error("NicoPlayer.loadTemplateSWF: failure to load \"" + configure.VIEW_SWF_URL + "\"");
+
+ nicoViewControllerClient.viewRoot = hug1;
+
+ EventSequence.current.next();
+ }), this.configure.VIEW_SWF_URL, {t:this.playerVersion.nicoplayerTemplate});
+ }
+
+ private function loadViewControllerSWF():void
+ { //MethodID:43, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
+ HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:42, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 89
+ if(!hug1) throw new Error("NicoPlayer.loadViewControllerSWF: failure to load \"" + configure.VIEWCONTROLLER_SWF_URL + "\"");
+ addChild(nicoViewControllerClient.viewRoot);
+
+ nicoViewController = INicoViewController(hug1);
+
+ nicoViewController.startInit(nicoViewControllerClient);
+
+ if(playlistController) playlistController.nicoViewController = nicoViewController;
+ EventSequence.current.next();
+ }), this.configure.VIEWCONTROLLER_SWF_URL, {t:this.playerVersion.nicoplayerViewController});
+ }
+
+ private function loadNicoScriptSWF():void
+ { //MethodID:45, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 76
+ if(!this.flashVars.hasOwnerThread && !this.playlistFlashVars){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:44, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 50
+ if(!hug1) throw new Error("NicoPlayer.loadViewControllerSWF: failure to load \"" + configure.NICOSPLAYER_URL + "\"");
+
+ nicosPlayer = INicoSPlayer(hug1);
+
+ EventSequence.current.next();
+ }), this.configure.NICOSPLAYER_URL, {t:this.playerVersion.nicoscriptPlayer});
+ }
+
+ private function getGetFLVAPIParams():Object
+ { //MethodID:46, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 165
+ var hug1:Object = {};
+ hug1["v"] = ((this._isPlaylist && this.playlistController) ? this.playlistController.threadID : this.flashVars.watchID);
+
+ if(this.flashVars.videoType == VideoType.SWF) hug1["as3"] = "1";
+
+ if(this.flashVars.forceLowMode) hug1["lo"] = "1";
+
+ if(this.flashVars.economyMode) hug1["eco"] = this.flashVars.economyMode;
+
+ if(this.flashVars.watchFlashVars.noHiroba || this._isPlaylist) hug1["nh"] = "1";
+
+ return hug1;
+ }
+
+ private function loadVideoInfoAPI():void
+ { //MethodID:48, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 65
+ this.nicoViewControllerClient.getFLVData = null;
+
+ this.systemMessage.informln(__MSG__("動画情報を取得開始"));
+
+ this.getFLV = new GetFLV(this.configure.GETFLV_URL, this.getGetFLVAPIParams(), EventSequence.bind(function(hug1:Boolean):void{ //MethodID:47, LocalCount= 7 , MaxScope= 0, MaxStack= 4, CodeLength= 508
+ var hug2:* = undefined;
+ var hug6:* = undefined;
+ var hug3:* = _playerPageMyselfURL;
+
+ if(!hug1 || getFLV.closed){
+ systemMessage.informln(__MSG__("動画情報の取得に失敗"));
+
+ hug2 = (("<p><b>" + __MSG__("動画情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("ログイン状態が解除されているか、動画が非公開状態にある可能性があります。") + "<br />") + __MSG__("<a href=\"[[url]]\">リロードして再度ログイン</a>", hug3) + "</p>");
+
+ systemMessage.alert(hug2);
+
+ return;
+ }
+
+ if(!initializeInfo){
+ initializeInfo = InitializeInfo.getInstance();
+ nicoViewControllerClient.initializeInfo = initializeInfo;
+
+ pluginClient.setProperty("initializeInfo", initializeInfo);
+ }
+
+ if(!initializeInfo.userID){
+ systemMessage.informln(__MSG__("ユーザー情報の取得に失敗"));
+
+ hug2 = ("<p><b>" + __MSG__("ユーザー情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("以下のページにアクセスしログインしてください。") + "<a href=\"" + hug3 + "\">" + hug3 + "</a>" + "</p>");
+
+ systemMessage.alert(hug2);
+
+ return;
+ }
+
+ if(flashVars.isChannel){
+ systemMessage.informln(__MSG__("チャンネル動画"));
+ }else if(flashVars.isCommunityThread){
+ systemMessage.informln(__MSG__("コミュニティ動画"));
+ }
+
+ nicoViewControllerClient.getFLVData = getFLV;
+
+ if(!pluginClient.hasInitialized("getFLV")) pluginClient.setProperty("getFLV", getFLV);
+ SystemMessage.instance.informln(__MSG__("スレッド(動画)") + ":" + flashVars.watchID);
+
+ var hug4:* = new RegExp("(https?|rtmp(e|t|te)?)://([^.]+).+", "ig");
+ var hug5:* = hug4.exec(getFLV.videoURL);
+
+ if(hug5 != null){
+ hug6 = ((__MSG__("動画ホスト") + ":") + ((hug5.length >= 1) ? hug5[3] : ""));
+
+ if(new RegExp("low$").test(getFLV.videoURL)) hug6 += __MSG__(" (エコノミー)");
+ SystemMessage.instance.informln(hug6);
+ }
+
+ EventSequence.current.next();
+ }));
+ }
+
+ private function initializeMyList():void
+ { //MethodID:49, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 46
+ this.myList = new MyList(this.configure, this.getFLV.threadID);
+ this.nicoViewControllerClient.myList = this.myList;
+
+ EventSequence.current.next();
+ }
+
+ private function loadBGMVideoInfo():void
+ { //MethodID:51, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 119
+ this.BGMVideoInfos = [];
+
+ if((!this.flashVars.importedBGMVideos || (this.flashVars.importedBGMVideos.length == 0)) || ((this.getFLV.deleted != 0) && (this.getFLV.deleted != 8))){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ GetBGM.exec(EventSequence.bind(function(hug1:Boolean, hug2:Array):void{ //MethodID:50, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 118
+ var hug3:* = undefined;
+ var hug4:* = undefined;
+
+ if(!hug1){
+ systemMessage.informln(__MSG__("引用動画の情報の取得に失敗"));
+
+ hug3 = _playerPageMyselfURL;
+ hug4 = ("<p><b>" + __MSG__("引用動画の情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("お手数ですが以下のリンクをおしてページをロードしてください。") + "<a href=\"" + hug3 + "\">" + hug3 + "</a>" + "</p>");
+
+ systemMessage.alert(hug4);
+
+ return;
+ }
+
+ BGMVideoInfos = hug2;
+
+ EventSequence.current.next();
+ }), this.configure.GETBGM_API_URL, this.getFLV.threadID);
+ }
+
+ private function initializeNG():void
+ { //MethodID:55, LocalCount= 2 , MaxScope= 2, MaxStack= 11, CodeLength= 145
+ internal var noLoad:Boolean; //slotID:1
+
+ noLoad = !CrossSharedObject.isPersistable;
+ this.nicoViewControllerClient.ngFilter = null;
+ this.ngComment = new NGComment(this.initializeInfo.userID, this.initializeInfo.ngRevision, this.configure.GETCONFIGURENGCLIENT_URL, this.initializeInfo.isPremium, this.playerConfig, this.initializeInfo.isNGMaintenance, noLoad, this.flashVars.isMymemory, (this.isThumbWatchMode ? null : this.flashVars.watchFlashVars.csrfToken));
+
+ this.ngComment.onInitialized.add(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:53, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 187
+ internal var success:Boolean; //slotID:1
+ internal var ngCommentLength:*; //slotID:2
+ internal var ngUserLength:*; //slotID:3
+
+ ngCommentLength = undefined;
+ ngUserLength = undefined;
+ success = hug1;
+
+ if(!success) systemMessage.alert("<p><b>" + __MSG__("NG設定の読み込みに失敗") + "</b></p>" + "<p>" + __MSG__("時間を空けてアクセスしていただくか、下のリンクからお知らせください。") + "<br />" + "<a href=\"https://secure.nicovideo.jp/secure/support_form\" target=\"_blank\">" + "お問い合わせ" + "</a>" + "</p>");
+
+ nicoViewControllerClient.ngFilter = ngComment;
+
+ if(!pluginClient.hasInitialized("ngFilter")) pluginClient.setProperty("ngFilter", ngComment);
+
+ if(!isThumbWatchMode){
+ ngCommentLength = 0;
+ ngUserLength = 0;
+
+ ngComment.list.forEach(function(hug1:NGInfo, hug2:int, hug3:Array):void{ //MethodID:52, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 79
+ if(hug1.type == NGType.MESSAGE){
+ ngCommentLength++;
+ }else if(hug1.type == NGType.USER_ID){
+ ngUserLength++;
+ }
+ });
+ _logManager.observer.onNGCommentInitialized(ngCommentLength, ngUserLength);
+ }
+
+ EventSequence.current.next();
+ }));
+ this.ngComment.onUpdated.add(function(hug1:Array, hug2:String):void{ //MethodID:54, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 56
+ var hug3:ICommentList = null;
+
+ if(hug2 == NGResponseConstants.UNSERVE) return;
+
+ for each(hug3 in commentListContainer){
+ hug3.serveCommentList();
+ }
+ });
+ }
+
+ private function initializeCommentStorage():void
+ { //MethodID:59, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 106
+ internal var client:MessageServerClient; //slotID:1
+
+ client = null;
+ this.nicoViewControllerClient.commentStorageEvents = null;
+ client = new MessageServerClient(this.getFLV.messageServerURL);
+
+ client.connectionLost.add(function(hug1:String):void{ //MethodID:56, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 20
+ systemMessage.informln(__MSG__("コメント受信中にエラーが発生: ") + hug1);
+ });
+ client.connected.add(function():void{ //MethodID:57, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 18
+ systemMessage.informln(__MSG__("コメントサーバーへの接続準備完了"));
+ });
+
+ if(this._logManager) this._logManager.observer.onThreadLoadStarted();
+ client.connect(EventSequence.bind(function(hug1:Boolean, hug2:String):void{ //MethodID:58, LocalCount= 3 , MaxScope= 0, MaxStack= 8, CodeLength= 131
+ commentStorage = new CommentStorage(client, keygen, initializeInfo.userID, initializeInfo.isPremium, flashVars, getFLV);
+
+ if((playerInfo.leafFilter.indexOf(getFLV.messageServerURL) != (-1)) || (flashVars.leafSwitch == NicoFlashVars.LEAF_DISABLE)) commentStorage.forceLeafOff = true;
+
+ nicoViewControllerClient.commentStorageEvents = new CommentStorageEvents(commentStorage);
+
+ if(_logManager) _logManager.observer.onThreadLoadCompleted(hug1);
+ EventSequence.current.next();
+ }));
+ }
+
+ private function initializeGetChecklist():void
+ { //MethodID:61, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 102
+ internal var apiCacheProxy:APICacheProxy; //slotID:1
+ internal var callback:Function; //slotID:2
+ internal var noLoad:Boolean; //slotID:3
+
+ apiCacheProxy = new APICacheProxy(new URLRequest(this.configure.GET_CHECKLIST_URL), 0, 0, this.initializeInfo.userID);
+ callback = EventSequence.bind(function(hug1:Boolean):void{ //MethodID:60, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 11
+ EventSequence.current.next();
+ });
+
+ noLoad = !CrossSharedObject.isPersistable;
+ this.getChecklist = new GetChecklist(callback, apiCacheProxy, this.flashVars.watchFlashVars.useChecklistCache, noLoad);
+ }
+
+ private function initializeHiroba():void
+ { //MethodID:69, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 380
+ this._logManager.observer.onHirobaInitializeStarted();
+
+ if((this.getFLV.hirobaHost == null) || (this.getFLV.hirobaPort == 0) || (this.getFLV.hirobaThreadID == null) || this.flashVars.watchFlashVars.noHiroba || this.flashVars.isNoComment || this.flashVars.watchFlashVars.isOwnerThreadEditMode || this.flashVars.watchFlashVars.isEditMode){
+ if(!(((this.getFLV.hirobaHost != null) && (this.getFLV.hirobaPort != 0) && !(!(this.getFLV.hirobaThreadID == null))) && (this.flashVars.watchFlashVars.noHiroba || this.flashVars.isNoComment || this.flashVars.watchFlashVars.isOwnerThreadEditMode || this.flashVars.watchFlashVars.isEditMode))) this._logManager.observer.onHirobaConnected(false, HirobaErrorStatus.HIROBA_INFO_NOT_FOUND, HirobaEventReferer.NICO_PLAYER);
+ EventSequence.current.next();
+
+ return;
+ }
+
+ if(this.nicoViewControllerClient.hirobaPlayer){
+ this._logManager.observer.onHirobaInitializeAborted();
+ EventSequence.current.next();
+
+ return;
+ }
+
+ this.hirobaPlayer = new HirobaPlayer(this.playerConfig, this.initializeInfo.isPremium);
+ this.nicoViewControllerClient.hirobaPlayer = this.hirobaPlayer;
+
+ HTTPUtils.loadSWF(function(hug1:Sprite):void{ //MethodID:68, LocalCount= 3 , MaxScope= 1, MaxStack= 6, CodeLength= 276
+ internal var swf:Sprite; //slotID:1
+ internal var connector:IHirobaConnector; //slotID:2
+ internal var succeeded:Boolean; //slotID:3
+ internal var client:HirobaConnectorClient; //slotID:4
+ internal var onConnectionFailed:Function; //slotID:5
+ internal var onDisconnected:Function; //slotID:6
+ internal var onConnected:Function; //slotID:7
+
+ connector = null;
+ client = null;
+ onConnectionFailed = null;
+ onDisconnected = null;
+ onConnected = null;
+ swf = hug1;
+ onConnectionFailed = function(hug1:HirobaErrorEvent):void{ //MethodID:63, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 37
+ systemMessage.informln(__MSG__("広場の接続中にエラーが発生"));
+ _logManager.observer.onHirobaConnected(false, hug1.text, hug1.referer);
+ };
+
+ onDisconnected = function(hug1:HirobaErrorEvent):void{ //MethodID:64, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 36
+ systemMessage.informln(__MSG__("広場の接続中にエラーが発生"));
+ _logManager.observer.onHirobaDisconnected(hug1.text, hug1.referer);
+ };
+
+ onConnected = function(hug1:Boolean, hug2:String, hug3:String):void{ //MethodID:66, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 243
+ internal var succeeded:Boolean; //slotID:1
+ internal var status:String; //slotID:2
+ internal var referer:String; //slotID:3
+
+ succeeded = hug1;
+ status = hug2;
+ referer = hug3;
+
+ if((referer == HirobaEventReferer.HIROBA_AGENT) && succeeded){
+ _logManager.observer.onHirobaConnected(true, status, referer);
+
+ return;
+ }
+
+ if(!succeeded){
+ systemMessage.informln(__MSG__("広場の接続に失敗"));
+ _logManager.observer.onHirobaConnected(false, status, referer);
+
+ return;
+ }
+
+ systemMessage.informln(__MSG__("広場の接続に成功"));
+ _logManager.observer.onHirobaConnected(true, status, referer);
+ hirobaPlayer.onClickedLink.add(function():void{ //MethodID:65, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 15
+ if(videoController) videoController.stop();
+ });
+
+ hirobaPlayer.connector = connector;
+
+ if(commentRouter) commentRouter.addHiroba(hirobaPlayer);
+
+ if(marqueeClient && marqueeClient.marqueePlayer) client.insertItemOnMarquee_0 = INicoMarqueePlayer(marqueeClient.marqueePlayer).interruptContent;
+
+ hirobaConnectorClient = client;
+
+ nicoViewController.onHirobaInitialized();
+ };
+
+ connector = IHirobaConnector(swf);
+ succeeded = (connector != null);
+
+ if(!succeeded){
+ systemMessage.informln(__MSG__("広場の接続に失敗"));
+ _logManager.observer.onHirobaConnected(false, HirobaErrorStatus.HIROBA_CONNECTOR_NOT_FOUND, HirobaEventReferer.NICO_PLAYER);
+
+ return;
+ }
+
+ client = new HirobaConnectorClient(new HirobaMessageServerInfo(getFLV, configure.GETFLV_URL, getGetFLVAPIParams()), initializeInfo.userID, keygen, function():Number{ //MethodID:62, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 25
+ return (playerConfig.isMute ? 0 : playerConfig.volume);
+ });
+
+ client.checkList = getChecklist;
+
+ connector.initialize(client);
+ connector.addEventListener(HirobaErrorEvent.CONNECTION_FAIL, onConnectionFailed);
+ connector.addEventListener(HirobaErrorEvent.DISCONNECTED, onDisconnected);
+ connector.addEventListener(HirobaEvent.CLICKED_LINK, function(hug1:Event):void{ //MethodID:67, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 15
+ if(videoController) videoController.stop();
+ });
+ connector.connect(onConnected);
+ }, this.configure.HIROBACONNECTOR_SWF_URL, {v:this.playerVersion.hirobaconnector});
+ EventSequence.current.next();
+ }
+
+ private function prepareVideo():void
+ { //MethodID:71, LocalCount= 2 , MaxScope= 2, MaxStack= 8, CodeLength= 570
+ internal var videoWidth:int; //slotID:1
+ internal var videoHeight:int; //slotID:2
+
+ this.nicoViewControllerClient.video = null;
+ this.nicoViewControllerClient.videoController = null;
+
+ if(!this.videoLayerManager){
+ this.videoLayerManager = new VideoLayerManager(this.nicoViewController.videoBase, this.playerConfig.aspectRatio);
+
+ if(this.playerConfig.deepenedComment){
+ ObjectUtils.callLater(function():void{ //MethodID:70, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 8
+ videoLayerManager.deepenComment();
+ });
+ }
+
+ this.nicoViewControllerClient.videoLayerManager = this.videoLayerManager;
+ }else{
+ this.videoLayerManager.refreshLayers();
+ }
+
+ if(!this.pluginClient.hasInitialized("videoLayerManager")) this.pluginClient.setProperty("videoLayerManager", this.videoLayerManager);
+
+ videoWidth = ((this.flashVars.isWide || this._isPlaylist) ? VideoLayerConstants.VIDEO_LAYER_HD_WIDTH : VideoLayerConstants.VIDEO_LAYER_SD_WIDTH);
+ videoHeight = ((this.flashVars.isWide || this._isPlaylist) ? VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT : VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT);
+
+ if(this.video && this.video.isInitialized){
+ this.video.close();
+
+ this.video = null;
+ }
+
+ this.video = new VideoWrapper(this.videoLayerManager.videoLayer, this.getFLV, this.configure, this.flashVars, videoWidth, videoHeight);
+ this.nicoViewControllerClient.video = this.video;
+ this.videoController = new VideoController(this.video, this.playerConfig, this.initializeInfo.isPremium, this._isPlaylist);
+ this.nicoViewControllerClient.videoController = this.videoController;
+
+ if(this._logManager){
+ this.video.onVideoLoadComplete.add(this._logManager.observer.onVideoLoadCompleted);
+ this.video.onVideoBufferingStarted.add(this._logManager.observer.onVideoBufferingStarted);
+ }
+
+ if(this.playlistController) this.playlistController.videoController = this.videoController;
+
+ if(!this.pluginClient.hasInitialized("videoController")) this.pluginClient.setProperty("videoController", this.videoController);
+
+ if(this._onChangedVideoStatus != null) this.video.onChangedVideoStatus.add(this._onChangedVideoStatus);
+
+ if(this.vposWatcher) this.vposWatcher.kill();
+
+ this.vposWatcher = new VposWatcher(this.video);
+
+ if(this.videoLoadGuardian != null) this.videoLoadGuardian.destroy();
+
+ this.videoLoadGuardian = new VideoLoadGuardian(this.video, this.initializeInfo.isPremium);
+
+ if(this.nicoViewControllerClient.videoLoadWatcher == null) this.nicoViewControllerClient.videoLoadWatcher = new VideoLoadWatcher();
+ EventSequence.current.next();
+ }
+
+ private function prepareCommentLists():void
+ { //MethodID:73, LocalCount= 2 , MaxScope= 2, MaxStack= 12, CodeLength= 597
+ internal var normalThreadID:String; //slotID:1
+ internal var leafMode:Boolean; //slotID:2
+ internal var clear:Function; //slotID:3
+ internal var filtered:CommentPoolContainer; //slotID:4
+
+ filtered = null;
+ clear = function():void{ //MethodID:72, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 150
+ nicoViewControllerClient.commentListContainer = null;
+ nicoViewControllerClient.nicoSClient = null;
+
+ if(nicosClient) nicosClient.clear();
+
+ if(nicosPlayer) nicosPlayer.clear();
+
+ nicosClient = null;
+ privateCommentList = null;
+ commentList = null;
+ nicoSCommentList = null;
+ ownerCommentList = null;
+ localCommentList = null;
+
+ delete commentListContainer[CommentConstants.CL_PRIVATE];
+ delete commentListContainer[CommentConstants.CL_MAIN];
+ delete commentListContainer[CommentConstants.CL_NICOS];
+ delete commentListContainer[CommentConstants.CL_OWNER];
+ delete commentListContainer[CommentConstants.CL_LOCAL];
+ };
+
+ clear();
+
+ normalThreadID = this.getFLV.threadID;
+ leafMode = (((this.playerInfo.leafFilter.indexOf(this.getFLV.messageServerURL) != (-1)) || (this.flashVars.leafSwitch != NicoFlashVars.LEAF_DISABLE)) && this.playerConfig.isEnabledLeafMode);
+
+ if(this.flashVars.isCommunityThread){
+ this.privateCommentList = new CommentList(this.getFLV.threadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_PRIVATE, this.flashVars.isMymemory, leafMode);
+ this.commentListContainer[CommentConstants.CL_PRIVATE] = this.privateCommentList;
+ this.mainCommentListName = CommentConstants.CL_PRIVATE;
+ normalThreadID = this.getFLV.optionalThreadID;
+ }
+
+ if(this.getFLV.nicoSThreadID){
+ this.nicoSCommentList = new CommentList(this.getFLV.nicoSThreadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_NICOS);
+ this.commentListContainer[CommentConstants.CL_NICOS] = this.nicoSCommentList;
+ }
+
+ this.commentList = new CommentList(normalThreadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_MAIN, this.flashVars.isMymemory, leafMode);
+ this.commentListContainer[CommentConstants.CL_MAIN] = this.commentList;
+
+ if(this.flashVars.hasOwnerThread){
+ this.nicosClient = new NicoSClient(this.nicosPlayer, this.videoController, this.videoLayerManager, this.jumper, this.flashVars, null, null, this.nicoSCommentList, this.playerConfig, this._isPlaylist);
+ this.ownerCommentList = new OwnerCommentList(normalThreadID, this.commentStorage, this.nicosClient, new RegisterBGM(this.configure));
+ this.commentListContainer[CommentConstants.CL_OWNER] = this.ownerCommentList;
+ }
+
+ this.localCommentList = new LocalCommentList();
+ this.commentListContainer[CommentConstants.CL_LOCAL] = this.localCommentList;
+ this.nicoViewControllerClient.commentListContainer = this.commentListContainer;
+ this.nicoViewControllerClient.nicoSClient = this.nicosClient;
+
+ if(!this.pluginClient.hasInitialized("commentListContainer")) this.pluginClient.setProperty("commentListContainer", this.commentListContainer);
+
+ if(!this.nicoViewControllerClient.filteredCommentPoolContainers) this.nicoViewControllerClient.filteredCommentPoolContainers = [];
+
+ if(!this.pluginClient.hasInitialized("filteredCommentPoolContainer")){
+ filtered = new CommentPoolContainer();
+
+ this.pluginClient.setProperty("filteredCommentPoolContainer", filtered);
+ this.nicoViewControllerClient.filteredCommentPoolContainers.push(filtered);
+ }
+
+ EventSequence.current.next();
+ }
+
+ private function initializeModelAndView():void
+ { //MethodID:74, LocalCount= 3 , MaxScope= 1, MaxStack= 9, CodeLength= 768
+ var hug2:GetRelation = null;
+ this.nicoViewControllerClient.commentLayer = null;
+ this.nicoViewControllerClient.commentLayerView = null;
+ this.nicoViewControllerClient.commentViewTransformer = null;
+ this.nicoViewControllerClient.jumpMessageLayer = null;
+ this.nicoViewControllerClient.replacer = null;
+ this.nicoViewControllerClient.channelReplacer = null;
+ this.nicoViewControllerClient.deleteFilter = null;
+ this.nicoViewControllerClient.externalClient = null;
+
+ this.initializeCommentLayerView();
+
+ this.nicoViewControllerClient.commentLayer = this.commentLayer;
+ this.nicoViewControllerClient.commentLayerView = this.commentLayerView;
+ this.nicoViewControllerClient.commentViewTransformer = this.commentViewTransformer;
+
+ if(this.nicosClient){
+ this.nicosClient.commentLayerView_ = this.commentLayerView;
+ this.nicosClient.commentLayer_ = this.commentLayer;
+ }
+
+ this.jumpMsgLayer = new JumpMessageLayer(this.videoLayerManager.jumpMsgLayer);
+ this.nicoViewControllerClient.jumpMessageLayer = this.jumpMsgLayer;
+ this.replacer = new Replacer(this.getFLV.ownerFilter, this.configure.GET_CONFIGURE_NGWORD, this.flashVars.watchID, this.initializeInfo.isNGMaintenance, (this.isThumbWatchMode ? null : this.flashVars.watchFlashVars.csrfToken));
+ this.nicoViewControllerClient.replacer = this.replacer;
+
+ if(this.getFLV.channelFilter){
+ this.channelReplacer = new ChannelReplacer(this.getFLV.channelFilter);
+ this.nicoViewControllerClient.channelReplacer = this.channelReplacer;
+ }
+
+ var hug1:Object = {};
+
+ if(this.commentList) hug1[CommentConstants.CL_MAIN] = this.commentList;
+
+ if(this.nicoSCommentList) hug1[CommentConstants.CL_NICOS] = this.nicoSCommentList;
+
+ if(this.privateCommentList) hug1[CommentConstants.CL_PRIVATE] = this.privateCommentList;
+
+ this.deleteFilter = new DeleteFilter(hug1, (this.isThumbWatchMode ? false : this.flashVars.watchFlashVars.isEditMode));
+ this.nicoViewControllerClient.deleteFilter = this.deleteFilter;
+
+ if(!this.audioShutter){
+ this.audioShutter = new ControllerShutter(AudioShutterConstants.END_OF_ENUM, "AUDIO");
+ this.nicoViewControllerClient.audioShutter = this.audioShutter;
+
+ this.pluginClient.setProperty("audioShutter", this.audioShutter);
+ }
+
+ if(!this.externalClient) this.externalClient = new ExternalClient();
+ this.externalClient.initialize(this.flashVars.watchID, this.video, this.videoController, this.playerConfig, this.initializeInfo.isPremium, (this.isThumbWatchMode ? false : this.flashVars.watchFlashVars.isOwnerThreadEditMode), (this.getFLV.nicoSThreadID != null));
+
+ this.externalClient.localCommentList = this.localCommentList;
+ this.externalClient.ownerCommentList = this.ownerCommentList;
+ this.nicoViewControllerClient.externalClient = this.externalClient;
+
+ this.video.onChangedVideoStatus.add(this.externalClient.onChangeVideoStatus);
+
+ if(!this.commentShutter){
+ this.commentShutter = new ControllerShutter(CommentShutterConstants.END_OF_ENUM, "COMMENT");
+ this.nicoViewControllerClient.commentShutter = this.commentShutter;
+
+ if(this.playlistController != null) this.playlistController.commentShutter = this.commentShutter;
+ }
+
+ if(this.nicosClient){
+ this.nicosClient.audioShutter = this.audioShutter;
+ this.nicosClient.commentShutter = this.commentShutter;
+ }
+
+ if(!this.flashVars.forceRelationInvisible){
+ hug2 = new GetRelation(HTTPUtils.loadXML, this.configure.GETRELATION_URL, this.flashVars.watchID, this.flashVars.category);
+ this.relatedList = new RelatedVideoList(hug2, this.flashVars.noRelatedVideo);
+ this.nicoViewControllerClient.relatedList = this.relatedList;
+ }
+
+ EventSequence.current.next();
+ }
+
+ private function initializeCommentRouter():void
+ { //MethodID:78, LocalCount= 2 , MaxScope= 2, MaxStack= 8, CodeLength= 271
+ this.nicoViewControllerClient.lockedComment = null;
+ this.nicoViewControllerClient.commentRouter = null;
+
+ if(this.isThumbWatchMode && !this.flashVars.thumbFlashVars.thumbComment){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ this.lockedComment = new LockedComment(this.getFLV.threadID, this.mainCommentListName, this.flashVars.watchFlashVars.isPostLocked, this.flashVars.watchFlashVars.isEditMode);
+ this.nicoViewControllerClient.lockedComment = this.lockedComment;
+ this.deleteFilter.lockedComment = this.lockedComment;
+ this.commentRouter = new CommentRouter(this.flashVars, this.playerConfig, this.lockedComment, this.nicosClient, this.initializeInfo.isPremium, this.channelReplacer);
+
+ this.commentRouter.onCommentPostErorr.add(function(hug1:String):void{ //MethodID:75, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 580
+ var hug2:String = hug1;
+
+ switch(hug2){
+ case CommentRouter.ERROR_POST_184:
+ systemMessage.informComment(__MSG__("チャンネルとコミュニティ動画では184コマンドを使用できません"));
+ break;
+ case CommentRouter.ERROR_POST_AT_COMMENT_UNDEFINED:
+ systemMessage.alert(__MSG__("入力された@コメントは、以下のどちらかの理由で使用できません。<br />") + __MSG__("・存在しない<br />") + __MSG__("・投稿者以外は使えない<br />") + __MSG__("現在、動画閲覧者が使用できるのは、") + "<a href=\"http://info.nicovideo.jp/help/player/script/90.html#s01\" target=\"_blank\">" + __MSG__("@ボタン(閲覧者用)") + "</a>、<a href=\"http://info.nicovideo.jp/help/player/script/90.html#s02\" target=\"_blank\">" + __MSG__("@ピザ") + "</a>" + __MSG__("の2つです。"));
+ break;
+ case CommentRouter.ERROR_POST_BUTTON_ONCE:
+ systemMessage.informComment(__MSG__("@ボタンは、1視聴につき1つまでしかご利用になれません"));
+ break;
+ case CommentRouter.ERROR_POST_BUTTON_PREMIUM_ONLY:
+ systemMessage.alert(__MSG__("@ボタンは現在[[a_tag_open]]プレミアム会員[[a_tag_close]]のみ使用可能です。", "<a href=\"http://www.nicovideo.jp/?p=premium_top&sec=at_button\" target=\"_blank\">", "</a>"));
+ break;
+ case CommentRouter.ERROR_POST_HIROBA:
+ systemMessage.informComment(__MSG__("広場では@ボタンは使えません。"));
+ break;
+ case CommentRouter.ERROR_POST_INITIALIZE:
+ systemMessage.informComment(__MSG__("コメント投稿の準備が未完了です"));
+ break;
+ case CommentRouter.ERROR_POST_BUTTON_ARGUMENTS:
+ systemMessage.informComment(__MSG__("@ボタンの設定項目が足りません。"));
+ break;
+ case CommentRouter.ERROR_POST_SAME_COMMENT:
+ systemMessage.informComment(__MSG__("同じコメントを連続で投稿することができません。"));
+ break;
+ case CommentRouter.ERROR_POST_CHANNEL_FILTER:
+ systemMessage.informComment(__MSG__("入力されたコメントはこの動画では投稿できません。"));
+ break;
+ case CommentRouter.ERROR_POST_AT_COMMENT_DISABLED:
+ systemMessage.informComment(__MSG__("この動画では@コメントは使えません。"));
+ break;
+ case CommentRouter.ERROR_POST_COMMAND_DISABLED:
+ systemMessage.informComment(__MSG__("この動画ではコマンドは使えません。"));
+ break;
+ default:
+ break;
+ }
+ });
+
+ if(this.flashVars.watchFlashVars.noAtPizza || this.isThumbWatchMode){
+ this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{ //MethodID:76, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
+ if(hug1.macroName == "ピザ") systemMessage.informComment("@ピザは、使用できません。");
+ });
+ }else{
+ this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{ //MethodID:77, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 40
+ if(hug1.macroName == "ピザ"){
+ navigateToURL(new URLRequest(configure.PIZZA_URL), "_blank");
+ videoController.stop();
+ }
+ });
+ }
+
+ if(this.nicosClient) this.nicosClient.commentRouter = this.commentRouter;
+
+ this.nicoViewControllerClient.commentRouter = this.commentRouter;
+ EventSequence.current.next();
+ }
+
+ private function initializeModelAndView4Watch():void
+ { //MethodID:82, LocalCount= 3 , MaxScope= 2, MaxStack= 10, CodeLength= 1164
+ internal var linkURL:String; //slotID:1
+ internal var pageURL:String; //slotID:2
+ internal var messageHTML:String; //slotID:3
+ internal var onMarqueePlayerLoaded:Function; //slotID:4
+ internal var isUseVideoEnder:Boolean; //slotID:5
+
+ linkURL = null;
+ pageURL = null;
+ messageHTML = null;
+ isUseVideoEnder = false;
+ this.nicoViewControllerClient.timeMachine = null;
+ this.nicoViewControllerClient.marqueeClient = null;
+ this.nicoViewControllerClient.frameRateBooster = null;
+ this.timeMachine = new TimeMachine(new Date(parseInt(this.getFLV.threadID, 10) * 1000));
+ this.nicoViewControllerClient.timeMachine = this.timeMachine;
+
+ if(!this.frameRateBooster) this.frameRateBooster = new FrameRateBooster(stage);
+
+ this.nicoViewControllerClient.frameRateBooster = this.frameRateBooster;
+
+ if(this._isPlaylist && (this._shutterKeyLastClosed >= 0)){
+ this.commentShutter.open(this._shutterKeyLastClosed);
+
+ this._shutterKeyLastClosed = -1;
+ }
+
+ if(this.flashVars.isMymemory){
+ this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_MYMEMORY, __MSG__("マイメモリーはコメントできません"));
+ }else if(!this.getFLV.commentExpire && !this.flashVars.watchFlashVars.isOwnerThreadEditMode){
+ if(this.flashVars.watchFlashVars.commentListPublicStatus == CommentListPublicStatus.MEMBER_ONLY){
+ linkURL = (this.configure.CHANNEL_URL + (this.flashVars.isChannel ? "channel" : "community") + "/" + this.flashVars.communityGlobalID);
+
+ this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_CHANNEL_COMMUNITY, (("<a href=\"" + linkURL + "\"><u>") + (this.flashVars.isChannel ? __MSG__("コメントするにはチャンネルに入会してください") : __MSG__("コメントするにはコミュニティに入会してください")) + "</u></a>"));
+ }else{
+ this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_OTHER, "");
+ }
+ }else if(this.flashVars.watchFlashVars.isCommentShuttered){
+ this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_LOCKED, __MSG__("あなたはコメントを禁止されています"));
+ }
+
+ if(!CrossSharedObject.isPersistable){
+ if(!this.flashVars.watchFlashVars.isEditMode && !this.flashVars.watchFlashVars.isOwnerThreadEditMode) this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_NOSHAREDOBJECT, ("<p>" + __MSG__("ローカル記憶領域が使用できないため、コメント機能を制限をしています") + "</p>"));
+
+ if(!this._isShowedDialog){
+ this._isShowedDialog = true;
+
+ this.systemMessage.informln(__MSG__("SharedObjectの初期に失敗しました。"));
+
+ pageURL = this._playerPageMyselfURL;
+ messageHTML = ("<p><b>" + __MSG__("ローカル記憶領域の書き込みが出来ません。") + "</b></p>" + "<p>" + __MSG__("NG設定、音量設定の保存、ニコニコニュース、RSS、") + "<br>" + __MSG__("生放送開始のお知らせ、ユーザーが設定した@CMなど、") + "<br>" + __MSG__("プレーヤーの機能がご利用出来ない状態です。") + "<br>" + __MSG__("プレーヤーの各機能を有効にするため、Flashの設定を変更してください。") + "<br>" + "<a href=\"" + this.configure.NOSO_URL + "\" target=\"_blank\">ローカル記憶領域の設定を変更する方法について</a>" + "</p>");
+
+ this.systemMessage.alert(messageHTML);
+ }
+ }
+
+ if(this.flashVars.watchFlashVars.isEditMode){
+ this.deleteFilter.onFinishedEdit = function(hug1:Boolean):void{ //MethodID:79, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 144
+ var hug3:String = null;
+ var hug4:String = null;
+ var hug2:String = _playerPageMyselfURL;
+
+ if(!hug1){
+ if(flashVars.isMymemory){
+ hug3 = StringUtils.joinQuery(hug2, {edit:"mymemory"});
+ hug4 = ("<b>マイメモリーの編集に失敗しました。</b>" + "再度編集しなおす場合は、以下のURLからお願いします。<br />" + "<a href=\"" + hug3 + "\">" + hug3 + "</a>");
+ }else{
+ hug3 = StringUtils.joinQuery(hug2, {edit:"comment"});
+ hug4 = ("<b>編集の保存に失敗しました。</b>" + "再度編集しなおす場合は、以下のURLからお願いします。<br />" + "<a href=\"" + hug3 + "\">" + hug3 + "</a>");
+ }
+
+ systemMessage.alert(hug4);
+
+ return;
+ }
+
+ navigateToURL(new URLRequest(hug2), "_self");
+ };
+ }
+
+ if(!this.flashVars.watchFlashVars.isNoMarquee && !this.flashVars.watchFlashVars.isEditMode && !this.flashVars.watchFlashVars.isOwnerThreadEditMode && CrossSharedObject.isPersistable){
+ onMarqueePlayerLoaded = function():void{ //MethodID:80, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 94
+ if(nicosClient) nicosClient.marqueePlayer = INicoMarqueePlayer(marqueeClient.marqueePlayer);
+
+ if(hirobaConnectorClient) hirobaConnectorClient.insertItemOnMarquee_0 = INicoMarqueePlayer(marqueeClient.marqueePlayer).interruptContent;
+
+ if(playlistController) playlistController.marqueeClient = marqueeClient;
+ pluginClient.setProperty("marqueeClient", marqueeClient);
+ commentRouter.addMarqueePlayer(marqueeClient.marqueePlayer);
+ };
+
+ if(!this.marqueeClient) this.marqueeClient = new MarqueeClient(this.configure.MARQUEE_PLAYER_URL, this.playerVersion, this.playerInfo, this.nicoViewController.marqueeBase, this.videoLayerManager, this.playerConfig, this.initializeInfo, onMarqueePlayerLoaded);
+
+ if(this.nicosClient) this.nicosClient.marqueePlayer = INicoMarqueePlayer(this.marqueeClient.marqueePlayer);
+
+ this.marqueeClient.videoController = this.videoController;
+ this.marqueeClient.flashVars = this.flashVars;
+ this.nicoViewControllerClient.marqueeClient = this.marqueeClient;
+ }
+
+ if(!this.flashVars.watchFlashVars.isNoAppli && !this.pluginClient.hasInitialized("videoDetail")) this.pluginClient.setProperty("videoDetail", new VideoDetail(this.flashVars.category, this.flashVars.videoDetail));
+ function():void{ //MethodID:81, LocalCount= 5 , MaxScope= 0, MaxStack= 23, CodeLength= 193
+ if(_isPlaylist) return;
+
+ var hug1:* = new RemoconNotifier(configure.REMOCON_ALERT_SWF_URL + "?" + playerVersion.remoconAlert);
+ var hug2:* = new RemoconFullScreenKeeper(playerConfig, externalClient);
+ var hug3:* = new RemoconPlayerStateObserver(externalClient.udpateRemoconState, hug1, hug2);
+
+ commentRouter.onCommentPostErorr.add(hug3.onCommentRouterPostError);
+
+ var hug4:* = new RemoconClient(hug3, hug1, RemoconState.instance);
+
+ RemoconReceiver.initialize({videoController:videoController, playerConfig:playerConfig, commentRouter:commentRouter, isPremium:initializeInfo.isPremium, stateObserver:hug3, notifier:hug1, userID:initializeInfo.userID, userNasme:initializeInfo.nickname, commentShutter:commentShutter, audioShutter:audioShutter, fullScreenKeeper:hug2}, defineRemoconMethods);
+ hug2.start();
+
+ nicoViewControllerClient.remoconClient = hug4;
+ }();
+
+ this.nicoViewControllerClient.defaultMylistAppender = new DefaultMylistAppender(HTTPUtils.loadJSON, this.configure.MYLIST_ADD_API_URL, this.getFLV.threadID, this.flashVars.watchFlashVars.noDeflistAdd, this.flashVars.watchFlashVars.csrfToken);
+
+ if(this.nicoViewControllerClient.videoenderTesterConfig == null){
+ if(this._isPlaylist){
+ isUseVideoEnder = (this.playlistFlashVars && this.playlistFlashVars.useVideoEnder);
+ }else{
+ isUseVideoEnder = (this.flashVars.watchFlashVars && this.flashVars.watchFlashVars.useVideoEnder);
+ }
+
+ this._videoenderTesterConfig = new VideoenderTesterConfig(isUseVideoEnder);
+ this.nicoViewControllerClient.videoenderTesterConfig = this._videoenderTesterConfig;
+ }
+
+ EventSequence.current.next();
+ }
+
+ private function initializeSponsorVideo():void
+ { //MethodID:85, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 169
+ internal var url:String; //slotID:1
+ internal var info:GetSponsorInfo; //slotID:2
+
+ info = null;
+ this.nicoViewControllerClient.getSponsorInfo = null;
+
+ if(!this.isThumbWatchMode && (this.flashVars.isMymemory || this.flashVars.watchFlashVars.isEditMode || this.flashVars.watchFlashVars.isOwnerThreadEditMode)){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ url = StringUtils.joinQuery(this.configure.GETSPONSOR_API_URL, {limit:"4", videoid:this.flashVars.originalVideoID});
+ info = new GetSponsorInfo(url, function(hug1:Boolean):void{ //MethodID:84, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 213
+ internal var succeeded:Boolean; //slotID:1
+ internal var layer:*; //slotID:2
+ internal var userSponsorSWFURL:*; //slotID:3
+ internal var otherSponsorLink:*; //slotID:4
+ internal var youAlsoLink:*; //slotID:5
+
+ layer = undefined;
+ otherSponsorLink = undefined;
+ youAlsoLink = undefined;
+ succeeded = hug1;
+
+ if(!succeeded || (info.sponsorInfoList.length == 0)) return;
+
+ layer = videoLayerManager.createOptionalLayer(VideoLayerManager.OPTIONAL_LAYER_SPONSORVIDEOLAYER);
+ userSponsorSWFURL = StringUtils.joinQuery(configure.USERSPONSOR_MOVIE_URL, {t:playerVersion.userSponsorMovie});
+ otherSponsorLink = (StringUtils.joinQuery(configure.OTHERSPONSOR_URL, {vid:flashVars.originalVideoID}) + "&video_player");
+ youAlsoLink = (StringUtils.joinQuery(configure.OTHERSPONSOR_URL, {vid:flashVars.originalVideoID}) + "&video_player_also");
+
+ if(video.hasLoaded){
+ HTTPUtils.loadSWF(function(hug1:*):void{ //MethodID:83, LocalCount= 2 , MaxScope= 0, MaxStack= 8, CodeLength= 76
+ if(hug1){
+ userSponsorVideo = IUserSponsorVideo(hug1);
+
+ userSponsorVideo.initialize(new UserSponsorVideoClient(info, layer, otherSponsorLink, youAlsoLink, ICapturableVideoContainer(videoController.videoWrapper), vposWatcher));
+ video.appendVideo(ChildVideoName.USER_SPONSOR, userSponsorVideo);
+ }
+ }, userSponsorSWFURL, {});
+ }else{
+ video.appendVideo(ChildVideoName.USER_SPONSOR, userSponsorVideo);
+ }
+ });
+
+ this.nicoViewControllerClient.getSponsorInfo = info;
+
+ EventSequence.current.next();
+ }
+
+ private function loadConfirm():void
+ { //MethodID:87, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 24
+ this.videoLoadGuardian.loadStart(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:86, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 144
+ var hug2:* = undefined;
+
+ if(hug1){
+ EventSequence.current.next();
+ }else if(!isThumbWatchMode){
+ if(_isPlaylist && playlistController){
+ playlistController.onError(PlaylistErrorManager.VIDEO_LOAD_STOP);
+ }else{
+ hug2 = _playerPageMyselfURL;
+
+ SystemMessage.instance.alert(("<p><b>" + __MSG__("動画の読み込みができません。") + "</b></p>" + "<p>" + __MSG__("別のタブかウィンドウで、動画をいくつか読み込み中です。<br />") + __MSG__("読み込みが完了してから再度アクセスしてください。<br />") + "<br />") + __MSG__("<a href=\"[[url]]\">リロードする</a>", hug2) + "</p>");
+ }
+ }
+ }));
+ }
+
+ private function initializePlugin():void
+ { //MethodID:91, LocalCount= 2 , MaxScope= 2, MaxStack= 9, CodeLength= 208
+ internal var loader:ApplibarLoader; //slotID:1
+
+ loader = null;
+
+ if(this.flashVars.watchFlashVars.isNoAppli || this.flashVars.watchFlashVars.isEditMode || this.flashVars.watchFlashVars.isOwnerThreadEditMode || !CrossSharedObject.isPersistable){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ loader = new ApplibarLoader(this.configure.APPLIBAR_URL, {v:this.playerVersion.applibar}, this.initializeInfo.userID, this.flashVars.watchFlashVars.bootApp, this.playerConfig, this.flashVars.watchFlashVars.appliInstalled, this.flashVars.watchFlashVars.isAppliPromotion);
+
+ loader.onLoaded.add(function(hug1:Boolean):void{ //MethodID:88, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 26
+ if(!hug1) return;
+
+ nicoViewControllerClient.applibarLoader = loader;
+
+ loader.setPluginClient(pluginClient);
+ });
+ loader.onPageOpen.add(function():void{ //MethodID:89, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 18
+ if(videoController.isPlaying) videoController.stop();
+ });
+ this._playlistSequences.forEach(function(hug1:Function, hug2:int, hug3:Array):Boolean{ //MethodID:90, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 22
+ if(hug1 == initializePlugin){
+ _playlistSequences.splice(hug2, 1);
+
+ return false;
+ }
+
+ return true;
+ });
+ EventSequence.current.next();
+ }
+
+ private function _delayVideo():void
+ { //MethodID:93, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 101
+ internal var delay:Number; //slotID:1
+ internal var timer:Timer; //slotID:2
+ internal var handler:Function; //slotID:3
+
+ timer = null;
+ handler = null;
+ delay = PlayDelay.getPlayDelayTime(this.initializeInfo.isPremium, this.isThumbWatchMode);
+ timer = new Timer(delay, 1);
+ handler = EventSequence.bind(function():void{ //MethodID:92, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 40
+ timer.stop();
+ timer.reset();
+ timer.removeEventListener(TimerEvent.TIMER_COMPLETE, handler);
+ EventSequence.current.next();
+ });
+ timer.addEventListener(TimerEvent.TIMER_COMPLETE, handler);
+ timer.start();
+ }
+
+ private function _loadVideo():void
+ { //MethodID:97, LocalCount= 5 , MaxScope= 2, MaxStack= 10, CodeLength= 779
+ internal var barrier:EventBarrier; //slotID:1
+ internal var succeeded_all:Boolean; //slotID:2
+ internal var bgmNeeded:Boolean; //slotID:3
+ internal var bgmVideos:Object; //slotID:4
+ internal var cmVideos:Object; //slotID:5
+ internal var bgmInfo:BGMVideoInfo; //slotID:6
+ internal var bgmVideo:IVideo; //slotID:7
+ internal var container:Sprite; //slotID:8
+
+ succeeded_all = false;
+ bgmNeeded = false;
+ bgmVideos = null;
+ cmVideos = null;
+ bgmInfo = null;
+ bgmVideo = null;
+ container = null;
+
+ if(this._logManager) this._logManager.observer.onVideoLoadStarted();
+
+ barrier = new EventBarrier();
+ succeeded_all = true;
+
+ this.systemMessage.informln(__MSG__("動画の読み込みを開始"));
+
+ if((this.getFLV.videoProtocol == "rtmp") || (this.getFLV.videoProtocol == "rtmpe") || (this.getFLV.videoProtocol == "rtmpt") || (this.getFLV.videoProtocol == "rtmpte")) this.systemMessage.informln(__MSG__("動画に接続"));
+
+ this.video.isRetryable = false;
+
+ this.video.load(barrier.bind(function(hug1:Boolean):void{ //MethodID:94, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 110
+ succeeded_all = (succeeded_all && hug1);
+
+ if(!hug1 && !isThumbWatchMode && _logManager) _logManager.observer.onVideoLoadErrorOccurred();
+
+ if(_startVposConfig.halfwayStartEnabled) _startVposConfig.judgebyVideoLength(video);
+
+ if(!_startVposConfig.halfwayStartEnabled){
+ nicoViewController.initVideoEventPipe(vposWatcher);
+ nicoViewController.onVideoInitialized(hug1);
+ }
+
+ _videoLoadSucceeded = hug1;
+ }));
+
+ bgmNeeded = Boolean(this.BGMVideoInfos.length != 0);
+
+ bgmVideos = {};
+ cmVideos = {};
+
+ if(this.flashVars.watchFlashVars && !this.flashVars.watchFlashVars.isOwnerThreadEditMode || this.flashVars.thumbFlashVars && this.BGMVideoInfos && bgmNeeded){
+ for each(bgmInfo in this.BGMVideoInfos){
+ if(bgmInfo.type == BGMVideoInfo.TYPE_BGM){
+ container = new Sprite();
+
+ container.graphics.beginFill(0);
+ container.graphics.drawRect(0, 0, NicoSConstants.ATBGM_VIDEO_WIDTH, NicoSConstants.ATBGM_VIDEO_HEIGHT);
+ }else{
+ container = new MovieClip();
+
+ container.graphics.beginFill(0);
+ container.graphics.drawRect(0, 0, NicoSConstants.ATCM_VIDEO_WIDTH, NicoSConstants.ATCM_VIDEO_HEIGHT);
+ }
+
+ container.graphics.endFill();
+
+ switch(bgmInfo.movieType){
+ case VideoType.FLV:
+ case VideoType.MP4:
+ bgmVideo = new FLVVideo(bgmInfo.URL, container, -1);
+ break;
+ case VideoType.SWF:
+ bgmVideo = new SWFVideo(bgmInfo.URL, container, NaN, false, "", null, "", bgmInfo.isAS3);
+ break;
+ default:
+ throw new Error("未定義のBGMタイプ:" + bgmInfo.movieType);
+ break;
+ }
+
+ if(bgmInfo.type == BGMVideoInfo.TYPE_BGM){
+ bgmVideos[bgmInfo.ID] = bgmVideo;
+ }else{
+ cmVideos[bgmInfo.ID] = bgmVideo;
+ }
+
+ bgmVideo.load(barrier.bind(function(hug1:Boolean):void{ //MethodID:95, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 102
+ if(!succeeded_all) return;
+
+ succeeded_all = (succeeded_all && hug1);
+
+ if(!hug1){
+ if(!isThumbWatchMode) SystemMessage.instance.alert("<p><b>" + __MSG__("引用動画の読み込みに失敗") + "</b></p>" + "<p>" + __MSG__("問題解消に向けて努力しております。") + "<br />" + __MSG__("しばらく時間をおいて再度アクセスしてみて下さい。") + "</p>");
+
+ return;
+ }
+ }));
+ }
+ }
+
+ barrier.finish(EventSequence.bind(function():void{ //MethodID:96, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 145
+ var hug1:* = undefined;
+ var hug2:* = undefined;
+ _wholeVideoLoadSucceeded = succeeded_all;
+
+ if(!succeeded_all){
+ EventSequence.current.next();
+
+ return;
+ }
+
+ if(bgmNeeded){
+ hug1 = {};
+
+ for(hug2 in cmVideos){
+ hug1[hug2] = cmVideos[hug2].movieClip;
+ }
+
+ nicosClient.setBGMVideos(bgmVideos, hug1);
+ }
+
+ if(getFLV.deleted == 0) PlayDelay.countUp();
+
+ if(marqueeClient) marqueeClient.load();
+ EventSequence.current.next();
+ }));
+ }
+
+ private function initializeLogger():void
+ { //MethodID:98, LocalCount= 1 , MaxScope= 1, MaxStack= 13, CodeLength= 63
+ this._logManager.initialize(this.initializeInfo, this.configure, this.flashVars, this.getFLV, this.playerConfig, this.playerInfo, this, this.isThumbWatchMode, this.video, this, this._isPlaylist, this._videoenderTesterConfig);
+ EventSequence.current.next();
+ }
+
+ private function initializeCommentLists():void
+ { //MethodID:102, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 241
+ internal var barrier:EventBarrier; //slotID:1
+ internal var error:CommentStorageError; //slotID:2
+ internal var init_handler:Function; //slotID:3
+
+ barrier = null;
+ error = null;
+ init_handler = null;
+ init_handler = function(hug1:CommentStorageError):void{ //MethodID:99, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 38
+ var hug2:CommentStorageError = hug1;
+ error = hug2;
+
+ if(!(error || hug2)) return;
+ barrier.finish();
+ };
+
+ if(this.nicosClient) this.nicosClient.setup();
+ this.systemMessage.informln(__MSG__("コメントサーバーへの接続を開始"));
+
+ barrier = new EventBarrier();
+ error = null;
+
+ this.commentList.onCommentPostFinished.add(function(hug1:String, hug2:int, hug3:int):void{ //MethodID:100, LocalCount= 5 , MaxScope= 0, MaxStack= 2, CodeLength= 63
+ var hug4:XMLList = null;
+
+ if(hug2 == MessageServerClient.POST_INVALID_THREAD){
+ hug4 = playerInfo.getThreadError;
+
+ if(hug4 && (hug4.post_invalid_thread != "")) SystemMessage.instance.alert(hug4.post_invalid_thread);
+ }
+ });
+ this.commentList.initialize(barrier.bind(init_handler));
+
+ if(this.flashVars.isCommunityThread) this.privateCommentList.initialize(barrier.bind(init_handler));
+
+ if(this.nicoSCommentList) this.nicoSCommentList.initialize(barrier.bind(init_handler));
+
+ if(this.flashVars.hasOwnerThread) this.ownerCommentList.initialize(barrier.bind(init_handler));
+ barrier.finish(function():void{ //MethodID:101, LocalCount= 4 , MaxScope= 0, MaxStack= 4, CodeLength= 201
+ var hug1:String = null;
+
+ if(error){
+ if(error.isInLowerLayer){
+ systemMessage.informln(__MSG__("コメントサーバーへの接続に失敗"));
+ }else{
+ systemMessage.informln(threadStatusCodeToMessage(error.status));
+ }
+
+ nicoViewController.onCommentListInitialized(false);
+
+ return;
+ }
+
+ systemMessage.informln(__MSG__("コメントサーバーへの接続に成功"));
+
+ if(flashVars.thumbFlashVars && flashVars.thumbFlashVars.thumbComment || !isThumbWatchMode && !flashVars.isMymemory){
+ for(hug1 in commentListContainer){
+ commentRouter.add(hug1, commentListContainer[hug1]);
+ }
+ }
+
+ nicoViewController.onCommentListInitialized(true);
+ setupCommentListEventPipes();
+ });
+ EventSequence.current.next();
+ }
+
+ private function setupCommentListEventPipes():void
+ { //MethodID:103, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 51
+ var hug1:ICommentList = null;
+
+ this.nicoViewController.initCommentEventPipe();
+
+ for each(hug1 in this.commentListContainer){
+ hug1.serveCommentList();
+ }
+ }
+
+ private function beginToPlayVideo():void
+ { //MethodID:108, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 216
+ internal var alreadyBegan:Boolean; //slotID:1
+ internal var begin:Function; //slotID:2
+ internal var vpos:Number; //slotID:3
+
+ alreadyBegan = false;
+ vpos = NaN;
+ begin = function():void{ //MethodID:104, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 129
+ if(_startVposConfig.halfwayStartEnabled) nicoViewController.initVideoEventPipe(vposWatcher);
+
+ if(isThumbWatchMode){
+ if(!flashVars.thumbFlashVars.isP4Mode) videoController.play();
+ }else{
+ videoController.startToPlay(_startVposConfig.isAutoPlay || (nicoViewControllerClient.initializeInfo.isPremium && playerConfig.autoPlay));
+
+ if(!_wholeVideoLoadSucceeded) videoController.stop();
+ }
+
+ if(_startVposConfig.halfwayStartEnabled) nicoViewController.onVideoInitialized(_videoLoadSucceeded);
+ };
+
+ this.externalClient.onPlayerReady();
+
+ if(this.isThumbWatchMode){
+ begin();
+
+ return;
+ }
+
+ if(this.flashVars.watchFlashVars.jumpReturnVideoID){
+ vpos = this.flashVars.watchFlashVars.jumpPlayLength;
+
+ if(this._startVposConfig.halfwayStartEnabled) vpos += this.flashVars.watchFlashVars.jumpVPosPlayFrom;
+
+ vpos *= 1000;
+
+ this.vposWatcher.addWatchPoint(function():void{ //MethodID:106, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 97
+ internal var params:Object; //slotID:1
+
+ params = null;
+
+ videoController.stop();
+
+ params = {};
+
+ if(flashVars.watchFlashVars.jumpVPosReturnTo > 0) params.from = flashVars.watchFlashVars.jumpVPosReturnTo;
+ SystemMessage.instance.informJumpMessage(function():void{ //MethodID:105, LocalCount= 4 , MaxScope= 0, MaxStack= 10, CodeLength= 109
+ var hug1:Object = jumper.tossedObject;
+ var hug2:String = flashVars.watchFlashVars.jumpReturnVideoID;
+ var hug3:Object = {};
+
+ if(hug1 && hug1.jumpHistory) hug3 = hug1.jumpHistory;
+
+ hug3[flashVars.watchID] = true;
+
+ jumper.jump(hug2, params, false, {jumpFrom:flashVars.watchID, jumpHistory:hug3, jumpHash_:(hug1 ? hug1.jumpHash : undefined)});
+ }, (flashVars.watchFlashVars.jumpReturnMessage || __MSG__("元の動画にジャンプします")));
+ }, vpos, 0x7FFFFFFF);
+ }
+
+ if(!this._startVposConfig.halfwayStartEnabled){
+ begin();
+
+ return;
+ }
+
+ alreadyBegan = false;
+
+ EventPipe.serial(new EventChunk(this.video, ["onVideoSeeked"]), this.videoController, EventSequence.bind(function(hug1:String, hug2:Array):EventResult{ //MethodID:107, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 28
+ if(!alreadyBegan){
+ alreadyBegan = true;
+
+ begin();
+ }
+
+ return EventResult.BREAK;
+ }));
+ this.videoController.seek(this._startVposConfig.fromMsec, true);
+ }
+
+ private function initializeCommentLayerView():void
+ { //MethodID:109, LocalCount= 2 , MaxScope= 1, MaxStack= 7, CodeLength= 343
+ this.commentLayer = new CommentLayer(this.videoLayerManager.commentLayer, this.playerConfig, this.initializeInfo.isPremium);
+
+ this.commentLayer.addLayer(CommentLayerID.MAIN);
+ this.commentLayer.addLayer(CommentLayerID.OWNER);
+
+ var hug1:Object = {};
+
+ if(this.flashVars.isCommunityThread){
+ hug1[CommentLayerID.MAIN] = [CommentConstants.CL_PRIVATE, CommentConstants.CL_LOCAL];
+ hug1[CommentLayerID.OWNER] = [CommentConstants.CL_OWNER];
+ hug1[CommentLayerID.OPTION] = [CommentConstants.CL_MAIN];
+
+ this.commentLayer.addLayer(CommentLayerID.OPTION, 0);
+ this.commentLayer.setOptionalLayer(CommentLayerID.OPTION);
+ }else{
+ hug1[CommentLayerID.MAIN] = [CommentConstants.CL_MAIN, CommentConstants.CL_LOCAL, CommentConstants.CL_NICOS];
+ hug1[CommentLayerID.OWNER] = [CommentConstants.CL_OWNER];
+ }
+
+ this.commentLayerView = new CommentLayerView(this, this.video, VideoLayerConstants.COMMENT_LAYER_SD_WIDTH, VideoLayerConstants.COMMENT_LAYER_SD_HEIGHT, this.getFLV.videoLength);
+ this.commentViewTransformer = new CommentViewTransformer(hug1, this.commentLayer, this.commentLayerView, (this.nicosClient ? this.nicosClient.player : null));
+
+ if(this.isThumbWatchMode && this.flashVars.thumbFlashVars && this.flashVars.thumbFlashVars.isP4Mode) this.commentViewTransformer.setP4Mode();
+ }
+
+ private function threadStatusCodeToMessage(hug1:int):String
+ { //MethodID:110, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 415
+ var hug2:XMLList = null;
+ var hug3:int = hug1;
+
+ switch(hug3){
+ case MessageServerClient.THREAD_FOUND:
+ return __MSG__("...");
+ case MessageServerClient.THREAD_INVALID:
+ return __MSG__("メッセージサーバーへの接続に失敗");
+ case MessageServerClient.THREAD_NOT_FOUND:
+ hug2 = this.playerInfo.getThreadError;
+
+ if(hug2 && (hug2.thread_not_found != "")) SystemMessage.instance.alert(hug2.thread_not_found);
+
+ return __MSG__("スレッドが見つかりません");
+ case MessageServerClient.THREAD_VERSION:
+ return __MSG__("プレイヤーのバージョンが不正");
+ case MessageServerClient.THREAD_INVALID_ADMINKEY:
+ return __MSG__("AdminKeyが不正");
+ case MessageServerClient.THREAD_TOO_OLD_ADMINKEY:
+ return __MSG__("AdminKeyが失効");
+ case MessageServerClient.THREAD_INVALID_WAYBACKKEY:
+ return __MSG__("WaybackKeyが不正");
+ case MessageServerClient.THREAD_TOO_OLD_WAYBACKKEY:
+ return __MSG__("WaybackKeyが失効");
+ case MessageServerClient.THREAD_INVALID_THREADKEY:
+ return __MSG__("ThreadKeyが不正");
+ case MessageServerClient.THREAD_TOO_OLD_THREADKEY:
+ return __MSG__("ThreadKeyが失効");
+ default:
+ return __MSG__("不明なエラー:code=[code]", hug1);
+ break;
+ }
+ }
+
+ private function _loadThumbViewSWF():void
+ { //MethodID:112, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
+ HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:111, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 73
+ if(!hug1) throw new Error("NicoPlayer._loadThumbViewSWF: load failure.");
+
+ if(!hug1 is MovieClip) throw new Error("NicoPlayer._loadThumbViewSWF: content is not MovieClip.");
+ addChild(hug1 as DisplayObject);
+
+ (hug1 as DisplayObject).visible = false;
+ nicoViewControllerClient.viewRoot = hug1;
+
+ EventSequence.current.next();
+ }), this.configure.THUMBPLAYER_VIEW_URL, {t:this.playerVersion.thumbplayerView});
+ }
+
+ private function _loadThumbControllerSWF():void
+ { //MethodID:114, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
+ HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:113, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 67
+ if(!hug1) throw new Error("NicoPlayer._loadThumbControllerSWF: load failure.");
+
+ nicoViewController = INicoViewController(hug1);
+
+ if(!nicoViewController) throw new Error("NicoPlayer._loadThumbControllerSWF: content is not INicoViewController.");
+ nicoViewController.startInit(nicoViewControllerClient);
+ EventSequence.current.next();
+ }), this.configure.THUMBPLAYER_CONTROLLER_URL, {t:this.playerVersion.thumbplayerController});
+ }
+
+ private function _loadThumbVideoInfo():void
+ { //MethodID:116, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 148
+ internal var apiParams:Object; //slotID:1
+
+ apiParams = {};
+ apiParams["as3"] = "1";
+ apiParams["v"] = this.flashVars.watchID;
+ apiParams["k"] = this.flashVars.thumbFlashVars.thumbPlayKey;
+
+ if(this.flashVars.forceLowMode) apiParams["lo"] = "1";
+
+ if(this.flashVars.economyMode) apiParams["eco"] = this.flashVars.economyMode;
+
+ this.getFLV = new GetFLV(this.configure.THUMBWATCH_URL, apiParams, EventSequence.bind(function(hug1:Boolean):void{ //MethodID:115, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 41
+ nicoViewControllerClient.getFLVData = getFLV;
+ initializeInfo = InitializeInfo.getInstance();
+ nicoViewControllerClient.initializeInfo = initializeInfo;
+
+ EventSequence.current.next();
+ }));
+ }
+
+ private function _initializeModelAndViewThumbWatch():void
+ { //MethodID:119, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 118
+ if(this.flashVars.thumbFlashVars.thumbComment){
+ this.commentRouter = new CommentRouter(this.flashVars, this.playerConfig, null, this.nicosClient, this.initializeInfo.isPremium);
+
+ this.commentRouter.onCommentPostErorr.add(function(hug1:String):void{ //MethodID:117, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 346
+ var hug2:String = hug1;
+
+ switch(hug2){
+ case CommentRouter.ERROR_POST_184:
+ systemMessage.informComment(__MSG__("チャンネルとコミュニティ動画では184コマンドを使用できません。"));
+ break;
+ case CommentRouter.ERROR_POST_BUTTON_ARGUMENTS:
+ case CommentRouter.ERROR_POST_BUTTON_ONCE:
+ case CommentRouter.ERROR_POST_BUTTON_PREMIUM_ONLY:
+ case CommentRouter.ERROR_POST_BUTTON_DISABLED:
+ systemMessage.informComment(__MSG__("@ボタンは、使用できません。"));
+ break;
+ case CommentRouter.ERROR_POST_AT_COMMENT_UNDEFINED:
+ systemMessage.informComment(__MSG__("その@コメントは存在しないか、投稿者以外は使えないかのどちらかです。"));
+ break;
+ case CommentRouter.ERROR_POST_INITIALIZE:
+ systemMessage.informComment(__MSG__("コメント投稿の準備が未完了です。"));
+ break;
+ case CommentRouter.ERROR_POST_SAME_COMMENT:
+ systemMessage.informComment(__MSG__("同じコメントを連続で投稿することができません。"));
+ break;
+ case CommentRouter.ERROR_POST_CHANNEL_FILTER:
+ systemMessage.informComment(__MSG__("入力されたコメントはチャンネルにより規制されています。"));
+ break;
+ default:
+ break;
+ }
+ });
+ this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{ //MethodID:118, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
+ if(hug1.macroName == "ピザ") systemMessage.informComment("@ピザは、使用できません。");
+ });
+
+ if(this.nicosClient) this.nicosClient.commentRouter = this.commentRouter;
+
+ this.nicoViewControllerClient.commentRouter = this.commentRouter;
+ }
+
+ EventSequence.current.next();
+ }
+ }
+}
+
+//■script002■
+
+package{
+
+ import jp.nicovideo.nicoplayer.NicoPlayer
+
+ //■class(instance)_index:2
+ public class nicoplayer extends NicoPlayer
+ {
+ //static constructor
+ public static function nicoplayer$cinit()
+ { //MethodID:121, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function nicoplayer()
+ { //MethodID:122, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+ }
+}
+
+//■script003■
+
+package jp.nicovideo.ext.config{
+
+ //■class(instance)_index:3
+ public interface IThumbConfig
+ {
+ //static constructor
+ public static function IThumbConfig$cinit()
+ { //MethodID:124, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function get nicovideoURL():String; //MethodID:125, dispID:0
+
+ function get playerURL():String; //MethodID:126, dispID:0
+
+ //constructor
+ public function IThumbConfig(); //MethodID:127, dispID:0
+ }
+}
+
+//■script004■
+
+package jp.nicovideo.nicoplayer.models.flashvars{
+
+ //■class(instance)_index:4
+ public class NicoFlashVars extends Object
+ {
+ //static constructor
+ public static function NicoFlashVars$cinit()
+ { //MethodID:129, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
+ LEAF_NO_LOCK = 0;
+ LEAF_HIDDEN_MENU = 1;
+ LEAF_DISABLE = 2;
+ }
+
+ //static variables/etc.
+ public static const LEAF_NO_LOCK:uint = 0; //slotID:1
+ public static const LEAF_HIDDEN_MENU:uint = 1; //slotID:2
+ public static const LEAF_DISABLE:uint = 2; //slotID:3
+
+ //variables/etc.
+ private var _watchFlashVars:WatchFlashVars; //slotID:0
+ private var _thumbFlashVars:ThumbFlashVars; //slotID:0
+ private var _watchID:String; //slotID:0
+ private var _originalVideoID:String; //slotID:0
+ private var _mylistCount:uint; //slotID:0
+ private var _videoType:String; //slotID:0
+ private var _videoTitle:String = ""; //slotID:0
+ private var _videoDescription:String = ""; //slotID:0
+ private var _isMymemory:Boolean; //slotID:0
+ private var _waitsSWFVideoInit:Boolean; //slotID:0
+ private var _forceLowMode:Boolean; //slotID:0
+ private var _economyMode:String; //slotID:0
+ private var _playerVersionUpdated:String; //slotID:0
+ private var _playerInfoUpdated:String; //slotID:0
+ private var _isCommunityVideo:Boolean; //slotID:0
+ private var _isCommunityThread:Boolean; //slotID:0
+ private var _hasOwnerThread:Boolean; //slotID:0
+ private var _isDeepenedCommentForce:Boolean; //slotID:0
+ private var _isChannel:Boolean; //slotID:0
+ private var _isNoComment:Boolean; //slotID:0
+ private var _importedBGMVideos:Array; //slotID:0
+ private var _category:String; //slotID:0
+ private var _categoryGroup:String; //slotID:0
+ private var _communityID:String; //slotID:0
+ private var _communityGlobalID:String; //slotID:0
+ private var _isNoCommand:Boolean; //slotID:0
+ private var _isNoAtComment:Boolean; //slotID:0
+ private var _isWide:Boolean; //slotID:0
+ private var _countryCode:String; //slotID:0
+ private var _videoDetail:Object; //slotID:0
+ private var _leafSwitch:uint = 0; //slotID:0
+ private var _noRelation:Boolean; //slotID:0
+ private var _noRelatedVideo:Boolean; //slotID:0
+
+ public function get watchID():String
+ { //MethodID:130, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._watchID;
+ }
+
+ internal function set watchID(hug1:String):void
+ { //MethodID:131, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._watchID = hug1;
+ }
+
+ public function get originalVideoID():String
+ { //MethodID:132, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._originalVideoID;
+ }
+
+ internal function set originalVideoID(hug1:String):void
+ { //MethodID:133, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._originalVideoID = hug1;
+ }
+
+ public function get mylistCount():uint
+ { //MethodID:134, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._mylistCount;
+ }
+
+ internal function set mylistCount(hug1:uint):void
+ { //MethodID:135, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._mylistCount = hug1;
+ }
+
+ public function get videoType():String
+ { //MethodID:136, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._videoType;
+ }
+
+ internal function set videoType(hug1:String):void
+ { //MethodID:137, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._videoType = hug1;
+ }
+
+ public function get videoTitle():String
+ { //MethodID:138, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._videoTitle;
+ }
+
+ internal function set videoTitle(hug1:String):void
+ { //MethodID:139, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._videoTitle = hug1;
+ }
+
+ public function get videoDescription():String
+ { //MethodID:140, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._videoDescription;
+ }
+
+ internal function set videoDescription(hug1:String):void
+ { //MethodID:141, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._videoDescription = hug1;
+ }
+
+ public function get isMymemory():Boolean
+ { //MethodID:142, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isMymemory;
+ }
+
+ internal function set isMymemory(hug1:Boolean):void
+ { //MethodID:143, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isMymemory = hug1;
+ }
+
+ public function get waitsSWFVideoInit():Boolean
+ { //MethodID:144, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._waitsSWFVideoInit;
+ }
+
+ internal function set waitsSWFVideoInit(hug1:Boolean):void
+ { //MethodID:145, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._waitsSWFVideoInit = hug1;
+ }
+
+ public function get forceLowMode():Boolean
+ { //MethodID:146, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._forceLowMode;
+ }
+
+ internal function set forceLowMode(hug1:Boolean):void
+ { //MethodID:147, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._forceLowMode = hug1;
+ }
+
+ public function get economyMode():String
+ { //MethodID:148, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._economyMode;
+ }
+
+ internal function set economyMode(hug1:String):void
+ { //MethodID:149, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._economyMode = hug1;
+ }
+
+ public function get playerVersionUpdated():String
+ { //MethodID:150, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._playerVersionUpdated;
+ }
+
+ internal function set playerVersionUpdated(hug1:String):void
+ { //MethodID:151, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._playerVersionUpdated = hug1;
+ }
+
+ public function get playerInfoUpdated():String
+ { //MethodID:152, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._playerInfoUpdated;
+ }
+
+ internal function set playerInfoUpdated(hug1:String):void
+ { //MethodID:153, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._playerInfoUpdated = hug1;
+ }
+
+ public function get isCommunityVideo():Boolean
+ { //MethodID:154, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isCommunityVideo;
+ }
+
+ internal function set isCommunityVideo(hug1:Boolean):void
+ { //MethodID:155, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isCommunityVideo = hug1;
+ }
+
+ public function get isCommunityThread():Boolean
+ { //MethodID:156, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isCommunityThread;
+ }
+
+ internal function set isCommunityThread(hug1:Boolean):void
+ { //MethodID:157, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isCommunityThread = hug1;
+ }
+
+ public function get hasOwnerThread():Boolean
+ { //MethodID:158, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._hasOwnerThread;
+ }
+
+ internal function set hasOwnerThread(hug1:Boolean):void
+ { //MethodID:159, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._hasOwnerThread = hug1;
+ }
+
+ public function get isDeepenedCommentForce():Boolean
+ { //MethodID:160, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isDeepenedCommentForce;
+ }
+
+ internal function set isDeepenedCommentForce(hug1:Boolean):void
+ { //MethodID:161, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isDeepenedCommentForce = hug1;
+ }
+
+ public function get importedBGMVideos():Array
+ { //MethodID:162, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._importedBGMVideos;
+ }
+
+ internal function set importedBGMVideos(hug1:Array):void
+ { //MethodID:163, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._importedBGMVideos = hug1;
+ }
+
+ public function get isChannel():Boolean
+ { //MethodID:164, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isChannel;
+ }
+
+ internal function set isChannel(hug1:Boolean):void
+ { //MethodID:165, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isChannel = hug1;
+ }
+
+ public function get isNoComment():Boolean
+ { //MethodID:166, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isNoComment;
+ }
+
+ internal function set isNoComment(hug1:Boolean):void
+ { //MethodID:167, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isNoComment = hug1;
+ }
+
+ public function get category():String
+ { //MethodID:168, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._category;
+ }
+
+ internal function set category(hug1:String):void
+ { //MethodID:169, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._category = hug1;
+ }
+
+ public function get categoryGroup():String
+ { //MethodID:170, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._categoryGroup;
+ }
+
+ internal function set categoryGroup(hug1:String):void
+ { //MethodID:171, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._categoryGroup = hug1;
+ }
+
+ public function get watchFlashVars():WatchFlashVars
+ { //MethodID:172, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._watchFlashVars;
+ }
+
+ internal function set watchFlashVars(hug1:WatchFlashVars):void
+ { //MethodID:173, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._watchFlashVars = hug1;
+ }
+
+ public function get thumbFlashVars():ThumbFlashVars
+ { //MethodID:174, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._thumbFlashVars;
+ }
+
+ internal function set thumbFlashVars(hug1:ThumbFlashVars):void
+ { //MethodID:175, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._thumbFlashVars = hug1;
+ }
+
+ public function get communityID():String
+ { //MethodID:176, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._communityID;
+ }
+
+ internal function set communityID(hug1:String):void
+ { //MethodID:177, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._communityID = hug1;
+ }
+
+ public function get communityGlobalID():String
+ { //MethodID:178, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._communityGlobalID;
+ }
+
+ internal function set communityGlobalID(hug1:String):void
+ { //MethodID:179, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._communityGlobalID = hug1;
+ }
+
+ public function get isNoCommand():Boolean
+ { //MethodID:180, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isNoCommand;
+ }
+
+ internal function set isNoCommand(hug1:Boolean):void
+ { //MethodID:181, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isNoCommand = hug1;
+ }
+
+ public function get isNoAtComment():Boolean
+ { //MethodID:182, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isNoAtComment;
+ }
+
+ internal function set isNoAtComment(hug1:Boolean):void
+ { //MethodID:183, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isNoAtComment = hug1;
+ }
+
+ public function get isWide():Boolean
+ { //MethodID:184, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isWide;
+ }
+
+ internal function set isWide(hug1:Boolean):void
+ { //MethodID:185, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isWide = hug1;
+ }
+
+ public function get countryCode():String
+ { //MethodID:186, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._countryCode;
+ }
+
+ internal function set countryCode(hug1:String):void
+ { //MethodID:187, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._countryCode = hug1;
+ }
+
+ public function get videoDetail():Object
+ { //MethodID:188, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._videoDetail;
+ }
+
+ internal function set videoDetail(hug1:Object):void
+ { //MethodID:189, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._videoDetail = hug1;
+ }
+
+ public function get leafSwitch():uint
+ { //MethodID:190, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._leafSwitch;
+ }
+
+ internal function set leafSwitch(hug1:uint):void
+ { //MethodID:191, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._leafSwitch = hug1;
+ }
+
+ public function get forceRelationInvisible():Boolean
+ { //MethodID:192, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._noRelation;
+ }
+
+ internal function set forceRelationInvisible(hug1:Boolean):void
+ { //MethodID:193, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._noRelation = hug1;
+ }
+
+ public function get noRelatedVideo():Boolean
+ { //MethodID:194, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._noRelatedVideo;
+ }
+
+ internal function set noRelatedVideo(hug1:Boolean):void
+ { //MethodID:195, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._noRelatedVideo = hug1;
+ }
+
+ //constructor
+ public function NicoFlashVars()
+ { //MethodID:196, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+ }
+}
+
+//■script005■
+
+package jp.nicovideo.nicoplayer.models.video{
+
+ //■class(instance)_index:5
+ public class VideoType extends Object
+ {
+ //static constructor
+ public static function VideoType$cinit()
+ { //MethodID:198, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
+ FLV = "flv";
+ MP4 = "mp4";
+ SWF = "swf";
+ }
+
+ //static variables/etc.
+ public static const FLV:String = "flv"; //slotID:1
+ public static const MP4:String = "mp4"; //slotID:2
+ public static const SWF:String = "swf"; //slotID:3
+
+ //constructor
+ public function VideoType()
+ { //MethodID:199, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+ }
+}
+
+//■script006■
+
+package jp.nicovideo.nicoplayer.views.comment{
+
+ //■class(instance)_index:6
+ public class CommentLayerID extends Object
+ {
+ //static constructor
+ public static function CommentLayerID$cinit()
+ { //MethodID:201, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
+ MAIN = "main";
+ OWNER = "owner";
+ OPTION = "option";
+ }
+
+ //static variables/etc.
+ public static const MAIN:String = "main"; //slotID:1
+ public static const OWNER:String = "owner"; //slotID:2
+ public static const OPTION:String = "option"; //slotID:3
+
+ //constructor
+ public function CommentLayerID()
+ { //MethodID:202, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+ }
+}
+
+//■script007■
+
+package jp.nicovideo.nicoplayer.models.video.swf{
+
+ //■class(instance)_index:7
+ public interface ISWFVideoClient
+ {
+ //static constructor
+ public static function ISWFVideoClient$cinit()
+ { //MethodID:204, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function getSourceData(hug1:Function):void; //MethodID:205, dispID:0
+
+ //constructor
+ public function ISWFVideoClient(); //MethodID:206, dispID:0
+ }
+}
+
+//■script008■
+
+package jp.nicovideo.nicoplayer.models.video{
+
+ //■class(instance)_index:8
+ public interface ITimeline
+ {
+ //static constructor
+ public static function ITimeline$cinit()
+ { //MethodID:208, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function get length():Number; //MethodID:209, dispID:0
+
+ function get vpos():Number; //MethodID:210, dispID:0
+
+ function get isInitialized():Boolean; //MethodID:211, dispID:0
+
+ //constructor
+ public function ITimeline(); //MethodID:212, dispID:0
+ }
+}
+
+//■script009■
+
+package jp.nicovideo.nicoplayer.models.video{
+
+ import flash.display.DisplayObject
+ import jp.nicovideo.util.Functions
+
+ //■class(instance)_index:9
+ public interface IVideo implements ITimeline
+ {
+ //static constructor
+ public static function IVideo$cinit()
+ { //MethodID:214, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function load(hug1:Function):void; //MethodID:215, dispID:0
+
+ function play():void; //MethodID:216, dispID:0
+
+ function stop():void; //MethodID:217, dispID:0
+
+ function seek(hug1:Number):void; //MethodID:218, dispID:0
+
+ function resize(hug1:Number, hug2:Number):void; //MethodID:219, dispID:0
+
+ function get loadedLength():Number; //MethodID:220, dispID:0
+
+ function get isPlaying():Boolean; //MethodID:221, dispID:0
+
+ function get isPausing():Boolean; //MethodID:222, dispID:0
+
+ function get isSeeking():Boolean; //MethodID:223, dispID:0
+
+ function get isEnd():Boolean; //MethodID:224, dispID:0
+
+ function get isBuffering():Boolean; //MethodID:225, dispID:0
+
+ function set isLoop(hug1:Boolean):void; //MethodID:226, dispID:0
+
+ function set volume(hug1:Number):void; //MethodID:227, dispID:0
+
+ function get isControllable():Boolean; //MethodID:228, dispID:0
+
+ function get videoPlayerStatus():String; //MethodID:229, dispID:0
+
+ function get layer():DisplayObject; //MethodID:230, dispID:0
+
+ function get onVideoBufferingStarted():Functions; //MethodID:231, dispID:0
+
+ function get onVideoLoadComplete():Functions; //MethodID:232, dispID:0
+
+ function get contentWidth():int; //MethodID:233, dispID:0
+
+ function get contentHeight():int; //MethodID:234, dispID:0
+
+ //constructor
+ public function IVideo(); //MethodID:235, dispID:0
+ }
+}
+
+//■script010■
+
+package jp.nicovideo.nicoplayer.models.video{
+
+ import flash.display.DisplayObject
+ import jp.nicovideo.util.Functions
+
+ //■class(instance)_index:10
+ public interface IChildVideo implements IVideo
+ {
+ //static constructor
+ public static function IChildVideo$cinit()
+ { //MethodID:237, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function close():void; //MethodID:238, dispID:0
+
+ function get onVideoEnded():Functions; //MethodID:239, dispID:0
+
+ function get onVideoSeeked():Functions; //MethodID:240, dispID:0
+
+ function get onVideoSeeking():Functions; //MethodID:241, dispID:0
+
+ function get onVideoPlayed():Functions; //MethodID:242, dispID:0
+
+ function get onVideoStopped():Functions; //MethodID:243, dispID:0
+
+ function get onVideoError():Functions; //MethodID:244, dispID:0
+
+ function get source():DisplayObject; //MethodID:245, dispID:0
+
+ //constructor
+ public function IChildVideo(); //MethodID:246, dispID:0
+ }
+}
+
+//■script011■
+
+package jp.nicovideo.nicoplayer.models.video.swf{
+
+ //■class(instance)_index:11
+ public interface IGameRankingClient implements ISWFVideoClient
+ {
+ //static constructor
+ public static function IGameRankingClient$cinit()
+ { //MethodID:248, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function getThumbnailURL(hug1:String, hug2:Function):void; //MethodID:249, dispID:0
+
+ //constructor
+ public function IGameRankingClient(); //MethodID:250, dispID:0
+ }
+}
+
+//■script012■
+
+package jp.nicovideo.nicoplayer.models.video{
+
+ import flash.display.DisplayObject
+ import flash.display.Loader
+ import flash.display.LoaderInfo
+ import flash.display.MovieClip
+ import flash.display.Sprite
+ import flash.events.Event
+ import flash.events.EventDispatcher
+ import flash.events.IOErrorEvent
+ import flash.events.ProgressEvent
+ import flash.events.SecurityErrorEvent
+ import flash.media.SoundTransform
+ import flash.net.URLRequest
+ import flash.system.ApplicationDomain
+ import flash.system.LoaderContext
+ import flash.system.Security
+ import flash.system.SecurityDomain
+ import jp.nicovideo.nicoplayer.config.NicoConfig
+ import jp.nicovideo.nicoplayer.models.video.swf.ISWFVideoClient
+ import jp.nicovideo.nicoplayer.models.video.swf.ISWFVideoContent
+ import jp.nicovideo.nicoplayer.models.video.swf.SWFVideoType
+ import jp.nicovideo.util.Functions
+ import jp.nicovideo.util.ObjectUtils
+ import jp.nicovideo.util.StringUtils
+ import org.libspark.utils.ForcibleLoader
+
+ use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
+
+ //■class(instance)_index:12
+ public class SWFVideo extends Object implements IChildVideo
+ {
+ //static constructor
+ public static function SWFVideo$cinit()
+ { //MethodID:252, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function SWFVideo(hug1:String, hug2:Sprite, hug3:Number, hug4:Boolean=false, hug5:String, hug6:NicoConfig=null, hug7:String, hug8:Boolean=false)
+ { //MethodID:253, LocalCount= 9 , MaxScope= 1, MaxStack= 2, CodeLength= 156
+ this._onVideoEnded = new Functions();
+ this._onVideoSeeked = new Functions();
+ this._onVideoSeeking = new Functions();
+ this._onVideoPlayed = new Functions();
+ this._onVideoStopped = new Functions();
+ this._onVideoBufferingStarted = new Functions();
+ this._onVideoLoadComplete = new Functions();
+ this._onVideoError = new Functions();
+
+ super();
+
+ this._this = this;
+ this._url = hug1;
+ this._length = hug3;
+ this._videoLayer = hug2;
+ this._layerWidth = this._videoLayer.width;
+ this._layerHeight = this._videoLayer.height;
+ this._isAS3 = hug8;
+
+ if(!hug4) return;
+
+ this._waitingLoad = true;
+ this._videoTitle = hug5;
+ this._configure = hug6;
+ this._videoID = hug7;
+ }
+
+ //variables/etc.
+ private var _this:IVideo; //slotID:0
+ private var _videoLayer:Sprite; //slotID:0
+ private var _video:MovieClip; //slotID:0
+ private var _url:String; //slotID:0
+ private var _length:Number; //slotID:0
+ private var _bytesLoaded:uint = 0; //slotID:0
+ private var _bytesTotal:uint; //slotID:0
+ private var _isInitialized:Boolean = false; //slotID:0
+ private var _isLoaded:Boolean = false; //slotID:0
+ private var _isPlaying:Boolean = false; //slotID:0
+ private var _waitingLoad:Boolean = false; //slotID:0
+ private var _videoTitle:String; //slotID:0
+ private var _configure:NicoConfig; //slotID:0
+ private var _videoID:String; //slotID:0
+ private var _isLoop:Boolean; //slotID:0
+ private const _onVideoEnded:Functions; //slotID:0
+ private const _onVideoSeeked:Functions; //slotID:0
+ private const _onVideoSeeking:Functions; //slotID:0
+ private const _onVideoPlayed:Functions; //slotID:0
+ private const _onVideoStopped:Functions; //slotID:0
+ private const _onVideoBufferingStarted:Functions; //slotID:0
+ private const _onVideoLoadComplete:Functions; //slotID:0
+ private const _onVideoError:Functions; //slotID:0
+ private var _isAS3:Boolean = false; //slotID:0
+ private var _isLoading:Boolean = false; //slotID:0
+ private var _isPausing:Boolean = true; //slotID:0
+ private var _isEnd:Boolean = false; //slotID:0
+ private var _isSeeking:Boolean = false; //slotID:0
+ private var _layerWidth:int; //slotID:0
+ private var _layerHeight:int; //slotID:0
+ private var _contentWidth:int; //slotID:0
+ private var _contentHeight:int; //slotID:0
+
+ public function get movieClip():MovieClip
+ { //MethodID:254, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._video;
+ }
+
+ public function load(hug1:Function):void
+ { //MethodID:261, LocalCount= 4 , MaxScope= 5, MaxStack= 6, CodeLength= 414
+ internal var f:Function; //slotID:1
+ internal var loader:Loader; //slotID:2
+ internal var context:LoaderContext; //slotID:3
+ internal var request:URLRequest; //slotID:4
+ internal var info:LoaderInfo; //slotID:5
+ internal var applied:Boolean; //slotID:6
+ internal var ioErrorHandler:Function; //slotID:7
+ internal var securityErrorHandler:Function; //slotID:8
+ internal var eventDispatcher:EventDispatcher; //slotID:9
+
+ info = null;
+ applied = false;
+ ioErrorHandler = null;
+ securityErrorHandler = null;
+ eventDispatcher = null;
+ f = hug1;
+ ioErrorHandler = function(hug1:IOErrorEvent):void{ //MethodID:255, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 17
+ _isLoading = false;
+
+ f(false);
+ };
+
+ securityErrorHandler = function(hug1:SecurityErrorEvent):void{ //MethodID:256, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 17
+ _isLoading = false;
+
+ f(false);
+ };
+
+ loader = new Loader();
+ context = new LoaderContext(false, ApplicationDomain.currentDomain, ((Security.sandboxType == Security.REMOTE) ? SecurityDomain.currentDomain : null));
+ request = new URLRequest(this._url);
+ info = loader.contentLoaderInfo;
+
+ info.addEventListener(Event.INIT, function(hug1:Event):void{ //MethodID:257, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 160
+ _bytesLoaded = info.bytesLoaded;
+ _video = (hug1.target.content as MovieClip);
+ _contentWidth = hug1.target.width;
+ _contentHeight = hug1.target.height;
+
+ if(!_video){
+ f(false);
+
+ return;
+ }
+
+ _video.stop();
+
+ _video.soundTransform = new SoundTransform(0.0);
+ _length = ((_video.totalFrames / 25) * 1000);
+
+ resize(_layerWidth, _layerHeight);
+
+ if(_waitingLoad){
+ initializeSWFVideo(f);
+
+ return;
+ }
+
+ _isInitialized = true;
+
+ f(true);
+ });
+ info.addEventListener(Event.COMPLETE, function(hug1:Event):void{ //MethodID:258, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 15
+ _isLoaded = true;
+ _isLoading = false;
+ });
+
+ applied = false;
+ info.addEventListener(ProgressEvent.PROGRESS, function(hug1:ProgressEvent):void{ //MethodID:259, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 55
+ _bytesTotal = hug1.bytesTotal;
+ _bytesLoaded = hug1.bytesLoaded;
+
+ if(!applied && (_bytesTotal > 0)){
+ applied = true;
+
+ _onVideoBufferingStarted.apply();
+ }
+ });
+ info.addEventListener(Event.COMPLETE, function(hug1:Event):void{ //MethodID:260, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 11
+ _onVideoLoadComplete.apply(_bytesTotal);
+ });
+ info.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
+ info.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
+ this._videoLayer.addChild(loader);
+
+ this._isLoading = true;
+
+ try{
+ if(this._isAS3){
+ loader.load(request, context);
+ }else{
+ eventDispatcher = new EventDispatcher();
+
+ eventDispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
+ eventDispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
+ new ForcibleLoader(loader, eventDispatcher).load(request);
+ }
+ }
+ catch(error:Error){
+ ObjectUtils.callLater(f, false);
+ }
+ }
+
+ public function resize(hug1:Number, hug2:Number):void
+ { //MethodID:262, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 199
+ this._layerWidth = hug1;
+ this._layerHeight = hug2;
+
+ if(!this._video || (this._contentWidth <= 0) || (this._contentHeight <= 0)) return;
+
+ var hug3:Number = 1;
+
+ if((this._contentHeight / this._contentWidth) < (hug2 / hug1)){
+ hug3 = (this._layerWidth / this._contentWidth);
+ var hug4:Number = hug3;
+ this._video.scaleY = hug4;
+ this._video.scaleX = hug4;
+ this._video.x = 0;
+ this._video.y = ((this._layerHeight - (this._contentHeight * hug3)) / 2);
+ }else{
+ hug3 = (this._layerHeight / this._contentHeight);
+ var hug4:Number = hug3;
+ this._video.scaleY = hug4;
+ this._video.scaleX = hug4;
+ this._video.x = ((this._layerWidth - (this._contentWidth * hug3)) / 2);
+ this._video.y = 0;
+ }
+ }
+
+ public function get isPlaying():Boolean
+ { //MethodID:263, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isPlaying;
+ }
+
+ public function get isPausing():Boolean
+ { //MethodID:264, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isPausing;
+ }
+
+ public function get isSeeking():Boolean
+ { //MethodID:265, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isSeeking;
+ }
+
+ public function get isEnd():Boolean
+ { //MethodID:266, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isEnd;
+ }
+
+ public function get isBuffering():Boolean
+ { //MethodID:267, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isLoading;
+ }
+
+ public function set volume(hug1:Number):void
+ { //MethodID:268, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 149
+ if((hug1 < 0) || (hug1 > 1)) return;
+
+ hug1 *= 100;
+
+ if(hug1 == 0){
+ this._video.soundTransform = new SoundTransform(0);
+ return;
+ }
+
+ if(hug1 == 100){
+ this._video.soundTransform = new SoundTransform(1);
+ return;
+ }
+
+ hug1 = ((hug1 * (4 / 5)) + 20);
+ var hug2:Number = this._getACurb(100);
+ var hug3:Number = (this._getACurb(hug1) * (1 / hug2));
+
+ if(hug3 < 0.01){
+ this._video.soundTransform = new SoundTransform(0.01);
+ return;
+ }
+
+ this._video.soundTransform = new SoundTransform(hug3);
+ }
+
+ private function _getACurb(hug1:Number):Number
+ { //MethodID:269, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 35
+ return (((0.6838 * Math.pow(hug1, 3)) - (1.7262 * Math.pow(hug1, 2))) + (2.4252 * hug1));
+ }
+
+ private function initializeSWFVideo(hug1:Function):void
+ { //MethodID:271, LocalCount= 3 , MaxScope= 2, MaxStack= 7, CodeLength= 198
+ internal var f:Function; //slotID:1
+ internal var content:ISWFVideoContent; //slotID:2
+ internal var client:ISWFVideoClient; //slotID:3
+
+ client = null;
+ f = hug1;
+ content = ISWFVideoContent(this._video);
+
+ if(!content) throw new Error("SWFVideo.initializeSWFVideo: invalid type.");
+
+ if(content.videoType == SWFVideoType.INTERRUPT_GAME_RANKING){
+ client = new _GameRankingClient(this._videoID, this._configure.GETGAMERANKING_URL, this._configure.GETTHUMBINFO_URL);
+ }else if(content.videoType == SWFVideoType.INTERRUPT_ENQUETE_RESULT){
+ client = new _SWFVideoClient(this._videoID, StringUtils.joinQuery(this._configure.GETENQUESTERESULT_URL, {enquete_id:this._videoID}));
+ }else{
+ throw new Error("SWFVideo.initializeSWFVideo: invalid videoType.");
+ }
+
+ content.initialize(client, function():void{ //MethodID:270, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 17
+ _isInitialized = true;
+
+ f(true);
+ });
+ }
+
+ private function _onEnterFrame(hug1:Event):void
+ { //MethodID:272, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 68
+ if(!this._isEnd && (this._video.currentFrame == this._video.totalFrames)){
+ this._video.stop();
+
+ this._isPausing = false;
+ this._isPlaying = false;
+ this._isEnd = true;
+
+ this._onVideoEnded.apply(this._isLoop);
+ }
+ }
+
+ public function play():void
+ { //MethodID:273, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 64
+ this._video.gotoAndPlay(this._video.currentFrame);
+
+ this._isPlaying = true;
+ this._isPausing = false;
+ this._isEnd = false;
+
+ this._video.addEventListener(Event.ENTER_FRAME, this._onEnterFrame);
+ ObjectUtils.callLater(this._onVideoPlayed.apply);
+ }
+
+ public function stop():void
+ { //MethodID:274, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 47
+ this._video.stop();
+
+ this._isPausing = true;
+
+ this._video.removeEventListener(Event.ENTER_FRAME, this._onEnterFrame);
+ ObjectUtils.callLater(this._onVideoStopped.apply);
+ }
+
+ public function close():void
+ { //MethodID:275, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ public function seek(hug1:Number):void
+ { //MethodID:277, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 65
+ internal var vpos:Number; //slotID:1
+ internal var _frame:uint; //slotID:2
+
+ _frame = 0;
+ vpos = hug1;
+ this._isEnd = false;
+ this._isSeeking = true;
+ _frame = (Math.round((vpos / 1000) * 25) + 1);
+
+ ObjectUtils.callLater(function():void{ //MethodID:276, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 49
+ _isSeeking = false;
+
+ if(_isPausing){
+ _video.gotoAndStop(_frame);
+ }else{
+ _video.gotoAndPlay(_frame);
+ }
+
+ _onVideoSeeked.apply(vpos);
+ });
+ }
+
+ public function get length():Number
+ { //MethodID:278, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._length;
+ }
+
+ public function get loadedLength():Number
+ { //MethodID:279, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 32
+ return ((Number(this._bytesLoaded) / Number(this._bytesTotal)) * Number(this._length));
+ }
+
+ public function get vpos():Number
+ { //MethodID:280, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 18
+ return (((this._video.currentFrame - 1) / 25) * 1000);
+ }
+
+ public function get isInitialized():Boolean
+ { //MethodID:281, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isInitialized;
+ }
+
+ public function get isControllable():Boolean
+ { //MethodID:282, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isInitialized;
+ }
+
+ public function set isLoop(hug1:Boolean):void
+ { //MethodID:283, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._isLoop = hug1;
+ }
+
+ public function get onVideoSeeked():Functions
+ { //MethodID:284, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._onVideoSeeked;
+ }
+
+ public function get onVideoSeeking():Functions
+ { //MethodID:285, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._onVideoSeeking;
+ }
+
+ public function get onVideoPlayed():Functions
+ { //MethodID:286, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._onVideoPlayed;
+ }
+
+ public function get onVideoStopped():Functions
+ { //MethodID:287, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._onVideoStopped;
+ }
+
+ public function get onVideoEnded():Functions
+ { //MethodID:288, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._onVideoEnded;
+ }
+
+ public function get onVideoBufferingStarted():Functions
+ { //MethodID:289, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._onVideoBufferingStarted;
+ }
+
+ public function get onVideoLoadComplete():Functions
+ { //MethodID:290, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._onVideoLoadComplete;
+ }
+
+ public function get onVideoError():Functions
+ { //MethodID:291, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._onVideoError;
+ }
+
+ public function get layer():DisplayObject
+ { //MethodID:292, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._videoLayer;
+ }
+
+ public function get source():DisplayObject
+ { //MethodID:293, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._video;
+ }
+
+ public function get videoPlayerStatus():String
+ { //MethodID:294, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 69
+ if(this._isEnd) return VideoPlayerStatus.END;
+
+ if(this._isPlaying){
+ if(this._isPausing) return VideoPlayerStatus.PAUSED;
+
+ return VideoPlayerStatus.PLAYING;
+ }
+
+ if(this._isLoading) return VideoPlayerStatus.LOADING;
+
+ return VideoPlayerStatus.STOPPED;
+ }
+
+ public function get contentWidth():int
+ { //MethodID:295, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._contentWidth;
+ }
+
+ public function get contentHeight():int
+ { //MethodID:296, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._contentHeight;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get videoLayer():Sprite
+ { //MethodID:297, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._videoLayer;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get video():MovieClip
+ { //MethodID:298, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._video;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get isLoop():Boolean
+ { //MethodID:299, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isLoop;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get waitingLoad():Boolean
+ { //MethodID:300, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._waitingLoad;
+ }
+ }
+}
+
+import flash.events.Event
+import flash.events.IOErrorEvent
+import flash.events.SecurityErrorEvent
+import flash.net.URLLoader
+import flash.net.URLRequest
+import jp.nicovideo.util.StringUtils
+
+//■class(instance)_index:13
+//private
+class _SWFVideoClient extends Object implements ISWFVideoClient
+{
+ //static constructor
+ public static function _SWFVideoClient$cinit()
+ { //MethodID:301, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function _SWFVideoClient(hug1:String, hug2:String):void
+ { //MethodID:302, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
+ super();
+
+ this._videoID = hug1;
+ this._apiURL = hug2;
+ }
+
+ //variables/etc.
+ private var _videoID:String; //slotID:0
+ private var _apiURL:String; //slotID:0
+
+ public function getSourceData(hug1:Function):void
+ { //MethodID:306, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 99
+ private var callback:Function; //slotID:1
+ private var loader:URLLoader; //slotID:2
+
+ loader = null;
+ callback = hug1;
+ loader = new URLLoader();
+
+ loader.load(new URLRequest(this._apiURL));
+ loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{ //MethodID:303, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 58
+ var hug2:XML = new XML(loader.data);
+
+ if(hug2.attribute("status").toString() == "ok"){
+ callback(true, hug2);
+ }else{
+ callback(false, null);
+ }
+ });
+ loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:IOErrorEvent):void{ //MethodID:304, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
+ callback(false, null);
+ });
+ loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(hug1:SecurityErrorEvent):void{ //MethodID:305, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
+ callback(false, null);
+ });
+ }
+}
+
+//■class(instance)_index:14
+//private
+class _GameRankingClient extends Object implements IGameRankingClient
+{
+ //static constructor
+ public static function _GameRankingClient$cinit()
+ { //MethodID:307, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function _GameRankingClient(hug1:String, hug2:String, hug3:String):void
+ { //MethodID:308, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 34
+ super();
+
+ this._videoID = hug1;
+ this._getGameRankURL = StringUtils.joinQuery(hug2, {game_id:hug1});
+ this._getThumbInfoURL = hug3;
+ }
+
+ //variables/etc.
+ private var _videoID:String; //slotID:0
+ private var _getGameRankURL:String; //slotID:0
+ private var _getThumbInfoURL:String; //slotID:0
+
+ public function getSourceData(hug1:Function):void
+ { //MethodID:312, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 99
+ private var callback:Function; //slotID:1
+ private var loader:URLLoader; //slotID:2
+
+ loader = null;
+ callback = hug1;
+ loader = new URLLoader();
+
+ loader.load(new URLRequest(this._getGameRankURL));
+ loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{ //MethodID:309, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 21
+ callback(true, new XML(loader.data));
+ });
+ loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:IOErrorEvent):void{ //MethodID:310, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
+ callback(false, null);
+ });
+ loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(hug1:SecurityErrorEvent):void{ //MethodID:311, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
+ callback(false, null);
+ });
+ }
+
+ public function getThumbnailURL(hug1:String, hug2:Function):void
+ { //MethodID:316, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 109
+ private var videoID:String; //slotID:1
+ private var callback:Function; //slotID:2
+ private var loader:URLLoader; //slotID:3
+
+ loader = null;
+ videoID = hug1;
+ callback = hug2;
+ loader = new URLLoader();
+
+ loader.load(new URLRequest(this._getThumbInfoURL + videoID));
+ loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{ //MethodID:313, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 49
+ var hug2:String = XML(loader.data).thumb.thumbnail_url;
+
+ if(!hug2){
+ callback(false, null);
+ }else{
+ callback(true, hug2);
+ }
+ });
+ loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:IOErrorEvent):void{ //MethodID:314, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
+ callback(false, null);
+ });
+ loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(hug1:SecurityErrorEvent):void{ //MethodID:315, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
+ callback(false, null);
+ });
+ }
+}
+
+//■script013■
+
+package jp.nicovideo.util.events{
+
+ import flash.errors.IllegalOperationError
+
+ //■class(instance)_index:15
+ public class EventBarrier extends Object
+ {
+ //static constructor
+ public static function EventBarrier$cinit()
+ { //MethodID:318, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function EventBarrier()
+ { //MethodID:319, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+
+ //variables/etc.
+ private var __counter:int = 0; //slotID:0
+ private var __f:Function; //slotID:0
+
+ public function bind(hug1:Function):Function
+ { //MethodID:321, LocalCount= 5 , MaxScope= 2, MaxStack= 2, CodeLength= 55
+ internal var f:Function; //slotID:1
+
+ f = hug1;
+
+ if(this.__counter <= (-1)) throw new IllegalOperationError("Barrier have been broken.");
+
+ this.__counter++;
+ return function(... rest):*{ //MethodID:320, LocalCount= 7 , MaxScope= 4, MaxStack= 5, CodeLength= 151
+ public var args:Array; //slotID:1
+
+ internal var args:Object = rest;
+
+ try{
+ var hug3:* = f.apply(null, args);
+ return hug3;
+ }
+ finally{
+ if(((--__counter) <= 0) && (__f is Function)) __finish_0();
+ }
+ };
+ }
+
+ public function finish(hug1:Function=null):void
+ { //MethodID:322, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 37
+ if(!(hug1 is Function) || (this.__counter <= 0)){
+ this.__finish_0(hug1);
+
+ return;
+ }
+
+ this.__f = hug1;
+ }
+
+ private function __finish_0(hug1:Function=null):void
+ { //MethodID:323, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 52
+ if(this.__counter <= (-1)) return;
+
+ this.__counter = -1;
+ var hug2:Function = this.__f;
+ hug1 = hug2;
+
+ if(hug1 || hug2) hug1();
+ }
+ }
+}
+
+//■script014■
+
+package jp.nicovideo.util.api{
+
+ //■class(instance)_index:16
+ public interface IAPICacheProxy
+ {
+ //static constructor
+ public static function IAPICacheProxy$cinit()
+ { //MethodID:325, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function load(hug1:Function, hug2:Boolean):void; //MethodID:326, dispID:0
+
+ function get isCacheUsable():Boolean; //MethodID:327, dispID:0
+
+ //constructor
+ public function IAPICacheProxy(); //MethodID:328, dispID:0
+ }
+}
+
+//■script015■
+
+package jp.nicovideo.util.api{
+
+ import flash.events.Event
+ import flash.events.IOErrorEvent
+ import flash.events.TimerEvent
+ import flash.net.URLLoader
+ import flash.net.URLRequest
+ import flash.utils.Timer
+ import jp.nicovideo.util.CrossSharedObject
+ import jp.nicovideo.util.ObjectUtils
+ import jp.nicovideo.util.TimeUtils
+ import jp.nicovideo.util.storage.LocalStorage
+
+ use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
+
+ //■class(instance)_index:18
+ public class APICacheProxy extends Object implements IAPICacheProxy
+ {
+ //static constructor
+ public static function APICacheProxy$cinit()
+ { //MethodID:332, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function APICacheProxy(hug1:URLRequest, hug2:Number=0.0, hug3:Number=0.0, hug4:String=null, hug5:Boolean=true)
+ { //MethodID:333, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 147
+ this._loader = new URLLoader();
+ this._onLoaded = [];
+
+ super();
+
+ if((hug1 == null) || (hug1.url == null)) throw new ArgumentError("APICacheProxy.APICacheProxy: illegal parameter.");
+
+ this._request = hug1;
+ this._interval = ((isNaN(hug2) || (hug2 < 0)) ? 0 : hug2);
+ this._cacheExpire = ((isNaN(hug3) || (hug3 < 0)) ? 0 : hug3);
+ this._cacheKey = hug4;
+ this._useCommonCache = hug5;
+
+ this._constructor();
+ }
+
+ //variables/etc.
+ private var _request:URLRequest; //slotID:0
+ private var _loader:URLLoader; //slotID:0
+ private var _interval:Number; //slotID:0
+ private var _cacheExpire:Number = 0.0; //slotID:0
+ private var _cache:LocalStorage; //slotID:0
+ private var _cacheData:_CacheData; //slotID:0
+ private var _onLoaded:Array; //slotID:0
+ private var _loadTimer:Timer; //slotID:0
+ private var _isLocked:Boolean = false; //slotID:0
+ private var _cacheKey:String; //slotID:0
+ private var _useCommonCache:Boolean; //slotID:0
+
+ private function _constructor():void
+ { //MethodID:337, LocalCount= 3 , MaxScope= 5, MaxStack= 5, CodeLength= 295
+ internal var path:String; //slotID:1
+
+ path = this._request.url.replace(new RegExp("[\.\/~\\%&:;\"',<>?#]", "g"), "_");
+
+ try{
+ this._cache = (this._useCommonCache ? CrossSharedObject.getStorage(path) : CrossSharedObject.getStorageNative(path));
+ this._cacheData = new _CacheData(this._cache.data);
+ }
+ catch(e:Error){
+ _cache = null;
+ _cacheData = new _CacheData();
+ }
+
+ if((((this._cacheData.cacheKey == null) || ((this._cacheKey != null) && (this._cacheData.cacheKey != this._cacheKey))) || isNaN(this._cacheData.lastAccessTime)) || (this._cacheData.source == undefined)){
+ this._cacheData.cacheKey = "";
+ this._cacheData.lastAccessTime = -1;
+ this._cacheData.source = null;
+
+ this._updateCacheData();
+ }
+
+ this._loadTimer = new Timer(0, 1);
+
+ this._loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{ //MethodID:335, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 81
+ internal var event:Event; //slotID:1
+
+ event = hug1;
+ _isLocked = true;
+ _cacheData.cacheKey = _cacheKey;
+ _cacheData.lastAccessTime = TimeUtils.time;
+ _cacheData.source = _loader.data;
+
+ _updateCacheData();
+ _reflect(true, _cacheData.source);
+ ObjectUtils.callLater(function():void{ //MethodID:334, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 8
+ _isLocked = false;
+ });
+ });
+ this._loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:IOErrorEvent):void{ //MethodID:336, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 10
+ _reflect(false, null);
+ });
+ }
+
+ public function load(hug1:Function, hug2:Boolean):void
+ { //MethodID:340, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 253
+ internal var callback:Function; //slotID:1
+ internal var useCache:Boolean; //slotID:2
+ internal var delay:Number; //slotID:3
+ internal var source:*; //slotID:4
+
+ source = undefined;
+ callback = hug1;
+ useCache = hug2;
+
+ if(useCache && (this._cache != null) && (this._cache.data.source != null)){
+ source = this._cache.data.source;
+
+ ObjectUtils.callLater(callback, (source != null), source);
+
+ return;
+ }
+
+ this._onLoaded.push(callback);
+
+ if(!this._hasExpired){
+ ObjectUtils.callLater(function():void{ //MethodID:338, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 15
+ _reflect(true, _cacheData.source);
+ });
+
+ return;
+ }
+
+ if(this._isLocked || this._loadTimer.running) return;
+
+ delay = (this._cacheData.lastAccessTime + this._interval - TimeUtils.time);
+ delay = ((delay < 1) ? 1 : delay);
+ this._loadTimer.delay = delay;
+ this._loadTimer.repeatCount = 1;
+
+ this._loadTimer.addEventListener(TimerEvent.TIMER_COMPLETE, function(hug1:TimerEvent):void{ //MethodID:339, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 18
+ _loadTimer.reset();
+ _loader.load(_request);
+ });
+ this._loadTimer.start();
+ }
+
+ public function get isCacheUsable():Boolean
+ { //MethodID:341, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
+ return ((this._cacheData != null) && (this._cacheData.source != null));
+ }
+
+ private function get _hasExpired():Boolean
+ { //MethodID:342, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 41
+ return ((this._cacheKey != this._cacheData.cacheKey) || ((this._cacheData.lastAccessTime + this._cacheExpire) < TimeUtils.time));
+ }
+
+ private function _reflect(hug1:Boolean, hug2:*):void
+ { //MethodID:343, LocalCount= 7 , MaxScope= 1, MaxStack= 4, CodeLength= 68
+ var hug4:Function = null;
+ var hug3:Array = this._onLoaded.concat();
+ this._onLoaded = [];
+
+ for each(hug4 in hug3){
+ hug4.apply(null, [hug1, hug2]);
+ }
+ }
+
+ private function _updateCacheData():void
+ { //MethodID:344, LocalCount= 3 , MaxScope= 5, MaxStack= 3, CodeLength= 102
+ if(!this._cache) return;
+
+ try{
+ this._cache.data.cacheKey = this._cacheData.cacheKey;
+ this._cache.data.lastAccessTime = this._cacheData.lastAccessTime;
+ this._cache.data.source = this._cacheData.source;
+
+ this._cache.flush();
+ }
+ catch(e:Error){
+ _cache = null;
+ }
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get cache():LocalStorage
+ { //MethodID:345, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._cache;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get hasExpired():Boolean
+ { //MethodID:346, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._hasExpired;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get loadTimer():Timer
+ { //MethodID:347, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._loadTimer;
+ }
+ }
+}
+
+
+//■class(instance)_index:17
+//private
+class _CacheData extends Object
+{
+ //static constructor
+ public static function _CacheData$cinit()
+ { //MethodID:330, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function _CacheData(hug1:Object=null)
+ { //MethodID:331, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 36
+ super();
+
+ if(!hug1) return;
+
+ this.source = hug1.source;
+ this.lastAccessTime = hug1.lastAccessTime;
+ this.cacheKey = hug1.cacheKey;
+ }
+
+ //variables/etc.
+ public var source:*; //slotID:0
+ public var lastAccessTime:Number; //slotID:0
+ public var cacheKey:String; //slotID:0
+}
+
+//■script016■
+
+package jp.nicovideo.nicoplayer.models.video.userSponsor{
+
+ import flash.display.Sprite
+ import jp.nicovideo.nicoplayer.models.api.ICapturableVideoContainer
+ import jp.nicovideo.nicoplayer.models.api.IGetSponsorInfo
+ import jp.nicovideo.nicoplayer.models.video.IVposWatcher
+
+ //■class(instance)_index:19
+ public interface IUserSponsorVideoClient
+ {
+ //static constructor
+ public static function IUserSponsorVideoClient$cinit()
+ { //MethodID:349, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function get info():IGetSponsorInfo; //MethodID:350, dispID:0
+
+ function get layer():Sprite; //MethodID:351, dispID:0
+
+ function get linkURL():String; //MethodID:352, dispID:0
+
+ function get youAlsoLink():String; //MethodID:353, dispID:0
+
+ function get capturableVideoContainer():ICapturableVideoContainer; //MethodID:354, dispID:0
+
+ function get vposWatcher():IVposWatcher; //MethodID:355, dispID:0
+
+ //constructor
+ public function IUserSponsorVideoClient(); //MethodID:356, dispID:0
+ }
+}
+
+//■script017■
+
+package jp.nicovideo.nicoplayer.models.video.userSponsor{
+
+ import flash.display.Sprite
+ import jp.nicovideo.nicoplayer.models.api.ICapturableVideoContainer
+ import jp.nicovideo.nicoplayer.models.api.IGetSponsorInfo
+ import jp.nicovideo.nicoplayer.models.video.IVposWatcher
+
+ //■class(instance)_index:20
+ public class UserSponsorVideoClient extends Object implements IUserSponsorVideoClient
+ {
+ //static constructor
+ public static function UserSponsorVideoClient$cinit()
+ { //MethodID:358, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function UserSponsorVideoClient(hug1:IGetSponsorInfo, hug2:Sprite, hug3:String, hug4:String, hug5:ICapturableVideoContainer, hug6:IVposWatcher)
+ { //MethodID:359, LocalCount= 7 , MaxScope= 1, MaxStack= 2, CodeLength= 39
+ super();
+
+ this._info = hug1;
+ this._layer = hug2;
+ this._linkURL = hug3;
+ this._youAlsoLink = hug4;
+ this._capturableVideoContainer = hug5;
+ this._vposWatcher = hug6;
+ }
+
+ //variables/etc.
+ private var _info:IGetSponsorInfo; //slotID:0
+ private var _layer:Sprite; //slotID:0
+ private var _linkURL:String; //slotID:0
+ private var _youAlsoLink:String; //slotID:0
+ private var _capturableVideoContainer:ICapturableVideoContainer;//slotID:0
+ private var _vposWatcher:IVposWatcher; //slotID:0
+
+ public function get info():IGetSponsorInfo
+ { //MethodID:360, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._info;
+ }
+
+ public function get layer():Sprite
+ { //MethodID:361, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._layer;
+ }
+
+ public function get linkURL():String
+ { //MethodID:362, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._linkURL;
+ }
+
+ public function get youAlsoLink():String
+ { //MethodID:363, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._youAlsoLink;
+ }
+
+ public function get capturableVideoContainer():ICapturableVideoContainer
+ { //MethodID:364, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._capturableVideoContainer;
+ }
+
+ public function get vposWatcher():IVposWatcher
+ { //MethodID:365, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._vposWatcher;
+ }
+ }
+}
+
+//■script018■
+
+package jp.nicovideo.nicoplayer.models{
+
+ import jp.nicovideo.util.CrossSharedObject
+ import jp.nicovideo.util.TimeUtils
+ import jp.nicovideo.util.storage.LocalStorage
+
+ use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
+
+ //■class(instance)_index:21
+ public class PlayDelay extends Object
+ {
+ //static constructor
+ public static function PlayDelay$cinit()
+ { //MethodID:367, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 71
+ OPENPLAYER_INTERVAL = 3000;
+ OPENPLAYER_INTERVAL_PREMIUM = 0;
+ OPENPLAYER_INTERVAL_THUMBWATCH = 1000;
+ SO_RUSH_HOUR_PLAY_COUNT = "rush_hour_play_count";
+ soRushHourPlayCount = CrossSharedObject.getStorage(SO_RUSH_HOUR_PLAY_COUNT);
+ RUSH_HOUR = "1800-0300";
+ RUSH_HOUR_PLAY_COUNTER_TTL = 10;
+ }
+
+ //static variables/etc.
+ private static const OPENPLAYER_INTERVAL:Number = 3000.0; //slotID:1
+ private static const OPENPLAYER_INTERVAL_PREMIUM:Number = 0.0; //slotID:2
+ private static const OPENPLAYER_INTERVAL_THUMBWATCH:Number = 1000.0;//slotID:3
+ private static const SO_RUSH_HOUR_PLAY_COUNT:String = "rush_hour_play_count";//slotID:4
+ private static var soRushHourPlayCount:LocalStorage; //slotID:5
+ private static const RUSH_HOUR:String = "1800-0300"; //slotID:6
+ private static const RUSH_HOUR_PLAY_COUNTER_TTL:Number = 10.0; //slotID:7
+
+ private static function _getCount():uint
+ { //dispID:3, MethodID:368, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 155
+ var hug1:Date = TimeUtils.now();
+
+ if(soRushHourPlayCount.data.count == undefined) soRushHourPlayCount.data.count = 0;
+
+ if(soRushHourPlayCount.data.lastCountUp == undefined) soRushHourPlayCount.data.lastCountUp = hug1;
+
+ var hug2:uint = soRushHourPlayCount.data.count;
+ var hug3:Date = soRushHourPlayCount.data.lastCountUp;
+
+ if(!_isRushHour(RUSH_HOUR) || _isRsetCount(RUSH_HOUR_PLAY_COUNTER_TTL, hug3)){
+ soRushHourPlayCount.data.count = 0;
+ hug2 = 0;
+ }
+
+ soRushHourPlayCount.data.lastCountUp = hug1;
+
+ soRushHourPlayCount.flush();
+
+ return hug2;
+ }
+
+ private static function _isRsetCount(hug1:Number, hug2:Date):Boolean
+ { //dispID:4, MethodID:369, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 42
+ var hug3:Date = TimeUtils.now();
+
+ if((hug2.getTime() + ((hug1 * 60 * 60) * 1000)) <= hug3.getTime()) return true;
+
+ return false;
+ }
+
+ private static function _isRushHour(hug1:String):Boolean
+ { //dispID:5, MethodID:370, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 132
+ var hug2:Array = hug1.split("-");
+ var hug3:Date = TimeUtils.now();
+ var hug4:Number = ((hug3.getHours() * 100) + hug3.getMinutes());
+ var hug5:Number = Number(hug2[0]);
+ var hug6:Number = Number(hug2[1]);
+ var hug7:Boolean = false;
+
+ if(hug5 < hug6){
+ if((hug5 <= hug4) && (hug4 <= hug6)) hug7 = true;
+ }else if((hug5 <= hug4) || (hug4 <= hug6)){
+ hug7 = true;
+ }
+
+ return hug7;
+ }
+
+ public static function getPlayDelayTime(hug1:Boolean, hug2:Boolean):Number
+ { //dispID:6, MethodID:371, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 80
+ if(hug2) return Math.max(Math.min((_getCount() * 500), 15000), OPENPLAYER_INTERVAL_THUMBWATCH);
+
+ if(hug1) return OPENPLAYER_INTERVAL_PREMIUM;
+
+ return Math.max(Math.min((_getCount() * 500), 15000), OPENPLAYER_INTERVAL);
+ }
+
+ public static function countUp():void
+ { //dispID:7, MethodID:372, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 49
+ if(soRushHourPlayCount.data.count == undefined) return;
+
+ soRushHourPlayCount.data.count++;
+ soRushHourPlayCount.flush();
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) static function isRushHour(hug1:String):Boolean
+ { //dispID:8, MethodID:373, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
+ return _isRushHour(hug1);
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) static function isRsetCount(hug1:Number, hug2:Date):Boolean
+ { //dispID:9, MethodID:374, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 12
+ return _isRsetCount(hug1, hug2);
+ }
+
+ //constructor
+ public function PlayDelay()
+ { //MethodID:375, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+ }
+}
+
+//■script019■
+
+package jp.nicovideo.nicoplayer.models.video{
+
+ import flash.events.TimerEvent
+ import flash.utils.Timer
+ import jp.nicovideo.util.Functions
+ import jp.nicovideo.util.events.EventResult
+ import jp.nicovideo.util.events.event_sender
+
+ use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
+ use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
+
+ //■class(instance)_index:22
+ public class VideoLoadWatcher extends Object
+ {
+ //static constructor
+ public static function VideoLoadWatcher$cinit()
+ { //MethodID:377, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
+ WATCH_DELAY = 1000;
+ }
+
+ //static variables/etc.
+ public static const WATCH_DELAY:Number = 1000.0; //slotID:1
+
+ //constructor
+ public function VideoLoadWatcher()
+ { //MethodID:378, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 53
+ this.onPlaybackStopped = new Functions();
+ this.onVideoLoadCompleted = new Functions();
+ this._watchTimer = new Timer(WATCH_DELAY);
+
+ super();
+ this._watchTimer.addEventListener(TimerEvent.TIMER, this._onWatchTimer);
+ }
+
+ //variables/etc.
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlaybackStopped:Functions;//slotID:0
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoLoadCompleted:Functions;//slotID:0
+ private var _prevVpos:Number = -1.0; //slotID:0
+ private var _watchTimer:Timer; //slotID:0
+ private var _stoppedCount:uint; //slotID:0
+ private var _enabled:Boolean = true; //slotID:0
+ private var _onPlaybackStoppedEventSended:Boolean = false; //slotID:0
+ private var _hasJustSeeked:Boolean = false; //slotID:0
+ private var _video:IVideo; //slotID:0
+
+ private function _startWatching():void
+ { //MethodID:380, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 103
+ if(this._video == null) throw new Error("VideoLoadWatcher._startWatching: _video is null.");
+
+ if(!this._video.isBuffering){
+ onVideoLoadCompleted.apply();
+
+ return;
+ }
+
+ this._video.onVideoLoadComplete.add(function(hug1:uint, ...args):void{ //MethodID:379, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 44
+ stopWatching();
+ onVideoLoadCompleted.apply();
+ _video.onVideoLoadComplete.remove(args.calee);
+ });
+ this._watchTimer.reset();
+ this._watchTimer.start();
+
+ this._stoppedCount = 0;
+ this._prevVpos = -1;
+ }
+
+ public function stopWatching():void
+ { //MethodID:381, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
+ this._watchTimer.stop();
+ }
+
+ private function _onWatchTimer(hug1:TimerEvent):void
+ { //MethodID:382, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 195
+ if(this._video.isPausing || (this._video.vpos != this._prevVpos) || this._video.isSeeking || !this._video.isBuffering){
+ if(!this._video.isSeeking && !this._video.isPausing && (this._video.vpos != this._prevVpos)) this._hasJustSeeked = false;
+
+ this._prevVpos = this._video.vpos;
+ this._onPlaybackStoppedEventSended = false;
+ return;
+ }
+
+ if(this._hasJustSeeked) return;
+
+ if(this._onPlaybackStoppedEventSended) return;
+
+ this._onPlaybackStoppedEventSended = true;
+ this._stoppedCount++;
+ onPlaybackStopped.apply(this._stoppedCount);
+ }
+
+ public function set enabled(hug1:Boolean):void
+ { //MethodID:383, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 21
+ this._enabled = hug1;
+
+ if(!this._enabled) this.stopWatching();
+ }
+
+ public function get enabled():Boolean
+ { //MethodID:384, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._enabled;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoInitialized(hug1:Boolean, hug2:IVideo):EventResult
+ { //MethodID:385, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 32
+ if(!this._enabled) return EventResult.THROUGH;
+
+ this._video = hug2;
+
+ this._startWatching();
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoSeeked(hug1:Number):EventResult
+ { //MethodID:386, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
+ this._hasJustSeeked = true;
+ return EventResult.THROUGH;
+ }
+ }
+}
+
+//■script020■
+
+package jp.nicovideo.nicoplayer.storages{
+
+ //■class(instance)_index:23
+ public class CommentStorageError extends Object
+ {
+ //static constructor
+ public static function CommentStorageError$cinit()
+ { //MethodID:388, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function CommentStorageError(hug1:int, hug2:String, hug3:Boolean=false)
+ { //MethodID:389, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 21
+ super();
+
+ this.__status = hug1;
+ this.__message = hug2;
+ this.__isInLowerLayer = hug3;
+ }
+
+ //variables/etc.
+ private var __status:int; //slotID:0
+ private var __message:String; //slotID:0
+ private var __isInLowerLayer:Boolean; //slotID:0
+
+ public function get status():int
+ { //MethodID:390, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this.__status;
+ }
+
+ public function get message():String
+ { //MethodID:391, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this.__message;
+ }
+
+ public function get isInLowerLayer():Boolean
+ { //MethodID:392, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this.__isInLowerLayer;
+ }
+ }
+}
+
+//■script021■
+
+package jp.nicovideo.nicoplayer.models.mylist{
+
+ import jp.nicovideo.util.Functions
+
+ //■class(instance)_index:24
+ public interface IDefaultMylistAppendable
+ {
+ //static constructor
+ public static function IDefaultMylistAppendable$cinit()
+ { //MethodID:394, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function get onAppendedDefaultMylist():Functions; //MethodID:395, dispID:0
+
+ function appendDefaultMylist(hug1:String=null):void; //MethodID:396, dispID:0
+
+ function get hasAppendedDefaultMylist():Boolean; //MethodID:397, dispID:0
+
+ //constructor
+ public function IDefaultMylistAppendable(); //MethodID:398, dispID:0
+ }
+}
+
+//■script022■
+
+package jp.nicovideo.nicoplayer.models.mylist{
+
+ import flash.errors.IllegalOperationError
+ import flash.net.URLRequestMethod
+ import jp.nicovideo.util.CrossSharedObject
+ import jp.nicovideo.util.Functions
+ import jp.nicovideo.util.TimeUtils
+ import jp.nicovideo.util.storage.LocalStorage
+
+ //■class(instance)_index:30
+ public class DefaultMylistAppender extends Object implements IDefaultMylistAppendable
+ {
+ //static constructor
+ public static function DefaultMylistAppender$cinit()
+ { //MethodID:410, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 35
+ _LOG_TERM = ((3 * 24 * 60 * 60) * 1000);
+ _ON_APPENDED_DEFAULT_MYLIST = new Functions();
+ }
+
+ //static variables/etc.
+ private static const _LOG_TERM:Number = 0xF731400; //slotID:1
+ private static const _ON_APPENDED_DEFAULT_MYLIST:Functions; //slotID:2
+
+ //constructor
+ public function DefaultMylistAppender(hug1:Function, hug2:String, hug3:String, hug4:Boolean, hug5:String)
+ { //MethodID:411, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 49
+ this._appendedLogStorage = CrossSharedObject.getStorage((_SOSetting).NAME, (_SOSetting).PATH);
+
+ super();
+
+ this._loadFunc = hug1;
+ this._apiURL = hug2;
+
+ this.initialize(hug3, hug4, hug5);
+ }
+
+ //variables/etc.
+ private var _loadFunc:Function; //slotID:0
+ private var _apiURL:String; //slotID:0
+ private var _threadID:String; //slotID:0
+ private var _hasAppended:Boolean; //slotID:0
+ private var _csrfToken:String; //slotID:0
+ private var _appendedLogStorage:LocalStorage; //slotID:0
+
+ public function initialize(hug1:String, hug2:Boolean, hug3:String=null):void
+ { //MethodID:412, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 169
+ var hug4:String = null;
+ var hug5:Number = NaN;
+ this._threadID = hug1;
+ this._hasAppended = hug2;
+
+ if(hug3 != null) this._csrfToken = hug3;
+ _ON_APPENDED_DEFAULT_MYLIST.clear();
+
+ if(!this._hasAppended){
+ for(hug4 in this._appendedLogStorage.data){
+ hug5 = Number(this._appendedLogStorage.data[hug4]);
+
+ if(isNaN(hug5) || ((hug5 + _LOG_TERM) < TimeUtils.time)){
+ delete this._appendedLogStorage.data[hug4];
+ }else if(hug4 == this._threadID){
+ this._hasAppended = true;
+ }
+ }
+ }
+ }
+
+ public function get onAppendedDefaultMylist():Functions
+ { //MethodID:413, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ return _ON_APPENDED_DEFAULT_MYLIST;
+ }
+
+ public function appendDefaultMylist(hug1:String=null):void
+ { //MethodID:415, LocalCount= 3 , MaxScope= 2, MaxStack= 5, CodeLength= 140
+ internal var description:String = null; //slotID:1
+ internal var parameters:Object; //slotID:2
+
+ description = hug1;
+
+ if(this._hasAppended) throw new IllegalOperationError("DefaultMylistAppender.appendDefaultMylist: has appended already.");
+
+ parameters = {};
+ parameters[(_RequestParameterKey).ITEM_TYPE] = (_ItemType).VIDEO;
+ parameters[(_RequestParameterKey).ITEM_ID] = this._threadID;
+
+ if(description != null) parameters[(_RequestParameterKey).DESCRIPTION] = description;
+
+ parameters[(_RequestParameterKey).TOKEN] = this._csrfToken;
+
+ this._loadFunc(function(hug1:Object):void{ //MethodID:414, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 72
+ var hug2:Boolean = _hasAppended = (hug1[(_ResponseKey).STATUS] == (_ResponseValue).OK);
+
+ if((hug1 != null) && hug2) _appendedLogStorage.data[_threadID] = TimeUtils.time;
+ onAppendedDefaultMylist.apply(hug2);
+ }, this._apiURL, parameters, URLRequestMethod.POST);
+ }
+
+ public function get hasAppendedDefaultMylist():Boolean
+ { //MethodID:416, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._hasAppended;
+ }
+ }
+}
+
+
+//■class(instance)_index:25
+//private
+class _SOSetting extends Object
+{
+ //static constructor
+ public static function _SOSetting$cinit()
+ { //MethodID:400, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
+ NAME = "jp.nicovideo.nicoplayer.models.mylist.DefaultMylistAppender";
+ PATH = "/";
+ }
+
+ //static variables/etc.
+ public static const NAME:String = "jp.nicovideo.nicoplayer.models.mylist.DefaultMylistAppender";//slotID:1
+ public static const PATH:String = "/"; //slotID:2
+
+ //constructor
+ public function _SOSetting()
+ { //MethodID:401, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+}
+
+//■class(instance)_index:26
+//private
+class _RequestParameterKey extends Object
+{
+ //static constructor
+ public static function _RequestParameterKey$cinit()
+ { //MethodID:402, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 39
+ ITEM_TYPE = "item_type";
+ ITEM_ID = "item_id";
+ DESCRIPTION = "description";
+ TOKEN = "token";
+ }
+
+ //static variables/etc.
+ public static const ITEM_TYPE:String = "item_type"; //slotID:1
+ public static const ITEM_ID:String = "item_id"; //slotID:2
+ public static const DESCRIPTION:String = "description"; //slotID:3
+ public static const TOKEN:String = "token"; //slotID:4
+
+ //constructor
+ public function _RequestParameterKey()
+ { //MethodID:403, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+}
+
+//■class(instance)_index:27
+//private
+class _ItemType extends Object
+{
+ //static constructor
+ public static function _ItemType$cinit()
+ { //MethodID:404, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
+ VIDEO = 0;
+ }
+
+ //static variables/etc.
+ public static const VIDEO:uint = 0; //slotID:1
+
+ //constructor
+ public function _ItemType()
+ { //MethodID:405, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+}
+
+//■class(instance)_index:28
+//private
+class _ResponseKey extends Object
+{
+ //static constructor
+ public static function _ResponseKey$cinit()
+ { //MethodID:406, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
+ STATUS = "status";
+ }
+
+ //static variables/etc.
+ public static const STATUS:String = "status"; //slotID:1
+
+ //constructor
+ public function _ResponseKey()
+ { //MethodID:407, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+}
+
+//■class(instance)_index:29
+//private
+class _ResponseValue extends Object
+{
+ //static constructor
+ public static function _ResponseValue$cinit()
+ { //MethodID:408, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
+ OK = "ok";
+ }
+
+ //static variables/etc.
+ public static const OK:String = "ok"; //slotID:1
+
+ //constructor
+ public function _ResponseValue()
+ { //MethodID:409, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+}
+
+//■script023■
+
+package jp.nicovideo.nicoplayer.models.comment{
+
+ //■class(instance)_index:31
+ public final class CommentConstants extends Object
+ {
+ //static constructor
+ public static function CommentConstants$cinit()
+ { //MethodID:418, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 48
+ CL_MAIN = "commentlist:main";
+ CL_OWNER = "commentlist:owner";
+ CL_NICOS = "commentlist:nicos";
+ CL_LOCAL = "commentlist:local";
+ CL_PRIVATE = "commentlist:private";
+ }
+
+ //static variables/etc.
+ public static const CL_MAIN:String = "commentlist:main"; //slotID:1
+ public static const CL_OWNER:String = "commentlist:owner"; //slotID:2
+ public static const CL_NICOS:String = "commentlist:nicos"; //slotID:3
+ public static const CL_LOCAL:String = "commentlist:local"; //slotID:4
+ public static const CL_PRIVATE:String = "commentlist:private"; //slotID:5
+
+ //constructor
+ public function CommentConstants()
+ { //MethodID:419, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+ }
+}
+
+//■script024■
+
+package jp.nicovideo.nicoplayer.models.api{
+
+ //■class(instance)_index:32
+ public interface IGetChecklist
+ {
+ //static constructor
+ public static function IGetChecklist$cinit()
+ { //MethodID:421, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function get communities():Array; //MethodID:422, dispID:0
+
+ function get channels():Array; //MethodID:423, dispID:0
+
+ function get friends():Array; //MethodID:424, dispID:0
+
+ function get watchUsers():Array; //MethodID:425, dispID:0
+
+ //constructor
+ public function IGetChecklist(); //MethodID:426, dispID:0
+ }
+}
+
+//■script025■
+
+package jp.nicovideo.nicoplayer.models.api{
+
+ //■class(instance)_index:33
+ public interface IChannelInfo
+ {
+ //static constructor
+ public static function IChannelInfo$cinit()
+ { //MethodID:428, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function get channel_id():Number; //MethodID:429, dispID:0
+
+ function get community_id():Number; //MethodID:430, dispID:0
+
+ //constructor
+ public function IChannelInfo(); //MethodID:431, dispID:0
+ }
+}
+
+//■script026■
+
+package jp.nicovideo.nicoplayer.models.api{
+
+ import com.adobe.serialization.json.JSON
+ import jp.nicovideo.util.api.IAPICacheProxy
+
+ //■class(instance)_index:34
+ public class GetChecklist extends Object implements IGetChecklist
+ {
+ //static constructor
+ public static function GetChecklist$cinit()
+ { //MethodID:433, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function GetChecklist(hug1:Function, hug2:IAPICacheProxy, hug3:Boolean, hug4:Boolean)
+ { //MethodID:436, LocalCount= 6 , MaxScope= 2, MaxStack= 3, CodeLength= 122
+ internal var callback:Function; //slotID:1
+ internal var apiCahceProxy:IAPICacheProxy; //slotID:2
+ internal var useCache:Boolean; //slotID:3
+ internal var noLoad:Boolean; //slotID:4
+
+ callback = hug1;
+ apiCahceProxy = hug2;
+ useCache = hug3;
+ noLoad = hug4;
+ this._communities = [];
+ this._channels = [];
+ this._friends = [];
+ this._watchUsers = [];
+
+ super();
+
+ if((callback == null) || (apiCahceProxy == null)) throw new ArgumentError("GetCheckList.GetCheckList: invalid parameter.");
+
+ if(noLoad){
+ callback(false);
+
+ return;
+ }
+
+ apiCahceProxy.load(function(hug1:Boolean, hug2:*):void{ //MethodID:435, LocalCount= 6 , MaxScope= 3, MaxStack= 6, CodeLength= 354
+ internal var succeeded:Boolean; //slotID:1
+ internal var source:*; //slotID:2
+ internal var castItem:Function; //slotID:3
+ internal var data:Object; //slotID:4
+ internal var map:Object; //slotID:5
+ internal var channel_id:String; //slotID:6
+
+ castItem = null;
+ data = null;
+ map = null;
+ channel_id = null;
+ succeeded = hug1;
+ source = hug2;
+ castItem = function(hug1:*, hug2:int, hug3:Array):void{ //MethodID:434, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 174
+ var hug4:Number = parseInt(hug1);
+
+ if(isNaN(hug4)) return;
+
+ var hug5:Array = hug3;
+
+ switch(hug5){
+ case data["community_id"]:
+ _communities.push(hug4);
+ break;
+ case data["friend"]:
+ _friends.push(hug4);
+ break;
+ case data["watchuser"]:
+ _watchUsers.push(hug4);
+ break;
+ default:
+ break;
+ }
+ };
+
+ if(!succeeded){
+ callback(false);
+
+ return;
+ }
+
+ try{
+ data = JSON.decode(source);
+
+ if(data["community_id"] is Array) (data["community_id"] as Array).forEach(castItem);
+
+ if(data["friend"] is Array) (data["friend"] as Array).forEach(castItem);
+
+ if(data["watchuser"] is Array) (data["watchuser"] as Array).forEach(castItem);
+
+ if(data["channel_id"] is Object){
+ map = (data["channel_id"] as Object);
+
+ for(channel_id in map){
+ _channels.push(new _ChannelInfo(parseInt(channel_id), parseInt(map[channel_id])));
+ }
+ }
+ }
+ catch(error:Error){
+ callback(false);
+
+ return;
+ }
+
+ callback(true);
+ }, useCache);
+ }
+
+ //variables/etc.
+ private var _communities:Array; //slotID:0
+ private var _channels:Array; //slotID:0
+ private var _friends:Array; //slotID:0
+ private var _watchUsers:Array; //slotID:0
+
+ public function get communities():Array
+ { //MethodID:437, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._communities;
+ }
+
+ public function get channels():Array
+ { //MethodID:438, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._channels;
+ }
+
+ public function get friends():Array
+ { //MethodID:439, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._friends;
+ }
+
+ public function get watchUsers():Array
+ { //MethodID:440, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._watchUsers;
+ }
+ }
+}
+
+
+//■class(instance)_index:35
+//private
+class _ChannelInfo extends Object implements IChannelInfo
+{
+ //static constructor
+ public static function _ChannelInfo$cinit()
+ { //MethodID:441, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function _ChannelInfo(hug1:Number, hug2:Number)
+ { //MethodID:442, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
+ super();
+
+ this._channel_id = hug1;
+ this._community_id = hug2;
+ }
+
+ //variables/etc.
+ private var _channel_id:Number; //slotID:0
+ private var _community_id:Number; //slotID:0
+
+ public function get channel_id():Number
+ { //MethodID:443, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._channel_id;
+ }
+
+ public function get community_id():Number
+ { //MethodID:444, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._community_id;
+ }
+}
+
+//■script027■
+
+package jp.nicovideo.nicoplayer.models.filter{
+
+ import jp.nicovideo.nicoplayer.models.comment.IComment
+
+ //■class(instance)_index:36
+ public class NGInfo extends Object
+ {
+ //static constructor
+ public static function NGInfo$cinit()
+ { //MethodID:446, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function NGInfo(hug1:String, hug2:String, hug3:Date, hug4:IComment=null):void
+ { //MethodID:447, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 49
+ super();
+
+ this.__type = hug1;
+ this.__source = hug2;
+ this.__comment = hug4;
+
+ if(hug3){
+ this.__lastHit = new Date(hug3.time);
+ }else{
+ this.__lastHit = null;
+ }
+ }
+
+ //variables/etc.
+ private var __type:String; //slotID:0
+ private var __source:String; //slotID:0
+ private var __lastHit:Date; //slotID:0
+ private var __comment:IComment; //slotID:0
+
+ public function get type():String
+ { //MethodID:448, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this.__type;
+ }
+
+ public function get source():String
+ { //MethodID:449, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this.__source;
+ }
+
+ public function get lastHit():Date
+ { //MethodID:450, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this.__lastHit;
+ }
+
+ public function set lastHit(hug1:Date):void
+ { //MethodID:451, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 16
+ this.__lastHit = new Date(hug1.time);
+ }
+
+ public function get comment():IComment
+ { //MethodID:452, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this.__comment;
+ }
+ }
+}
+
+//■script028■
+
+package jp.nicovideo.marquee{
+
+ import flash.display.DisplayObjectContainer
+
+ //■class(instance)_index:37
+ public interface IMarqueeClient
+ {
+ //static constructor
+ public static function IMarqueeClient$cinit()
+ { //MethodID:454, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function jumpToURL(hug1:String):void; //MethodID:455, dispID:0
+
+ function showComment():void; //MethodID:456, dispID:0
+
+ function hideComment():void; //MethodID:457, dispID:0
+
+ function readyParade(hug1:Array):void; //MethodID:458, dispID:0
+
+ function startParade():void; //MethodID:459, dispID:0
+
+ function endParade():void; //MethodID:460, dispID:0
+
+ function get userID():String; //MethodID:461, dispID:0
+
+ function get category():String; //MethodID:462, dispID:0
+
+ function get marqueeLayer():DisplayObjectContainer; //MethodID:463, dispID:0
+
+ function get videoLayer():DisplayObjectContainer; //MethodID:464, dispID:0
+
+ function get volume():Number; //MethodID:465, dispID:0
+
+ function get isNicowariSkipEnabled():Boolean; //MethodID:466, dispID:0
+
+ function get videoID():String; //MethodID:467, dispID:0
+
+ function get videoTitle():String; //MethodID:468, dispID:0
+
+ function get videoTime():String; //MethodID:469, dispID:0
+
+ function get videoCode():String; //MethodID:470, dispID:0
+
+ function get nowTime():Number; //MethodID:471, dispID:0
+
+ function get isChannel():Boolean; //MethodID:472, dispID:0
+
+ function get segmentInfo():Object; //MethodID:473, dispID:0
+
+ function get isVideoPlaying():Boolean; //MethodID:474, dispID:0
+
+ //constructor
+ public function IMarqueeClient(); //MethodID:475, dispID:0
+ }
+}
+
+//■script029■
+
+package jp.nicovideo.marquee{
+
+ import jp.nicovideo.util.Functions
+
+ //■class(instance)_index:38
+ public interface INicoMarqueeClient implements IMarqueeClient
+ {
+ //static constructor
+ public static function INicoMarqueeClient$cinit()
+ { //MethodID:477, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function get categoryGroup():String; //MethodID:478, dispID:0
+
+ function get isOfficialAnime():Boolean; //MethodID:479, dispID:0
+
+ function get isNoLoadAdsLiveBanner():Boolean; //MethodID:480, dispID:0
+
+ function get onCommentVisibleEnabledUpdated():Functions; //MethodID:481, dispID:0
+
+ function get onParadeReady():Functions; //MethodID:482, dispID:0
+
+ //constructor
+ public function INicoMarqueeClient(); //MethodID:483, dispID:0
+ }
+}
+
+//■script030■
+
+package jp.nicovideo.util.events{
+
+ //■class(instance)_index:39
+ public interface EventSender
+ {
+ //static constructor
+ public static function EventSender$cinit()
+ { //MethodID:485, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function get eventNames():Array; //MethodID:486, dispID:0
+
+ //constructor
+ public function EventSender(); //MethodID:487, dispID:0
+ }
+}
+
+//■script031■
+
+package jp.nicovideo.marquee{
+
+ import flash.display.DisplayObjectContainer
+ import flash.display.MovieClip
+ import flash.display.Sprite
+ import flash.net.URLRequest
+ import flash.net.navigateToURL
+ import jp.nicovideo.marquee.events.MarqueeErrorEvent
+ import jp.nicovideo.marquee.events.MarqueeEvent
+ import jp.nicovideo.marquee.events.MarqueeFullEvent
+ import jp.nicovideo.marquee.models.MarqueeAspectRatio
+ import jp.nicovideo.marquee.models.info.IMarqueeInfo
+ import jp.nicovideo.nicoplayer.models.IPlayerConfig
+ import jp.nicovideo.nicoplayer.models.PlayerInfo
+ import jp.nicovideo.nicoplayer.models.PlayerVersion
+ import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
+ import jp.nicovideo.nicoplayer.models.ScreenMode
+ import jp.nicovideo.nicoplayer.models.SystemMessage
+ import jp.nicovideo.nicoplayer.models.api.IInitializeInfo
+ import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
+ import jp.nicovideo.nicoplayer.models.video.IVideoController
+ import jp.nicovideo.nicoplayer.views.IVideoLayerManager
+ import jp.nicovideo.util.Functions
+ import jp.nicovideo.util.HTTPUtils
+ import jp.nicovideo.util.TimeUtils
+ import jp.nicovideo.util.events.EventResult
+ import jp.nicovideo.util.events.event_sender
+ import jp.nicovideo.util.loka.__MSG__
+
+ use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
+ use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
+
+ //■class(instance)_index:40
+ public class MarqueeClient extends Object
+ implements INicoMarqueeClient, EventSender
+ {
+ //static constructor
+ public static function MarqueeClient$cinit()
+ { //MethodID:489, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
+ _OffFullScreenPriority = 10;
+ }
+
+ //static variables/etc.
+ private static const _OffFullScreenPriority:uint = 10; //slotID:1
+
+ //constructor
+ public function MarqueeClient(hug1:String, hug2:PlayerVersion, hug3:PlayerInfo, hug4:MovieClip, hug5:IVideoLayerManager, hug6:IPlayerConfig, hug7:IInitializeInfo, hug8:Function)
+ { //MethodID:491, LocalCount= 10 , MaxScope= 2, MaxStack= 4, CodeLength= 246
+ internal var playerURL:String; //slotID:1
+ internal var playerVersion:PlayerVersion; //slotID:2
+ internal var playerInfo:PlayerInfo; //slotID:3
+ internal var marqueeLayer:MovieClip; //slotID:4
+ internal var videoLayerManager:IVideoLayerManager; //slotID:5
+ internal var playerConfig:IPlayerConfig; //slotID:6
+ internal var initializeInfo:IInitializeInfo; //slotID:7
+ internal var callback:Function; //slotID:8
+ internal var params:Object; //slotID:9
+
+ playerURL = hug1;
+ playerVersion = hug2;
+ playerInfo = hug3;
+ marqueeLayer = hug4;
+ videoLayerManager = hug5;
+ playerConfig = hug6;
+ initializeInfo = hug7;
+ callback = hug8;
+ this.onMarqueeClientMarqueeStarted = new Functions();
+ this.onMarqueeClientMarqueeEnded = new Functions();
+ this.onMarqueeClientNicowariStarted = new Functions();
+ this.onMarqueeClientNicowariEnded = new Functions();
+ this._onCommentVisibleEnabledUpdated = new Functions();
+ this._onParadeReady = new Functions();
+
+ super();
+
+ this._this = this;
+ this._marqueeLayer = marqueeLayer;
+ this._videoLayerManager = videoLayerManager;
+ this._playerConfig = playerConfig;
+ this._isNicowariSkip = this._playerConfig.isNicowariSkip;
+ this._playerInfo = playerInfo;
+ this._initializeInfo = initializeInfo;
+ this._systemMessage = SystemMessage.instance;
+ this._callback = callback;
+ this._playerVersion = playerVersion;
+ params = {t:playerVersion.marqueePlayer};
+
+ this._systemMessage.informln(__MSG__("マーキーの初期化開始"));
+ HTTPUtils.loadSWF(function(hug1:*):void{ //MethodID:490, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 204
+ if(!hug1){
+ _systemMessage.informln(__MSG__("マーキーの取得に失敗"));
+
+ return;
+ }
+
+ _player = IMarqueePlayer(hug1);
+ _setVolume = _player.setVolume;
+
+ _player.addEventListener(MarqueeErrorEvent.ERROR, onErrorPlayer);
+ _player.addEventListener(MarqueeEvent.COMPLETE_PLAYER, onCompletePlayer);
+ _player.addEventListener(MarqueeEvent.STARTED_MARQUEE, onStartedMarquee);
+ _player.addEventListener(MarqueeEvent.ENDED_MARQUEE, onEndedMarquee);
+ _player.addEventListener(MarqueeEvent.CLICK_PLAY_BUTTON, onClickedPlayButton);
+ _player.addEventListener(MarqueeFullEvent.PLAY_VIDEO, onClickedNicowariPlayButton);
+ _player.addEventListener(MarqueeFullEvent.PAUSE_VIDEO, onClickedVideoPlayButton);
+ _player.initialize(IMarqueeClient(_this));
+ INicoMarqueePlayer(_player).setRecentPremiumUsers(initializeInfo.recentPremiumUsers);
+
+ if(_isLoadLater) load();
+ }, playerURL, params);
+ }
+
+ //variables/etc.
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onMarqueeClientMarqueeStarted:Functions;//slotID:0
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onMarqueeClientMarqueeEnded:Functions;//slotID:0
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onMarqueeClientNicowariStarted:Functions;//slotID:0
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onMarqueeClientNicowariEnded:Functions;//slotID:0
+ private var _this:IMarqueeClient; //slotID:0
+ private var _player:IMarqueePlayer; //slotID:0
+ private var _systemMessage:SystemMessage; //slotID:0
+ private var _setVolume:Function; //slotID:0
+ private var _marqueeLayer:Sprite; //slotID:0
+ private var _videoLayer:Sprite; //slotID:0
+ private var _playerConfig:IPlayerConfig; //slotID:0
+ private var _videoLayerManager:IVideoLayerManager; //slotID:0
+ private var _videoController:IVideoController; //slotID:0
+ private var _vars:NicoFlashVars; //slotID:0
+ private var _initializeInfo:IInitializeInfo; //slotID:0
+ private var _videoPlayed:Boolean; //slotID:0
+ private var _isNicowariSkip:Boolean; //slotID:0
+ private var _onceSetupTimeUtils:Boolean = false; //slotID:0
+ private var _completePlayer:Boolean = false; //slotID:0
+ private const _onCommentVisibleEnabledUpdated:Functions; //slotID:0
+ private const _onParadeReady:Functions; //slotID:0
+ private var _callback:Function; //slotID:0
+ private var _playerVersion:PlayerVersion; //slotID:0
+ private var _playerInfo:PlayerInfo; //slotID:0
+ private var _isLoadLater:Boolean = false; //slotID:0
+ private var _isLarqueeLoaded:Boolean = false; //slotID:0
+
+ public function load():void
+ { //MethodID:492, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 88
+ if(!this._player && !this._isLoadLater){
+ this._isLoadLater = true;
+ return;
+ }
+
+ if(this._isLarqueeLoaded) return;
+
+ this._isLarqueeLoaded = true;
+
+ if(!this._vars.watchFlashVars.isNoGetMarquee) this._player.load(this._playerVersion.larquee);
+
+ if(this._callback is Function) this._callback();
+ }
+
+ public function get eventNames():Array
+ { //MethodID:493, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 17
+ return ["onMarqueeClientMarqueeStarted", "onMarqueeClientMarqueeEnded", "onMarqueeClientNicowariStarted", "onMarqueeClientNicowariEnded"];
+ }
+
+ public function get marqueePlayer():IMarqueePlayer
+ { //MethodID:494, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._player;
+ }
+
+ private function onStartedMarquee(hug1:MarqueeEvent):void
+ { //MethodID:495, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 174
+ var hug2:IMarqueeInfo = (hug1.origin as IMarqueeInfo);
+
+ if(!hug2) return;
+
+ if((hug2.enabled && !this.isNicowariSkipEnabled) && ((hug2.priority >= _OffFullScreenPriority) && (this._playerConfig.screenMode != ScreenMode.NORMAL))){
+ this._playerConfig.screenMode = ScreenMode.NORMAL;
+
+ SystemMessage.instance.inform(__MSG__("ニコ割を再生"), false);
+ }
+
+ if(hug2.enabled && hug2.pauseVideo) onMarqueeClientNicowariStarted.apply(hug2);
+ onMarqueeClientMarqueeStarted.apply(hug2);
+ }
+
+ private function onEndedMarquee(hug1:MarqueeEvent):void
+ { //MethodID:496, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 106
+ var hug2:IMarqueeInfo = (hug1.origin as IMarqueeInfo);
+
+ if(!hug2) return;
+
+ if(this._videoLayer){
+ this._videoLayerManager.deleteMarqueeVideoLayer();
+
+ this._videoLayer = null;
+ }
+
+ if(hug2.enabled && hug2.pauseVideo) onMarqueeClientNicowariEnded.apply(hug2);
+ onMarqueeClientMarqueeEnded.apply(hug2);
+ }
+
+ private function onClickedPlayButton(hug1:MarqueeEvent):void
+ { //MethodID:497, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 42
+ var hug2:IMarqueeInfo = (hug1.origin as IMarqueeInfo);
+
+ if(!hug2) return;
+ onMarqueeClientNicowariStarted.apply(hug2);
+ }
+
+ private function onClickedNicowariPlayButton(hug1:MarqueeEvent):void
+ { //MethodID:498, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 115
+ var hug2:IMarqueeInfo = (hug1.origin as IMarqueeInfo);
+
+ if(!hug2) return;
+
+ if((hug2.enabled && !this.isNicowariSkipEnabled) && ((hug2.priority >= _OffFullScreenPriority) && (this._playerConfig.screenMode != ScreenMode.NORMAL))) this._playerConfig.screenMode = ScreenMode.NORMAL;
+ this.hideComment();
+ onMarqueeClientNicowariStarted.apply(hug2);
+ }
+
+ private function onClickedVideoPlayButton(hug1:MarqueeEvent):void
+ { //MethodID:499, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 47
+ var hug2:IMarqueeInfo = (hug1.origin as IMarqueeInfo);
+
+ if(!hug2) return;
+ this.showComment();
+ onMarqueeClientNicowariEnded.apply(hug2);
+ }
+
+ private function onCompletePlayer(hug1:MarqueeEvent):void
+ { //MethodID:500, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 21
+ this._completePlayer = true;
+
+ if(this._onceSetupTimeUtils) this.startPlayer();
+ }
+
+ private function startPlayer():void
+ { //MethodID:501, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 102
+ this._player.start();
+
+ var hug1:uint = ((this._playerConfig.aspectRatio == ScreenAspectRatio.NORMAL) ? MarqueeAspectRatio.NORMAL : MarqueeAspectRatio.WIDE);
+
+ INicoMarqueePlayer(this._player).updateAspect(hug1);
+ INicoMarqueePlayer(this._player).updateNicowariSkip(this._isNicowariSkip);
+
+ if(this._playerConfig.isMute) this._setVolume.call(null, 0.0);
+ }
+
+ private function onErrorPlayer(hug1:MarqueeErrorEvent):void
+ { //MethodID:502, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 129
+ if((hug1.errorId == MarqueeErrorEvent.INITIALIZE_DOWNLOAD_ERROR) || (hug1.errorId == MarqueeErrorEvent.INITIALIZE_XML_FAIL)){
+ this._player = null;
+ this._completePlayer = false;
+
+ this._systemMessage.informln(__MSG__("マーキーの初期化に失敗"));
+ }else if((hug1.errorId == MarqueeErrorEvent.SENDED_FAIL) || (hug1.errorId == MarqueeErrorEvent.SENDED_ERROR) || (hug1.errorId == MarqueeErrorEvent.SENDED_NOAUTH)){
+ this._systemMessage.informln(__MSG__("ゲームまたはアンケートの情報の送信に失敗"));
+ }
+ }
+
+ public function get userID():String
+ { //MethodID:503, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
+ return this._initializeInfo.userID;
+ }
+
+ public function get category():String
+ { //MethodID:504, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
+ return this._vars.category;
+ }
+
+ public function get categoryGroup():String
+ { //MethodID:505, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
+ return this._vars.categoryGroup;
+ }
+
+ public function get isNoLoadAdsLiveBanner():Boolean
+ { //MethodID:506, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
+ return this._playerInfo.isNoLoadAdsLiveBanner;
+ }
+
+ public function get onCommentVisibleEnabledUpdated():Functions
+ { //MethodID:507, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._onCommentVisibleEnabledUpdated;
+ }
+
+ public function get onParadeReady():Functions
+ { //MethodID:508, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._onParadeReady;
+ }
+
+ public function get marqueeLayer():DisplayObjectContainer
+ { //MethodID:509, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._marqueeLayer;
+ }
+
+ public function get videoLayer():DisplayObjectContainer
+ { //MethodID:510, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
+ if(!this._videoLayer) this._videoLayer = this._videoLayerManager.createMarqueeVideoLayer();
+
+ return this._videoLayer;
+ }
+
+ public function get volume():Number
+ { //MethodID:511, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 29
+ return (this._playerConfig.isMute ? 0 : this._playerConfig.volume);
+ }
+
+ public function jumpToURL(hug1:String):void
+ { //MethodID:512, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 27
+ this._videoController.stop();
+ navigateToURL(new URLRequest(hug1), "_blank");
+ }
+
+ public function get isNicowariSkipEnabled():Boolean
+ { //MethodID:513, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 38
+ if(this._vars.watchFlashVars.forceNicowariOff) return true;
+
+ return (this._isNicowariSkip && this._initializeInfo.isPremium);
+ }
+
+ public function showComment():void
+ { //MethodID:514, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
+ this.onCommentVisibleEnabledUpdated.apply(true);
+ }
+
+ public function hideComment():void
+ { //MethodID:515, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
+ this.onCommentVisibleEnabledUpdated.apply(false);
+ }
+
+ public function readyParade(hug1:Array):void
+ { //MethodID:516, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ public function startParade():void
+ { //MethodID:517, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ public function endParade():void
+ { //MethodID:518, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ public function get videoID():String
+ { //MethodID:519, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
+ return this._vars.watchFlashVars.watchVideoID;
+ }
+
+ public function get videoTitle():String
+ { //MethodID:520, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
+ return this._vars.videoTitle;
+ }
+
+ public function get videoTime():String
+ { //MethodID:521, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
+ return this._vars.watchFlashVars.gameTime;
+ }
+
+ public function get videoCode():String
+ { //MethodID:522, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
+ return this._vars.watchFlashVars.gameKey;
+ }
+
+ public function get nowTime():Number
+ { //MethodID:523, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
+ return TimeUtils.time;
+ }
+
+ public function get isChannel():Boolean
+ { //MethodID:524, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
+ return this._vars.isChannel;
+ }
+
+ public function get segmentInfo():Object
+ { //MethodID:525, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 121
+ var hug1:Object = {};
+
+ if(this._vars.watchFlashVars.userSex != null) hug1.userSex = this._vars.watchFlashVars.userSex;
+
+ if(this._vars.watchFlashVars.userAge != null) hug1.userAge = this._vars.watchFlashVars.userAge;
+
+ if(this._vars.watchFlashVars.userPrefecture != null) hug1.userPrefecture = this._vars.watchFlashVars.userPrefecture;
+
+ hug1.memberType = (this._initializeInfo.isPremium ? 1 : 0);
+ return hug1;
+ }
+
+ public function get isVideoPlaying():Boolean
+ { //MethodID:526, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
+ return this._videoController.isPlaying;
+ }
+
+ public function set videoController(hug1:IVideoController):void
+ { //MethodID:527, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._videoController = hug1;
+ }
+
+ public function set flashVars(hug1:NicoFlashVars):void
+ { //MethodID:528, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
+ this._vars = hug1;
+ }
+
+ public function get isOfficialAnime():Boolean
+ { //MethodID:529, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
+ return this._vars.watchFlashVars.isOfficialAnime;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsMuteUpdated(hug1:Boolean):EventResult
+ { //MethodID:530, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 77
+ if(!this._player) return EventResult.THROUGH;
+
+ if(!Boolean(this._setVolume)) return EventResult.THROUGH;
+
+ if(hug1){
+ this._setVolume.call(null, 0.0);
+ }else{
+ this._setVolume.call(null, this._playerConfig.volume);
+ }
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigVolumeUpdated(hug1:Number):EventResult
+ { //MethodID:531, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 51
+ if(!this._player) return EventResult.THROUGH;
+
+ if(!Boolean(this._setVolume)) return EventResult.THROUGH;
+ this._setVolume.call(null, hug1);
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsNicowariSkipUpdated(hug1:Boolean):EventResult
+ { //MethodID:532, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 41
+ if(!this._player) return EventResult.THROUGH;
+
+ this._isNicowariSkip = hug1;
+
+ INicoMarqueePlayer(this._player).updateNicowariSkip(hug1);
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onServerTimeUpdated():EventResult
+ { //MethodID:533, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 34
+ if(!this._onceSetupTimeUtils){
+ this._onceSetupTimeUtils = true;
+
+ if(this._completePlayer) this.startPlayer();
+ }
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onFeedListUpdated(hug1:XML):EventResult
+ { //MethodID:534, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 36
+ if(!this._player) return EventResult.THROUGH;
+ INicoMarqueePlayer(this._player).updateFeedList(hug1);
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigAspectRatioUpdate(hug1:uint):EventResult
+ { //MethodID:535, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 68
+ if(!this._player) return EventResult.THROUGH;
+
+ var hug2:uint = ((hug1 == ScreenAspectRatio.NORMAL) ? MarqueeAspectRatio.NORMAL : MarqueeAspectRatio.WIDE);
+
+ INicoMarqueePlayer(this._player).updateAspect(hug2);
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigScreenModeUpdated(hug1:uint):EventResult
+ { //MethodID:536, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 36
+ if(!this._player) return EventResult.THROUGH;
+ INicoMarqueePlayer(this._player).updateScreenMode(hug1);
+
+ return EventResult.THROUGH;
+ }
+ }
+}
+
+//■script032■
+
+package jp.nicovideo.nicoplayer.hiroba.events{
+
+ //■class(instance)_index:41
+ public class HirobaErrorStatus extends Object
+ {
+ //static constructor
+ public static function HirobaErrorStatus$cinit()
+ { //MethodID:538, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
+ HIROBA_INFO_NOT_FOUND = "hirobaInfoNotFound";
+ HIROBA_CONNECTOR_NOT_FOUND = "hirobaConnectorNotFound";
+ }
+
+ //static variables/etc.
+ public static const HIROBA_INFO_NOT_FOUND:String = "hirobaInfoNotFound";//slotID:1
+ public static const HIROBA_CONNECTOR_NOT_FOUND:String = "hirobaConnectorNotFound";//slotID:2
+
+ //constructor
+ public function HirobaErrorStatus()
+ { //MethodID:539, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+ }
+}
+
+//■script033■
+
+package jp.nicovideo.nicoplayer.models{
+
+ //■class(instance)_index:42
+ public class ScreenAspectRatio extends Object
+ {
+ //static constructor
+ public static function ScreenAspectRatio$cinit()
+ { //MethodID:541, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 19
+ NORMAL = 0;
+ WIDE = 1;
+ }
+
+ //static variables/etc.
+ public static const NORMAL:uint = 0; //slotID:1
+ public static const WIDE:uint = 1; //slotID:2
+
+ //constructor
+ public function ScreenAspectRatio()
+ { //MethodID:542, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
+ super();
+ }
+ }
+}
+
+//■script034■
+
+package jp.nicovideo.nicoplayer.remocon{
+
+ import flash.events.Event
+ import jp.nicovideo.marquee.models.info.IMarqueeInfo
+ import jp.nicovideo.nicoplayer.models.comment.CommentRouter
+ import jp.nicovideo.nicoplayer.storages.CommentPostResultStatus
+ import jp.nicovideo.util.events.EventResult
+
+ use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
+
+ //■class(instance)_index:43
+ public class RemoconPlayerStateObserver extends Object
+ {
+ //static constructor
+ public static function RemoconPlayerStateObserver$cinit()
+ { //MethodID:544, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function RemoconPlayerStateObserver(hug1:Function, hug2:IRemoconEventNotifier, hug3:IRemoconFullScreenKeeper)
+ { //MethodID:546, LocalCount= 5 , MaxScope= 2, MaxStack= 3, CodeLength= 87
+ internal var updateRemoconState:Function; //slotID:1
+ internal var notifier:IRemoconEventNotifier; //slotID:2
+ internal var fullScreenKeeper:IRemoconFullScreenKeeper; //slotID:3
+ internal var remoconState:RemoconState; //slotID:4
+
+ remoconState = null;
+ updateRemoconState = hug1;
+ notifier = hug2;
+ fullScreenKeeper = hug3;
+
+ super();
+
+ this._updateRemoconState = updateRemoconState;
+ this._notifier = notifier;
+ this._fullScreenKeeper = fullScreenKeeper;
+ remoconState = RemoconState.instance;
+
+ remoconState.addEventListener(Event.CONNECT, function(hug1:Event, ...args):void{ //MethodID:545, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 24
+ remoconState.removeEventListener(Event.CONNECT, args.callee);
+ _updateRemoconState();
+ });
+ }
+
+ //variables/etc.
+ private var _updateRemoconState:Function; //slotID:0
+ private var _isHirobaMode:Boolean; //slotID:0
+ private var _isNicowariMode:Boolean; //slotID:0
+ private var _notifier:IRemoconEventNotifier; //slotID:0
+ private var _fullScreenKeeper:IRemoconFullScreenKeeper; //slotID:0
+
+ private function _onChangedStatus():void
+ { //MethodID:547, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 24
+ if(RemoconState.instance.isConnecting) this._updateRemoconState.apply();
+ }
+
+ public function get isHirobaMode():Boolean
+ { //MethodID:548, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isHirobaMode;
+ }
+
+ public function get isNicowariMode():Boolean
+ { //MethodID:549, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._isNicowariMode;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsMuteUpdated(hug1:Boolean):EventResult
+ { //MethodID:550, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
+ this._onChangedStatus();
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsLoopUpdated(hug1:Boolean):EventResult
+ { //MethodID:551, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
+ this._onChangedStatus();
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigVolumeUpdated(hug1:Number):EventResult
+ { //MethodID:552, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
+ this._onChangedStatus();
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigCommentVisibleUpdated(hug1:Boolean):EventResult
+ { //MethodID:553, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
+ this._onChangedStatus();
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigScreenModeUpdated(hug1:uint):EventResult
+ { //MethodID:554, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
+ this._onChangedStatus();
+ this._fullScreenKeeper.screenModeUpdateListener(hug1);
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoPlayed():EventResult
+ { //MethodID:555, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
+ this._onChangedStatus();
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStopped():EventResult
+ { //MethodID:556, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
+ this._onChangedStatus();
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onHirobaPlayerVisibleUpdated(hug1:Boolean):EventResult
+ { //MethodID:557, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
+ this._isHirobaMode = hug1;
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onMarqueeClientNicowariStarted(hug1:IMarqueeInfo):EventResult
+ { //MethodID:558, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
+ this._isNicowariMode = true;
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onMarqueeClientNicowariEnded(hug1:IMarqueeInfo):EventResult
+ { //MethodID:559, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
+ this._isNicowariMode = false;
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentPostFinished(hug1:String, hug2:String, hug3:Number):EventResult
+ { //MethodID:560, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 47
+ var hug4:Boolean = (hug2 == CommentPostResultStatus.SUCCESS);
+
+ this._notifier.receiveCommentPostResult(hug4, (hug4 ? null : RemoconPostCommentErrorStatus.OTHER));
+
+ return EventResult.THROUGH;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoSeeked(hug1:Number):EventResult
+ { //MethodID:561, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 17
+ this._notifier.receiveVideoSeekResult(hug1);
+
+ return EventResult.THROUGH;
+ }
+
+ public function onCommentRouterPostError(hug1:String):void
+ { //MethodID:562, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 42
+ this._notifier.receiveCommentPostResult(false, ((hug1 == CommentRouter.ERROR_POST_SAME_COMMENT) ? RemoconPostCommentErrorStatus.SAME_MESSAGE : RemoconPostCommentErrorStatus.OTHER));
+ }
+ }
+}
+
+//■script035■
+
+package jp.nicovideo.nicoplayer.config{
+
+
+ public function getDebugMode():uint
+ { //dispID:1, MethodID:564, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
+ return DebugMode.NON;
+ }
+
+}
+
+//■script036■
+
+package jp.nicovideo.nicoplayer.models.api{
+
+ //■class(instance)_index:44
+ public interface IRegisterBGM
+ {
+ //static constructor
+ public static function IRegisterBGM$cinit()
+ { //MethodID:566, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
+ }
+
+ //variables/etc.
+ function registerBGMVideoIDs(hug1:Function, hug2:String, hug3:Array):void; //MethodID:567, dispID:0
+
+ function registerCMVideoIDs(hug1:Function, hug2:String, hug3:Array):void; //MethodID:568, dispID:0
+
+ //constructor
+ public function IRegisterBGM(); //MethodID:569, dispID:0
+ }
+}
+
+//■script037■
+
+package jp.nicovideo.nicoplayer.models.api{
+
+ import jp.nicovideo.nicoplayer.config.NicoConfig
+ import jp.nicovideo.util.HTTPUtils
+
+ //■class(instance)_index:45
+ public class RegisterBGM extends Object implements IRegisterBGM
+ {
+ //static constructor
+ public static function RegisterBGM$cinit()
+ { //MethodID:571, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function RegisterBGM(hug1:NicoConfig)
+ { //MethodID:572, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
+ super();
+
+ this.__cfg = hug1;
+ }
+
+ //variables/etc.
+ private var __cfg:NicoConfig; //slotID:0
+
+ public function registerBGMVideoIDs(hug1:Function, hug2:String, hug3:Array):void
+ { //MethodID:573, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 14
+ this.__callAPI(hug1, hug2, hug3, "bgm");
+ }
+
+ public function registerCMVideoIDs(hug1:Function, hug2:String, hug3:Array):void
+ { //MethodID:574, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 14
+ this.__callAPI(hug1, hug2, hug3, "cm");
+ }
+
+ private function __callAPI(hug1:Function, hug2:String, hug3:Array, hug4:String):void
+ { //MethodID:576, LocalCount= 6 , MaxScope= 2, MaxStack= 5, CodeLength= 112
+ internal var f:Function; //slotID:1
+ internal var threadID:String; //slotID:2
+ internal var videoIDs:Array; //slotID:3
+ internal var type:String; //slotID:4
+ internal var param:Object; //slotID:5
+
+ f = hug1;
+ threadID = hug2;
+ videoIDs = hug3;
+ type = hug4;
+ param = {id:threadID, type:type};
+
+ if(videoIDs && (videoIDs.length != 0)) param["bgm_id[]"] = videoIDs;
+ HTTPUtils.loadXML(function(hug1:XML):void{ //MethodID:575, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 56
+ if(hug1 === null){
+ f(false, null);
+
+ return;
+ }
+
+ if(hug1.@status == "fail"){
+ f(false, hug1.error.code);
+
+ return;
+ }
+
+ f(true, null);
+ }, this.__cfg.REGISTERBGM_API_URL, param);
+ }
+ }
+}
+
+//■script038■
+
+package jp.nicovideo.nicoplayer.models.comment{
+
+ import jp.nicovideo.util.Functions
+ import jp.nicovideo.util.events.EventResult
+ import jp.nicovideo.util.events.event_sender
+
+ use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
+ use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
+
+ //■class(instance)_index:46
+ public class CommentPoolContainer extends Object
+ {
+ //static constructor
+ public static function CommentPoolContainer$cinit()
+ { //MethodID:578, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
+ }
+
+ //constructor
+ public function CommentPoolContainer()
+ { //MethodID:579, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
+ this._list = {};
+ this.onCommentPoolContainerUpdated = new Functions();
+
+ super();
+ }
+
+ //variables/etc.
+ private var _list:Object; //slotID:0
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentPoolContainerUpdated:Functions;//slotID:0
+
+ public function get lists():Object
+ { //MethodID:580, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
+ return this._list;
+ }
+
+ (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdated(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):EventResult
+ { //MethodID:581, LocalCount= 5 , MaxScope= 1, MaxStack= 7, CodeLength= 88
+ if(!this._list.hasOwnProperty(hug4)) this._list[hug4] = [];
+
+ this._list[hug4] = CommentListUtils.update(this._list[hug4], hug1, hug2, hug3);
+
+ onCommentPoolContainerUpdated.apply(hug1, hug2, hug3, hug4);
+
+ return EventResult.THROUGH;
+ }
+ }
+}
+
+//■script039■
+
+package jp.nicovideo.nicoplayer.models.flashvars{
+
+ i