1 //■ABC File MinorVersion:16 , MajorVersion:46
8 //NAMESPACE_SETS cnt=279
18 package jp.nicovideo.ext{
20 import jp.nicovideo.ext.config.IThumbConfig
21 import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
23 //■class(instance)_index:0
24 public interface IThumbPlayer
27 public static function IThumbPlayer$cinit()
28 { //MethodID:0, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
32 function setThumbWatchVars(hug1:IThumbConfig, hug2:NicoFlashVars):void; //MethodID:1, dispID:0
34 function get initialized():Boolean; //MethodID:2, dispID:0
36 function playThumbPlayer():void; //MethodID:3, dispID:0
38 function pauseThumbPlayer():void; //MethodID:4, dispID:0
40 function set onChangedVideoStatus(hug1:Function):void; //MethodID:5, dispID:0
42 function get videoPlayerStatus():String; //MethodID:6, dispID:0
45 public function IThumbPlayer(); //MethodID:7, dispID:0
51 package jp.nicovideo.nicoplayer{
53 import flash.display.DisplayObject
54 import flash.display.MovieClip
55 import flash.display.Sprite
56 import flash.display.StageAlign
57 import flash.display.StageScaleMode
58 import flash.errors.IOError
59 import flash.errors.IllegalOperationError
60 import flash.events.Event
61 import flash.events.TimerEvent
62 import flash.net.URLRequest
63 import flash.net.URLVariables
64 import flash.net.navigateToURL
65 import flash.system.Security
66 import flash.ui.ContextMenu
67 import flash.utils.Timer
68 import jp.nicovideo.ext.config.IThumbConfig
69 import jp.nicovideo.hiroba.HirobaConnectorClient
70 import jp.nicovideo.hiroba.IHirobaConnector
71 import jp.nicovideo.hiroba.events.HirobaErrorEvent
72 import jp.nicovideo.hiroba.events.HirobaEvent
73 import jp.nicovideo.hiroba.events.HirobaEventReferer
74 import jp.nicovideo.hiroba.models.HirobaMessageServerInfo
75 import jp.nicovideo.marquee.INicoMarqueePlayer
76 import jp.nicovideo.marquee.MarqueeClient
77 import jp.nicovideo.nicoplayer.app.ApplibarLoader
78 import jp.nicovideo.nicoplayer.config.DebugMode
79 import jp.nicovideo.nicoplayer.config.DefaultInitializer
80 import jp.nicovideo.nicoplayer.config.NicoConfig
81 import jp.nicovideo.nicoplayer.config.getDebugMode
82 import jp.nicovideo.nicoplayer.external.ExternalClient
83 import jp.nicovideo.nicoplayer.hiroba.HirobaPlayer
84 import jp.nicovideo.nicoplayer.hiroba.events.HirobaErrorStatus
85 import jp.nicovideo.nicoplayer.models.IPlayerConfig
86 import jp.nicovideo.nicoplayer.models.MyList
87 import jp.nicovideo.nicoplayer.models.PlayDelay
88 import jp.nicovideo.nicoplayer.models.PlayerConfig
89 import jp.nicovideo.nicoplayer.models.PlayerInfo
90 import jp.nicovideo.nicoplayer.models.PlayerVersion
91 import jp.nicovideo.nicoplayer.models.RelatedVideoList
92 import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
93 import jp.nicovideo.nicoplayer.models.StartVposConfig
94 import jp.nicovideo.nicoplayer.models.SystemMessage
95 import jp.nicovideo.nicoplayer.models.VideoDetail
96 import jp.nicovideo.nicoplayer.models.VideoLoadGuardian
97 import jp.nicovideo.nicoplayer.models.api.BGMVideoInfo
98 import jp.nicovideo.nicoplayer.models.api.GetBGM
99 import jp.nicovideo.nicoplayer.models.api.GetChecklist
100 import jp.nicovideo.nicoplayer.models.api.GetFLV
101 import jp.nicovideo.nicoplayer.models.api.GetRelation
102 import jp.nicovideo.nicoplayer.models.api.GetSponsorInfo
103 import jp.nicovideo.nicoplayer.models.api.ICapturableVideoContainer
104 import jp.nicovideo.nicoplayer.models.api.IKeygen
105 import jp.nicovideo.nicoplayer.models.api.InitializeInfo
106 import jp.nicovideo.nicoplayer.models.api.Jumper
107 import jp.nicovideo.nicoplayer.models.api.Keygen
108 import jp.nicovideo.nicoplayer.models.api.RegisterBGM
109 import jp.nicovideo.nicoplayer.models.comment.CommentConstants
110 import jp.nicovideo.nicoplayer.models.comment.CommentList
111 import jp.nicovideo.nicoplayer.models.comment.CommentListPublicStatus
112 import jp.nicovideo.nicoplayer.models.comment.CommentPoolContainer
113 import jp.nicovideo.nicoplayer.models.comment.CommentRouter
114 import jp.nicovideo.nicoplayer.models.comment.CommentStorageEvents
115 import jp.nicovideo.nicoplayer.models.comment.ICommentList
116 import jp.nicovideo.nicoplayer.models.comment.LocalCommentList
117 import jp.nicovideo.nicoplayer.models.comment.OwnerCommentList
118 import jp.nicovideo.nicoplayer.models.comment.TimeMachine
119 import jp.nicovideo.nicoplayer.models.filter.ChannelReplacer
120 import jp.nicovideo.nicoplayer.models.filter.DeleteFilter
121 import jp.nicovideo.nicoplayer.models.filter.LockedComment
122 import jp.nicovideo.nicoplayer.models.filter.NGComment
123 import jp.nicovideo.nicoplayer.models.filter.NGInfo
124 import jp.nicovideo.nicoplayer.models.filter.NGResponseConstants
125 import jp.nicovideo.nicoplayer.models.filter.NGType
126 import jp.nicovideo.nicoplayer.models.filter.Replacer
127 import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
128 import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVarsInitializer
129 import jp.nicovideo.nicoplayer.models.flashvars.PlaylistFlashVars
130 import jp.nicovideo.nicoplayer.models.log.LogManager
131 import jp.nicovideo.nicoplayer.models.mylist.DefaultMylistAppender
132 import jp.nicovideo.nicoplayer.models.playlist.Playlist
133 import jp.nicovideo.nicoplayer.models.playlist.PlaylistController
134 import jp.nicovideo.nicoplayer.models.playlist.PlaylistErrorManager
135 import jp.nicovideo.nicoplayer.models.video.ChildVideoName
136 import jp.nicovideo.nicoplayer.models.video.FLVVideo
137 import jp.nicovideo.nicoplayer.models.video.IVideo
138 import jp.nicovideo.nicoplayer.models.video.SWFVideo
139 import jp.nicovideo.nicoplayer.models.video.VideoController
140 import jp.nicovideo.nicoplayer.models.video.VideoLoadWatcher
141 import jp.nicovideo.nicoplayer.models.video.VideoType
142 import jp.nicovideo.nicoplayer.models.video.VideoWrapper
143 import jp.nicovideo.nicoplayer.models.video.VposWatcher
144 import jp.nicovideo.nicoplayer.models.video.userSponsor.IUserSponsorVideo
145 import jp.nicovideo.nicoplayer.models.video.userSponsor.UserSponsorVideoClient
146 import jp.nicovideo.nicoplayer.plugin.NicoPluginClient
147 import jp.nicovideo.nicoplayer.remocon.RemoconClient
148 import jp.nicovideo.nicoplayer.remocon.RemoconFullScreenKeeper
149 import jp.nicovideo.nicoplayer.remocon.RemoconNotifier
150 import jp.nicovideo.nicoplayer.remocon.RemoconPlayerStateObserver
151 import jp.nicovideo.nicoplayer.remocon.RemoconReceiver
152 import jp.nicovideo.nicoplayer.remocon.RemoconState
153 import jp.nicovideo.nicoplayer.remocon.method.defineRemoconMethods
154 import jp.nicovideo.nicoplayer.storages.CommentStorage
155 import jp.nicovideo.nicoplayer.storages.CommentStorageError
156 import jp.nicovideo.nicoplayer.storages.ICommentStorage
157 import jp.nicovideo.nicoplayer.storages.MessageServerClient
158 import jp.nicovideo.nicoplayer.tpls.INicoViewController
159 import jp.nicovideo.nicoplayer.tpls.NicoViewControllerClient
160 import jp.nicovideo.nicoplayer.tpls.shutter.AudioShutterConstants
161 import jp.nicovideo.nicoplayer.tpls.shutter.CommentShutterConstants
162 import jp.nicovideo.nicoplayer.tpls.shutter.ControllerShutter
163 import jp.nicovideo.nicoplayer.videoender.IVideoenderTesterConfig
164 import jp.nicovideo.nicoplayer.videoender.VideoenderTesterConfig
165 import jp.nicovideo.nicoplayer.views.JumpMessageLayer
166 import jp.nicovideo.nicoplayer.views.VideoLayerConstants
167 import jp.nicovideo.nicoplayer.views.VideoLayerManager
168 import jp.nicovideo.nicoplayer.views.comment.CommentLayer
169 import jp.nicovideo.nicoplayer.views.comment.CommentLayerID
170 import jp.nicovideo.nicoplayer.views.comment.CommentLayerView
171 import jp.nicovideo.nicoplayer.views.comment.CommentViewTransformer
172 import jp.nicovideo.nicoplayer.views.framerate.FrameRateBooster
173 import jp.nicovideo.nicoscript.INicoSPlayer
174 import jp.nicovideo.nicoscript.NicoSClient
175 import jp.nicovideo.nicoscript.NicoSConstants
176 import jp.nicovideo.nicoscript.macro.parsers.IMacroParserResult
177 import jp.nicovideo.util.CrossSharedObject
178 import jp.nicovideo.util.HTTPUtils
179 import jp.nicovideo.util.ObjectUtils
180 import jp.nicovideo.util.StringUtils
181 import jp.nicovideo.util.api.APICacheProxy
182 import jp.nicovideo.util.events.EventBarrier
183 import jp.nicovideo.util.events.EventChunk
184 import jp.nicovideo.util.events.EventPipe
185 import jp.nicovideo.util.events.EventResult
186 import jp.nicovideo.util.events.EventSequence
187 import jp.nicovideo.util.events.event_sender
188 import jp.nicovideo.util.external.JSConnector
189 import jp.nicovideo.util.loka.Loka
190 import jp.nicovideo.util.loka.__MSG__
192 //■class(instance)_index:1
193 public class NicoPlayer extends Sprite implements IThumbPlayer
196 public static function NicoPlayer$cinit()
197 { //MethodID:9, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 54
198 DEBUG_MODE = getDebugMode();
199 DEBUG_MODE_EXT = ((DEBUG_MODE == DebugMode.NON) ? DebugMode.NON : DebugMode.EXTDEV);
202 //static variables/etc.
203 private static const DEBUG_MODE:uint; //slotID:1
204 private static const DEBUG_MODE_EXT:uint; //slotID:2
207 public function NicoPlayer()
208 { //MethodID:10, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 137
209 this.commentListContainer = {};
210 this.systemMessage = SystemMessage.instance;
211 this.nicoViewControllerClient = new NicoViewControllerClient();
212 this.pluginClient = new NicoPluginClient();
213 this._playlistSequences = [];
216 Security.allowDomain("*");
218 this.isThumbWatchMode = (loaderInfo.parameters[this._IS_THUMBWATCH_PARAM] == "1");
219 this.configure = new NicoConfig();
220 Loka.instance.debug = true;
222 if(this.isThumbWatchMode) return;
224 if(loaderInfo.parameters[this._PLAYLIST_ID]){
225 this.initializePlaylistPlayer();
230 this.initializeWatchPlayer();
234 private const _IS_THUMBWATCH_PARAM:String = "thumbWatch"; //slotID:0
235 private const _PLAYLIST_ID:String = "playlistId"; //slotID:0
236 private var getFLV:GetFLV; //slotID:0
237 private var flashVars:NicoFlashVars; //slotID:0
238 private var playlistFlashVars:PlaylistFlashVars; //slotID:0
239 private var playerConfig:IPlayerConfig; //slotID:0
240 private var video:VideoWrapper; //slotID:0
241 private var commentListContainer:Object; //slotID:0
242 private var mainCommentListName:String = "commentlist:main"; //slotID:0
243 private var commentList:CommentList; //slotID:0
244 private var ownerCommentList:OwnerCommentList; //slotID:0
245 private var privateCommentList:CommentList; //slotID:0
246 private var nicoSCommentList:CommentList; //slotID:0
247 private var localCommentList:LocalCommentList; //slotID:0
248 private var systemMessage:SystemMessage; //slotID:0
249 private var relatedList:RelatedVideoList; //slotID:0
250 private var ngComment:NGComment; //slotID:0
251 private var lockedComment:LockedComment; //slotID:0
252 private var replacer:Replacer; //slotID:0
253 private var playerVersion:PlayerVersion; //slotID:0
254 private var playerInfo:PlayerInfo; //slotID:0
255 private var timeMachine:TimeMachine; //slotID:0
256 private var deleteFilter:DeleteFilter; //slotID:0
257 private var channelReplacer:ChannelReplacer; //slotID:0
258 private var videoLoadGuardian:VideoLoadGuardian; //slotID:0
259 private var getChecklist:GetChecklist; //slotID:0
260 private var myList:MyList; //slotID:0
261 private var playlist:Playlist; //slotID:0
262 private var initializeInfo:InitializeInfo; //slotID:0
263 private var _startVposConfig:StartVposConfig; //slotID:0
264 private var commentLayerView:CommentLayerView; //slotID:0
265 private var commentLayer:CommentLayer; //slotID:0
266 private var commentViewTransformer:CommentViewTransformer; //slotID:0
267 private var commentRouter:CommentRouter; //slotID:0
268 private var videoLayerManager:VideoLayerManager; //slotID:0
269 private var videoController:VideoController; //slotID:0
270 private var jumpMsgLayer:JumpMessageLayer; //slotID:0
271 private var nicoViewController:INicoViewController; //slotID:0
272 private var nicoViewControllerClient:NicoViewControllerClient; //slotID:0
273 private var vposWatcher:VposWatcher; //slotID:0
274 private var commentShutter:ControllerShutter; //slotID:0
275 private var audioShutter:ControllerShutter; //slotID:0
276 private var playlistController:PlaylistController; //slotID:0
277 private var frameRateBooster:FrameRateBooster; //slotID:0
278 private var userSponsorVideo:IUserSponsorVideo; //slotID:0
279 private var hirobaPlayer:HirobaPlayer; //slotID:0
280 private var hirobaConnectorClient:HirobaConnectorClient; //slotID:0
281 private var _thumbConfig:IThumbConfig; //slotID:0
282 private var configure:NicoConfig; //slotID:0
283 private var keygen:IKeygen; //slotID:0
284 private var commentStorage:ICommentStorage; //slotID:0
285 private var jumper:Jumper; //slotID:0
286 private var nicosPlayer:INicoSPlayer; //slotID:0
287 private var nicosClient:NicoSClient; //slotID:0
288 private var nicosPipe:Function; //slotID:0
289 private var BGMVideoInfos:Array; //slotID:0
290 private var marqueeClient:MarqueeClient; //slotID:0
291 private var externalClient:ExternalClient; //slotID:0
292 private var isThumbWatchMode:Boolean = false; //slotID:0
293 private var _onChangedVideoStatus:Function; //slotID:0
294 private var _initialized:Boolean = false; //slotID:0
295 private var _wholeVideoLoadSucceeded:Boolean = false; //slotID:0
296 private var pluginClient:NicoPluginClient; //slotID:0
297 private var _playlistSequences:Array; //slotID:0
298 private var _isPlaylist:Boolean = false; //slotID:0
299 private var _videoLoadSucceeded:Boolean; //slotID:0
300 private var _isPlaylistPrepared:Boolean = false; //slotID:0
301 private var _shutterKeyLastClosed:int = -1; //slotID:0
302 private var _isShowedDialog:Boolean = false; //slotID:0
303 private var _logManager:LogManager; //slotID:0
304 private var _playerPageMyselfURL:String; //slotID:0
305 private var _videoenderTesterConfig:IVideoenderTesterConfig; //slotID:0
307 private function initializePlaylistPlayer():void
308 { //MethodID:12, LocalCount= 2 , MaxScope= 2, MaxStack= 19, CodeLength= 422
309 internal var menu:ContextMenu; //slotID:1
310 internal var vars:Object; //slotID:2
311 internal var seq:EventSequence; //slotID:3
313 this._isPlaylist = true;
315 DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE);
317 this.keygen = new Keygen(this.configure);
318 stage.align = StageAlign.TOP_LEFT;
319 stage.scaleMode = StageScaleMode.NO_SCALE;
320 menu = new ContextMenu();
322 menu.hideBuiltInItems();
324 menu.builtInItems.quality = true;
326 vars = loaderInfo.parameters;
327 this.flashVars = new NicoFlashVars();
329 NicoFlashVarsInitializer.setFlashVars(this.flashVars, vars);
331 this.playlistFlashVars = new PlaylistFlashVars(vars);
332 this._playerPageMyselfURL = function():String{ //MethodID:11, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 49
335 if(playlistFlashVars.playlistSort) hug1["sort"] = playlistFlashVars.playlistSort;
337 return StringUtils.joinQuery((configure.PLAYLIST_PAGE_BASE_URL + playlistFlashVars.playlistID), hug1);
339 this.nicoViewControllerClient.nicoConfig = this.configure;
341 this.nicoViewControllerClient.flashVars = this.flashVars;
342 this.nicoViewControllerClient.playlistFlashVars = this.playlistFlashVars;
343 this.nicoViewControllerClient.playerPageMyselfURL = this._playerPageMyselfURL;
345 this.pluginClient.setProperty("nicoConfig", this.configure);
346 this.pluginClient.setProperty("flashVars", this.flashVars);
348 this.nicoViewControllerClient.pluginClient = this.pluginClient;
349 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];
350 seq = new EventSequence(this);
352 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);
356 private function startPlaylist():void
357 { //MethodID:13, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 54
358 if(this.playlistController) this.playlistController.play(null, null, (this.playerConfig.autoPlay && !this.initializeInfo.isPremium));
359 EventSequence.current.next();
362 private function _loadWatchAPI():void
363 { //MethodID:15, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 96
364 internal var apiParams:Object; //slotID:1
366 this.nicoViewControllerClient.flashVars = null;
369 if(this._isPlaylist){
370 apiParams["mode"] = "playlist";
371 apiParams["playlist_token"] = this.playlist.token;
374 HTTPUtils.loadJSON(EventSequence.bind(function(hug1:Object):void{ //MethodID:14, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 245
375 var hug2:* = undefined;
377 if(!hug1 || (hug1.status == "ng")){
379 if(hug1.status_message == PlaylistErrorManager.TOKEN_TIMEOUT){
380 if(playlistController.errorCount < 1){
381 playlistController.errorCount++;
382 playlistController.isInvalidToken = true;
383 playlistController.isVideoUpdating = false;
385 playlistController.play(playlistController.threadID);
391 playlistController.onError(hug1.status_message.toString());
393 if(PlaylistErrorManager.TABWINDOW_ALERT_ERRORS.indexOf(hug1.status_message.toString()) != (-1)) playlistController.goNext(null, (playerConfig.autoPlay && !initializeInfo.isPremium));
399 flashVars = new NicoFlashVars();
401 NicoFlashVarsInitializer.setFlashVars(flashVars, hug1);
404 hug2 = playlist.getVideoInfo(playlistController.threadID);
405 hug2.flashVars = flashVars;
408 nicoViewControllerClient.flashVars = flashVars;
410 EventSequence.current.next();
411 }), (this.configure.WATCH_API_URL + this.playlistController.threadID), apiParams);
414 private function initializePlaylist():void
415 { //MethodID:18, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 96
416 internal var apiParams:Object; //slotID:1
419 apiParams["ts"] = new Date().time;
420 apiParams["playlist_token"] = this.playlistFlashVars.playlistToken;
421 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
422 internal var success:Boolean; //slotID:1
423 internal var reset:Function; //slotID:2
427 reset = function():void{ //MethodID:16, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 43
428 nicoViewControllerClient.getFLVData = null;
429 nicoViewControllerClient.videoController = null;
430 nicoViewControllerClient.commentRouter = null;
431 nicoViewControllerClient.relatedList = null;
432 nicoViewControllerClient.myList = null;
433 nicoViewControllerClient.defaultMylistAppender = null;
436 _isPlaylistPrepared = success;
439 EventSequence.current.next();
444 if(playlistController){
445 EventSequence.current.next();
450 initializeInfo = InitializeInfo.getInstance();
451 nicoViewControllerClient.initializeInfo = initializeInfo;
453 pluginClient.setProperty("initializeInfo", initializeInfo);
455 playlistController = new PlaylistController(_playlistSequences, initializePlaylist, playlist, playlistFlashVars, configure, playerInfo.playlistLimit, reset, playerConfig.isPlaylistRandomPlay, _playerPageMyselfURL);
456 nicoViewControllerClient.playlistController = playlistController;
458 EventSequence.current.next();
462 private function checkInitializePlaylist():void
463 { //MethodID:19, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 105
464 var hug1:String = null;
466 if(!this.initializeInfo || !this.initializeInfo.userID){
467 this.systemMessage.informln(__MSG__("ユーザー情報の取得に失敗"));
469 hug1 = ("<p><b>" + __MSG__("ユーザー情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("ログインしていない可能性があります。") + "</p>");
471 this.systemMessage.alert(hug1);
476 EventSequence.current.next();
479 public function setThumbWatchVars(hug1:IThumbConfig, hug2:NicoFlashVars):void
480 { //MethodID:20, LocalCount= 4 , MaxScope= 1, MaxStack= 23, CodeLength= 234
481 if(DEBUG_MODE_EXT != DebugMode.NON){
482 DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE_EXT);
483 DefaultInitializer.setThumbDebugMode(this.configure);
485 DefaultInitializer.setConfig(this.configure, hug1.playerURL, DebugMode.NON);
488 this.keygen = new Keygen(this.configure);
489 this._thumbConfig = hug1;
490 this.flashVars = hug2;
491 this.nicoViewControllerClient.thumbConfig = hug1;
492 this.nicoViewControllerClient.nicoConfig = this.configure;
493 this.nicoViewControllerClient.flashVars = hug2;
494 var hug3:EventSequence = new EventSequence(this);
496 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);
500 public function get initialized():Boolean
501 { //MethodID:21, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
502 return this._initialized;
505 public function playThumbPlayer():void
506 { //MethodID:22, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 47
507 if(this.isThumbWatchMode && this.video && this.video.isInitialized) this.video.play();
510 public function pauseThumbPlayer():void
511 { //MethodID:23, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 47
512 if(this.isThumbWatchMode && this.video && this.video.isInitialized) this.video.stop();
515 public function set onChangedVideoStatus(hug1:Function):void
516 { //MethodID:25, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 57
517 internal var onChanged:Function; //slotID:1
521 if(!this.isThumbWatchMode) throw new IllegalOperationError("NicoPlayer.set onChangedVideoStatus: player is not in thumbwatch.");
523 if(onChanged == null) throw new ArgumentError("NicoPlayer.set onChangedVideoStatus: invalid parameters onChanged is null.");
525 this._onChangedVideoStatus = function(hug1:String):void{ //MethodID:24, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 24
526 if(!_initialized) _initialized = true;
531 public function get videoPlayerStatus():String
532 { //MethodID:26, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 49
533 if(this.isThumbWatchMode && this.video && this.video.isInitialized) return this.video.videoPlayerStatus;
538 private function initializeWatchPlayer():void
539 { //MethodID:27, LocalCount= 4 , MaxScope= 1, MaxStack= 31, CodeLength= 362
540 DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE);
542 this.keygen = new Keygen(this.configure);
543 stage.align = StageAlign.TOP_LEFT;
544 stage.scaleMode = StageScaleMode.NO_SCALE;
545 var hug1:ContextMenu = new ContextMenu();
547 hug1.hideBuiltInItems();
549 hug1.builtInItems.quality = true;
551 var hug2:Object = loaderInfo.parameters;
552 this.flashVars = new NicoFlashVars();
554 NicoFlashVarsInitializer.setFlashVars(this.flashVars, hug2);
556 this._playerPageMyselfURL = (this.configure.BASE_URL + "watch/" + this.flashVars.watchID);
557 this.nicoViewControllerClient.nicoConfig = this.configure;
558 this.nicoViewControllerClient.flashVars = this.flashVars;
559 this.nicoViewControllerClient.playerPageMyselfURL = this._playerPageMyselfURL;
561 this.pluginClient.setProperty("nicoConfig", this.configure);
562 this.pluginClient.setProperty("flashVars", this.flashVars);
564 this.nicoViewControllerClient.pluginClient = this.pluginClient;
565 var hug3:EventSequence = new EventSequence(this);
567 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);
571 private function initializeCrossSharedObjectSWF():void
572 { //MethodID:30, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 64
573 internal var _url:String; //slotID:1
576 _url = StringUtils.joinQuery(this.configure.CROSSSHAREDOBJECT_SWF_URL, {t:this.playerVersion.crossSharedObject});
578 CrossSharedObject.init(_url, EventSequence.bind(function(hug1:Boolean):void{ //MethodID:29, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 134
579 internal var sccessed:Boolean; //slotID:1
583 if(!sccessed) throw new Error("NicoPlayer.loadCrossSharedObjectSWF: failure to load \"" + configure.CROSSSHAREDOBJECT_SWF_URL + "\"");
585 if(CrossSharedObject.isPersistable || !configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL){
586 EventSequence.current.next();
588 CrossSharedObject.terminate();
590 _url = StringUtils.joinQuery(configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL, {t:playerVersion.crossSharedObject});
592 CrossSharedObject.init(_url, EventSequence.bind(function(hug1:Boolean):void{ //MethodID:28, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 38
593 if(!hug1) throw new Error("NicoPlayer.loadCrossSharedObjectNoNimgSWF: failure to load \"" + configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL + "\"");
594 EventSequence.current.next();
600 private function createLogger():void
601 { //MethodID:31, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 42
602 this._logManager = new LogManager(!CrossSharedObject.isPersistable);
603 this.nicoViewControllerClient.logManager = this._logManager;
605 EventSequence.current.next();
608 private function initializePlayerConfig():void
609 { //MethodID:32, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 116
610 this.playerConfig = new PlayerConfig(this.isThumbWatchMode);
611 this.nicoViewControllerClient.playerConfig = this.playerConfig;
613 this.pluginClient.setProperty("playerConfig", this.playerConfig);
615 this.playerConfig.deepenedCommentForce = this.flashVars.isDeepenedCommentForce;
616 this.playerConfig.aspectRatio = ((this.flashVars.isWide || this._isPlaylist) ? ScreenAspectRatio.WIDE : ScreenAspectRatio.NORMAL);
618 EventSequence.current.next();
621 private function initializeJumper():void
622 { //MethodID:33, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 74
623 this.jumper = new Jumper(this.configure, this.flashVars.watchID);
624 this.nicoViewControllerClient.jumper = this.jumper;
625 this._startVposConfig = new StartVposConfig(this.jumper, this.flashVars);
626 this.nicoViewControllerClient.startVposConfig = this._startVposConfig;
628 EventSequence.current.next();
631 private function initializePlayerVersion():void
632 { //MethodID:35, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 116
633 internal var request:URLRequest; //slotID:1
634 internal var params:URLVariables; //slotID:2
635 internal var api:APICacheProxy; //slotID:3
637 request = new URLRequest(this.configure.PLAYERVERSION_XML_URL);
638 params = new URLVariables();
639 params.v = this.flashVars.playerVersionUpdated;
640 request.data = params;
641 api = new APICacheProxy(request, 0, uint.MAX_VALUE, this.flashVars.playerVersionUpdated, false);
642 this.playerVersion = new PlayerVersion(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:34, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 36
643 if(!hug1) throw new Error("NicoPlayer.playerVersion. initialize error");
645 nicoViewControllerClient.playerVersion = playerVersion;
647 EventSequence.current.next();
651 private function initializeJSConnector():void
652 { //MethodID:37, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 71
653 internal var request:URLRequest; //slotID:1
655 request = new URLRequest(this.configure.JSCONNECTOR_SWF_URL);
656 request.data = new URLVariables("v=" + this.playerVersion.jsconnector);
658 JSConnector.init(request, EventSequence.current.bind(function(hug1:Boolean):void{ //MethodID:36, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 27
659 if(!hug1) throw new IOError("NicoPlayer.initializeJSConnector: initialize error.");
660 EventSequence.current.next();
664 private function initializePlayerInfo():void
665 { //MethodID:39, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 116
666 internal var request:URLRequest; //slotID:1
667 internal var params:URLVariables; //slotID:2
668 internal var api:APICacheProxy; //slotID:3
670 request = new URLRequest(this.configure.PLAYERINFO_XML_URL);
671 params = new URLVariables();
672 params.v = this.flashVars.playerInfoUpdated;
673 request.data = params;
674 api = new APICacheProxy(request, 0, uint.MAX_VALUE, this.flashVars.playerInfoUpdated, false);
675 this.playerInfo = new PlayerInfo(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:38, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 36
676 if(!hug1) throw new Error("NicoPlayer.playerInfo. initialize error");
678 nicoViewControllerClient.playerInfo = playerInfo;
680 EventSequence.current.next();
684 private function loadTemplateSWF():void
685 { //MethodID:41, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
686 HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:40, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 45
687 if(!hug1) throw new Error("NicoPlayer.loadTemplateSWF: failure to load \"" + configure.VIEW_SWF_URL + "\"");
689 nicoViewControllerClient.viewRoot = hug1;
691 EventSequence.current.next();
692 }), this.configure.VIEW_SWF_URL, {t:this.playerVersion.nicoplayerTemplate});
695 private function loadViewControllerSWF():void
696 { //MethodID:43, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
697 HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:42, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 89
698 if(!hug1) throw new Error("NicoPlayer.loadViewControllerSWF: failure to load \"" + configure.VIEWCONTROLLER_SWF_URL + "\"");
699 addChild(nicoViewControllerClient.viewRoot);
701 nicoViewController = INicoViewController(hug1);
703 nicoViewController.startInit(nicoViewControllerClient);
705 if(playlistController) playlistController.nicoViewController = nicoViewController;
706 EventSequence.current.next();
707 }), this.configure.VIEWCONTROLLER_SWF_URL, {t:this.playerVersion.nicoplayerViewController});
710 private function loadNicoScriptSWF():void
711 { //MethodID:45, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 76
712 if(!this.flashVars.hasOwnerThread && !this.playlistFlashVars){
713 EventSequence.current.next();
718 HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:44, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 50
719 if(!hug1) throw new Error("NicoPlayer.loadViewControllerSWF: failure to load \"" + configure.NICOSPLAYER_URL + "\"");
721 nicosPlayer = INicoSPlayer(hug1);
723 EventSequence.current.next();
724 }), this.configure.NICOSPLAYER_URL, {t:this.playerVersion.nicoscriptPlayer});
727 private function getGetFLVAPIParams():Object
728 { //MethodID:46, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 165
729 var hug1:Object = {};
730 hug1["v"] = ((this._isPlaylist && this.playlistController) ? this.playlistController.threadID : this.flashVars.watchID);
732 if(this.flashVars.videoType == VideoType.SWF) hug1["as3"] = "1";
734 if(this.flashVars.forceLowMode) hug1["lo"] = "1";
736 if(this.flashVars.economyMode) hug1["eco"] = this.flashVars.economyMode;
738 if(this.flashVars.watchFlashVars.noHiroba || this._isPlaylist) hug1["nh"] = "1";
743 private function loadVideoInfoAPI():void
744 { //MethodID:48, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 65
745 this.nicoViewControllerClient.getFLVData = null;
747 this.systemMessage.informln(__MSG__("動画情報を取得開始"));
749 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
750 var hug2:* = undefined;
751 var hug6:* = undefined;
752 var hug3:* = _playerPageMyselfURL;
754 if(!hug1 || getFLV.closed){
755 systemMessage.informln(__MSG__("動画情報の取得に失敗"));
757 hug2 = (("<p><b>" + __MSG__("動画情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("ログイン状態が解除されているか、動画が非公開状態にある可能性があります。") + "<br />") + __MSG__("<a href=\"[[url]]\">リロードして再度ログイン</a>", hug3) + "</p>");
759 systemMessage.alert(hug2);
765 initializeInfo = InitializeInfo.getInstance();
766 nicoViewControllerClient.initializeInfo = initializeInfo;
768 pluginClient.setProperty("initializeInfo", initializeInfo);
771 if(!initializeInfo.userID){
772 systemMessage.informln(__MSG__("ユーザー情報の取得に失敗"));
774 hug2 = ("<p><b>" + __MSG__("ユーザー情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("以下のページにアクセスしログインしてください。") + "<a href=\"" + hug3 + "\">" + hug3 + "</a>" + "</p>");
776 systemMessage.alert(hug2);
781 if(flashVars.isChannel){
782 systemMessage.informln(__MSG__("チャンネル動画"));
783 }else if(flashVars.isCommunityThread){
784 systemMessage.informln(__MSG__("コミュニティ動画"));
787 nicoViewControllerClient.getFLVData = getFLV;
789 if(!pluginClient.hasInitialized("getFLV")) pluginClient.setProperty("getFLV", getFLV);
790 SystemMessage.instance.informln(__MSG__("スレッド(動画)") + ":" + flashVars.watchID);
792 var hug4:* = new RegExp("(https?|rtmp(e|t|te)?)://([^.]+).+", "ig");
793 var hug5:* = hug4.exec(getFLV.videoURL);
796 hug6 = ((__MSG__("動画ホスト") + ":") + ((hug5.length >= 1) ? hug5[3] : ""));
798 if(new RegExp("low$").test(getFLV.videoURL)) hug6 += __MSG__(" (エコノミー)");
799 SystemMessage.instance.informln(hug6);
802 EventSequence.current.next();
806 private function initializeMyList():void
807 { //MethodID:49, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 46
808 this.myList = new MyList(this.configure, this.getFLV.threadID);
809 this.nicoViewControllerClient.myList = this.myList;
811 EventSequence.current.next();
814 private function loadBGMVideoInfo():void
815 { //MethodID:51, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 119
816 this.BGMVideoInfos = [];
818 if((!this.flashVars.importedBGMVideos || (this.flashVars.importedBGMVideos.length == 0)) || ((this.getFLV.deleted != 0) && (this.getFLV.deleted != 8))){
819 EventSequence.current.next();
824 GetBGM.exec(EventSequence.bind(function(hug1:Boolean, hug2:Array):void{ //MethodID:50, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 118
825 var hug3:* = undefined;
826 var hug4:* = undefined;
829 systemMessage.informln(__MSG__("引用動画の情報の取得に失敗"));
831 hug3 = _playerPageMyselfURL;
832 hug4 = ("<p><b>" + __MSG__("引用動画の情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("お手数ですが以下のリンクをおしてページをロードしてください。") + "<a href=\"" + hug3 + "\">" + hug3 + "</a>" + "</p>");
834 systemMessage.alert(hug4);
839 BGMVideoInfos = hug2;
841 EventSequence.current.next();
842 }), this.configure.GETBGM_API_URL, this.getFLV.threadID);
845 private function initializeNG():void
846 { //MethodID:55, LocalCount= 2 , MaxScope= 2, MaxStack= 11, CodeLength= 145
847 internal var noLoad:Boolean; //slotID:1
849 noLoad = !CrossSharedObject.isPersistable;
850 this.nicoViewControllerClient.ngFilter = null;
851 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));
853 this.ngComment.onInitialized.add(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:53, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 187
854 internal var success:Boolean; //slotID:1
855 internal var ngCommentLength:*; //slotID:2
856 internal var ngUserLength:*; //slotID:3
858 ngCommentLength = undefined;
859 ngUserLength = undefined;
862 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>");
864 nicoViewControllerClient.ngFilter = ngComment;
866 if(!pluginClient.hasInitialized("ngFilter")) pluginClient.setProperty("ngFilter", ngComment);
868 if(!isThumbWatchMode){
872 ngComment.list.forEach(function(hug1:NGInfo, hug2:int, hug3:Array):void{ //MethodID:52, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 79
873 if(hug1.type == NGType.MESSAGE){
875 }else if(hug1.type == NGType.USER_ID){
879 _logManager.observer.onNGCommentInitialized(ngCommentLength, ngUserLength);
882 EventSequence.current.next();
884 this.ngComment.onUpdated.add(function(hug1:Array, hug2:String):void{ //MethodID:54, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 56
885 var hug3:ICommentList = null;
887 if(hug2 == NGResponseConstants.UNSERVE) return;
889 for each(hug3 in commentListContainer){
890 hug3.serveCommentList();
895 private function initializeCommentStorage():void
896 { //MethodID:59, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 106
897 internal var client:MessageServerClient; //slotID:1
900 this.nicoViewControllerClient.commentStorageEvents = null;
901 client = new MessageServerClient(this.getFLV.messageServerURL);
903 client.connectionLost.add(function(hug1:String):void{ //MethodID:56, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 20
904 systemMessage.informln(__MSG__("コメント受信中にエラーが発生: ") + hug1);
906 client.connected.add(function():void{ //MethodID:57, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 18
907 systemMessage.informln(__MSG__("コメントサーバーへの接続準備完了"));
910 if(this._logManager) this._logManager.observer.onThreadLoadStarted();
911 client.connect(EventSequence.bind(function(hug1:Boolean, hug2:String):void{ //MethodID:58, LocalCount= 3 , MaxScope= 0, MaxStack= 8, CodeLength= 131
912 commentStorage = new CommentStorage(client, keygen, initializeInfo.userID, initializeInfo.isPremium, flashVars, getFLV);
914 if((playerInfo.leafFilter.indexOf(getFLV.messageServerURL) != (-1)) || (flashVars.leafSwitch == NicoFlashVars.LEAF_DISABLE)) commentStorage.forceLeafOff = true;
916 nicoViewControllerClient.commentStorageEvents = new CommentStorageEvents(commentStorage);
918 if(_logManager) _logManager.observer.onThreadLoadCompleted(hug1);
919 EventSequence.current.next();
923 private function initializeGetChecklist():void
924 { //MethodID:61, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 102
925 internal var apiCacheProxy:APICacheProxy; //slotID:1
926 internal var callback:Function; //slotID:2
927 internal var noLoad:Boolean; //slotID:3
929 apiCacheProxy = new APICacheProxy(new URLRequest(this.configure.GET_CHECKLIST_URL), 0, 0, this.initializeInfo.userID);
930 callback = EventSequence.bind(function(hug1:Boolean):void{ //MethodID:60, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 11
931 EventSequence.current.next();
934 noLoad = !CrossSharedObject.isPersistable;
935 this.getChecklist = new GetChecklist(callback, apiCacheProxy, this.flashVars.watchFlashVars.useChecklistCache, noLoad);
938 private function initializeHiroba():void
939 { //MethodID:69, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 380
940 this._logManager.observer.onHirobaInitializeStarted();
942 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){
943 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);
944 EventSequence.current.next();
949 if(this.nicoViewControllerClient.hirobaPlayer){
950 this._logManager.observer.onHirobaInitializeAborted();
951 EventSequence.current.next();
956 this.hirobaPlayer = new HirobaPlayer(this.playerConfig, this.initializeInfo.isPremium);
957 this.nicoViewControllerClient.hirobaPlayer = this.hirobaPlayer;
959 HTTPUtils.loadSWF(function(hug1:Sprite):void{ //MethodID:68, LocalCount= 3 , MaxScope= 1, MaxStack= 6, CodeLength= 276
960 internal var swf:Sprite; //slotID:1
961 internal var connector:IHirobaConnector; //slotID:2
962 internal var succeeded:Boolean; //slotID:3
963 internal var client:HirobaConnectorClient; //slotID:4
964 internal var onConnectionFailed:Function; //slotID:5
965 internal var onDisconnected:Function; //slotID:6
966 internal var onConnected:Function; //slotID:7
970 onConnectionFailed = null;
971 onDisconnected = null;
974 onConnectionFailed = function(hug1:HirobaErrorEvent):void{ //MethodID:63, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 37
975 systemMessage.informln(__MSG__("広場の接続中にエラーが発生"));
976 _logManager.observer.onHirobaConnected(false, hug1.text, hug1.referer);
979 onDisconnected = function(hug1:HirobaErrorEvent):void{ //MethodID:64, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 36
980 systemMessage.informln(__MSG__("広場の接続中にエラーが発生"));
981 _logManager.observer.onHirobaDisconnected(hug1.text, hug1.referer);
984 onConnected = function(hug1:Boolean, hug2:String, hug3:String):void{ //MethodID:66, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 243
985 internal var succeeded:Boolean; //slotID:1
986 internal var status:String; //slotID:2
987 internal var referer:String; //slotID:3
993 if((referer == HirobaEventReferer.HIROBA_AGENT) && succeeded){
994 _logManager.observer.onHirobaConnected(true, status, referer);
1000 systemMessage.informln(__MSG__("広場の接続に失敗"));
1001 _logManager.observer.onHirobaConnected(false, status, referer);
1006 systemMessage.informln(__MSG__("広場の接続に成功"));
1007 _logManager.observer.onHirobaConnected(true, status, referer);
1008 hirobaPlayer.onClickedLink.add(function():void{ //MethodID:65, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 15
1009 if(videoController) videoController.stop();
1012 hirobaPlayer.connector = connector;
1014 if(commentRouter) commentRouter.addHiroba(hirobaPlayer);
1016 if(marqueeClient && marqueeClient.marqueePlayer) client.insertItemOnMarquee_0 = INicoMarqueePlayer(marqueeClient.marqueePlayer).interruptContent;
1018 hirobaConnectorClient = client;
1020 nicoViewController.onHirobaInitialized();
1023 connector = IHirobaConnector(swf);
1024 succeeded = (connector != null);
1027 systemMessage.informln(__MSG__("広場の接続に失敗"));
1028 _logManager.observer.onHirobaConnected(false, HirobaErrorStatus.HIROBA_CONNECTOR_NOT_FOUND, HirobaEventReferer.NICO_PLAYER);
1033 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
1034 return (playerConfig.isMute ? 0 : playerConfig.volume);
1037 client.checkList = getChecklist;
1039 connector.initialize(client);
1040 connector.addEventListener(HirobaErrorEvent.CONNECTION_FAIL, onConnectionFailed);
1041 connector.addEventListener(HirobaErrorEvent.DISCONNECTED, onDisconnected);
1042 connector.addEventListener(HirobaEvent.CLICKED_LINK, function(hug1:Event):void{ //MethodID:67, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 15
1043 if(videoController) videoController.stop();
1045 connector.connect(onConnected);
1046 }, this.configure.HIROBACONNECTOR_SWF_URL, {v:this.playerVersion.hirobaconnector});
1047 EventSequence.current.next();
1050 private function prepareVideo():void
1051 { //MethodID:71, LocalCount= 2 , MaxScope= 2, MaxStack= 8, CodeLength= 570
1052 internal var videoWidth:int; //slotID:1
1053 internal var videoHeight:int; //slotID:2
1055 this.nicoViewControllerClient.video = null;
1056 this.nicoViewControllerClient.videoController = null;
1058 if(!this.videoLayerManager){
1059 this.videoLayerManager = new VideoLayerManager(this.nicoViewController.videoBase, this.playerConfig.aspectRatio);
1061 if(this.playerConfig.deepenedComment){
1062 ObjectUtils.callLater(function():void{ //MethodID:70, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 8
1063 videoLayerManager.deepenComment();
1067 this.nicoViewControllerClient.videoLayerManager = this.videoLayerManager;
1069 this.videoLayerManager.refreshLayers();
1072 if(!this.pluginClient.hasInitialized("videoLayerManager")) this.pluginClient.setProperty("videoLayerManager", this.videoLayerManager);
1074 videoWidth = ((this.flashVars.isWide || this._isPlaylist) ? VideoLayerConstants.VIDEO_LAYER_HD_WIDTH : VideoLayerConstants.VIDEO_LAYER_SD_WIDTH);
1075 videoHeight = ((this.flashVars.isWide || this._isPlaylist) ? VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT : VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT);
1077 if(this.video && this.video.isInitialized){
1083 this.video = new VideoWrapper(this.videoLayerManager.videoLayer, this.getFLV, this.configure, this.flashVars, videoWidth, videoHeight);
1084 this.nicoViewControllerClient.video = this.video;
1085 this.videoController = new VideoController(this.video, this.playerConfig, this.initializeInfo.isPremium, this._isPlaylist);
1086 this.nicoViewControllerClient.videoController = this.videoController;
1088 if(this._logManager){
1089 this.video.onVideoLoadComplete.add(this._logManager.observer.onVideoLoadCompleted);
1090 this.video.onVideoBufferingStarted.add(this._logManager.observer.onVideoBufferingStarted);
1093 if(this.playlistController) this.playlistController.videoController = this.videoController;
1095 if(!this.pluginClient.hasInitialized("videoController")) this.pluginClient.setProperty("videoController", this.videoController);
1097 if(this._onChangedVideoStatus != null) this.video.onChangedVideoStatus.add(this._onChangedVideoStatus);
1099 if(this.vposWatcher) this.vposWatcher.kill();
1101 this.vposWatcher = new VposWatcher(this.video);
1103 if(this.videoLoadGuardian != null) this.videoLoadGuardian.destroy();
1105 this.videoLoadGuardian = new VideoLoadGuardian(this.video, this.initializeInfo.isPremium);
1107 if(this.nicoViewControllerClient.videoLoadWatcher == null) this.nicoViewControllerClient.videoLoadWatcher = new VideoLoadWatcher();
1108 EventSequence.current.next();
1111 private function prepareCommentLists():void
1112 { //MethodID:73, LocalCount= 2 , MaxScope= 2, MaxStack= 12, CodeLength= 597
1113 internal var normalThreadID:String; //slotID:1
1114 internal var leafMode:Boolean; //slotID:2
1115 internal var clear:Function; //slotID:3
1116 internal var filtered:CommentPoolContainer; //slotID:4
1119 clear = function():void{ //MethodID:72, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 150
1120 nicoViewControllerClient.commentListContainer = null;
1121 nicoViewControllerClient.nicoSClient = null;
1123 if(nicosClient) nicosClient.clear();
1125 if(nicosPlayer) nicosPlayer.clear();
1128 privateCommentList = null;
1130 nicoSCommentList = null;
1131 ownerCommentList = null;
1132 localCommentList = null;
1134 delete commentListContainer[CommentConstants.CL_PRIVATE];
1135 delete commentListContainer[CommentConstants.CL_MAIN];
1136 delete commentListContainer[CommentConstants.CL_NICOS];
1137 delete commentListContainer[CommentConstants.CL_OWNER];
1138 delete commentListContainer[CommentConstants.CL_LOCAL];
1143 normalThreadID = this.getFLV.threadID;
1144 leafMode = (((this.playerInfo.leafFilter.indexOf(this.getFLV.messageServerURL) != (-1)) || (this.flashVars.leafSwitch != NicoFlashVars.LEAF_DISABLE)) && this.playerConfig.isEnabledLeafMode);
1146 if(this.flashVars.isCommunityThread){
1147 this.privateCommentList = new CommentList(this.getFLV.threadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_PRIVATE, this.flashVars.isMymemory, leafMode);
1148 this.commentListContainer[CommentConstants.CL_PRIVATE] = this.privateCommentList;
1149 this.mainCommentListName = CommentConstants.CL_PRIVATE;
1150 normalThreadID = this.getFLV.optionalThreadID;
1153 if(this.getFLV.nicoSThreadID){
1154 this.nicoSCommentList = new CommentList(this.getFLV.nicoSThreadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_NICOS);
1155 this.commentListContainer[CommentConstants.CL_NICOS] = this.nicoSCommentList;
1158 this.commentList = new CommentList(normalThreadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_MAIN, this.flashVars.isMymemory, leafMode);
1159 this.commentListContainer[CommentConstants.CL_MAIN] = this.commentList;
1161 if(this.flashVars.hasOwnerThread){
1162 this.nicosClient = new NicoSClient(this.nicosPlayer, this.videoController, this.videoLayerManager, this.jumper, this.flashVars, null, null, this.nicoSCommentList, this.playerConfig, this._isPlaylist);
1163 this.ownerCommentList = new OwnerCommentList(normalThreadID, this.commentStorage, this.nicosClient, new RegisterBGM(this.configure));
1164 this.commentListContainer[CommentConstants.CL_OWNER] = this.ownerCommentList;
1167 this.localCommentList = new LocalCommentList();
1168 this.commentListContainer[CommentConstants.CL_LOCAL] = this.localCommentList;
1169 this.nicoViewControllerClient.commentListContainer = this.commentListContainer;
1170 this.nicoViewControllerClient.nicoSClient = this.nicosClient;
1172 if(!this.pluginClient.hasInitialized("commentListContainer")) this.pluginClient.setProperty("commentListContainer", this.commentListContainer);
1174 if(!this.nicoViewControllerClient.filteredCommentPoolContainers) this.nicoViewControllerClient.filteredCommentPoolContainers = [];
1176 if(!this.pluginClient.hasInitialized("filteredCommentPoolContainer")){
1177 filtered = new CommentPoolContainer();
1179 this.pluginClient.setProperty("filteredCommentPoolContainer", filtered);
1180 this.nicoViewControllerClient.filteredCommentPoolContainers.push(filtered);
1183 EventSequence.current.next();
1186 private function initializeModelAndView():void
1187 { //MethodID:74, LocalCount= 3 , MaxScope= 1, MaxStack= 9, CodeLength= 768
1188 var hug2:GetRelation = null;
1189 this.nicoViewControllerClient.commentLayer = null;
1190 this.nicoViewControllerClient.commentLayerView = null;
1191 this.nicoViewControllerClient.commentViewTransformer = null;
1192 this.nicoViewControllerClient.jumpMessageLayer = null;
1193 this.nicoViewControllerClient.replacer = null;
1194 this.nicoViewControllerClient.channelReplacer = null;
1195 this.nicoViewControllerClient.deleteFilter = null;
1196 this.nicoViewControllerClient.externalClient = null;
1198 this.initializeCommentLayerView();
1200 this.nicoViewControllerClient.commentLayer = this.commentLayer;
1201 this.nicoViewControllerClient.commentLayerView = this.commentLayerView;
1202 this.nicoViewControllerClient.commentViewTransformer = this.commentViewTransformer;
1204 if(this.nicosClient){
1205 this.nicosClient.commentLayerView_ = this.commentLayerView;
1206 this.nicosClient.commentLayer_ = this.commentLayer;
1209 this.jumpMsgLayer = new JumpMessageLayer(this.videoLayerManager.jumpMsgLayer);
1210 this.nicoViewControllerClient.jumpMessageLayer = this.jumpMsgLayer;
1211 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));
1212 this.nicoViewControllerClient.replacer = this.replacer;
1214 if(this.getFLV.channelFilter){
1215 this.channelReplacer = new ChannelReplacer(this.getFLV.channelFilter);
1216 this.nicoViewControllerClient.channelReplacer = this.channelReplacer;
1219 var hug1:Object = {};
1221 if(this.commentList) hug1[CommentConstants.CL_MAIN] = this.commentList;
1223 if(this.nicoSCommentList) hug1[CommentConstants.CL_NICOS] = this.nicoSCommentList;
1225 if(this.privateCommentList) hug1[CommentConstants.CL_PRIVATE] = this.privateCommentList;
1227 this.deleteFilter = new DeleteFilter(hug1, (this.isThumbWatchMode ? false : this.flashVars.watchFlashVars.isEditMode));
1228 this.nicoViewControllerClient.deleteFilter = this.deleteFilter;
1230 if(!this.audioShutter){
1231 this.audioShutter = new ControllerShutter(AudioShutterConstants.END_OF_ENUM, "AUDIO");
1232 this.nicoViewControllerClient.audioShutter = this.audioShutter;
1234 this.pluginClient.setProperty("audioShutter", this.audioShutter);
1237 if(!this.externalClient) this.externalClient = new ExternalClient();
1238 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));
1240 this.externalClient.localCommentList = this.localCommentList;
1241 this.externalClient.ownerCommentList = this.ownerCommentList;
1242 this.nicoViewControllerClient.externalClient = this.externalClient;
1244 this.video.onChangedVideoStatus.add(this.externalClient.onChangeVideoStatus);
1246 if(!this.commentShutter){
1247 this.commentShutter = new ControllerShutter(CommentShutterConstants.END_OF_ENUM, "COMMENT");
1248 this.nicoViewControllerClient.commentShutter = this.commentShutter;
1250 if(this.playlistController != null) this.playlistController.commentShutter = this.commentShutter;
1253 if(this.nicosClient){
1254 this.nicosClient.audioShutter = this.audioShutter;
1255 this.nicosClient.commentShutter = this.commentShutter;
1258 if(!this.flashVars.forceRelationInvisible){
1259 hug2 = new GetRelation(HTTPUtils.loadXML, this.configure.GETRELATION_URL, this.flashVars.watchID, this.flashVars.category);
1260 this.relatedList = new RelatedVideoList(hug2, this.flashVars.noRelatedVideo);
1261 this.nicoViewControllerClient.relatedList = this.relatedList;
1264 EventSequence.current.next();
1267 private function initializeCommentRouter():void
1268 { //MethodID:78, LocalCount= 2 , MaxScope= 2, MaxStack= 8, CodeLength= 271
1269 this.nicoViewControllerClient.lockedComment = null;
1270 this.nicoViewControllerClient.commentRouter = null;
1272 if(this.isThumbWatchMode && !this.flashVars.thumbFlashVars.thumbComment){
1273 EventSequence.current.next();
1278 this.lockedComment = new LockedComment(this.getFLV.threadID, this.mainCommentListName, this.flashVars.watchFlashVars.isPostLocked, this.flashVars.watchFlashVars.isEditMode);
1279 this.nicoViewControllerClient.lockedComment = this.lockedComment;
1280 this.deleteFilter.lockedComment = this.lockedComment;
1281 this.commentRouter = new CommentRouter(this.flashVars, this.playerConfig, this.lockedComment, this.nicosClient, this.initializeInfo.isPremium, this.channelReplacer);
1283 this.commentRouter.onCommentPostErorr.add(function(hug1:String):void{ //MethodID:75, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 580
1284 var hug2:String = hug1;
1287 case CommentRouter.ERROR_POST_184:
1288 systemMessage.informComment(__MSG__("チャンネルとコミュニティ動画では184コマンドを使用できません"));
1290 case CommentRouter.ERROR_POST_AT_COMMENT_UNDEFINED:
1291 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つです。"));
1293 case CommentRouter.ERROR_POST_BUTTON_ONCE:
1294 systemMessage.informComment(__MSG__("@ボタンは、1視聴につき1つまでしかご利用になれません"));
1296 case CommentRouter.ERROR_POST_BUTTON_PREMIUM_ONLY:
1297 systemMessage.alert(__MSG__("@ボタンは現在[[a_tag_open]]プレミアム会員[[a_tag_close]]のみ使用可能です。", "<a href=\"http://www.nicovideo.jp/?p=premium_top&sec=at_button\" target=\"_blank\">", "</a>"));
1299 case CommentRouter.ERROR_POST_HIROBA:
1300 systemMessage.informComment(__MSG__("広場では@ボタンは使えません。"));
1302 case CommentRouter.ERROR_POST_INITIALIZE:
1303 systemMessage.informComment(__MSG__("コメント投稿の準備が未完了です"));
1305 case CommentRouter.ERROR_POST_BUTTON_ARGUMENTS:
1306 systemMessage.informComment(__MSG__("@ボタンの設定項目が足りません。"));
1308 case CommentRouter.ERROR_POST_SAME_COMMENT:
1309 systemMessage.informComment(__MSG__("同じコメントを連続で投稿することができません。"));
1311 case CommentRouter.ERROR_POST_CHANNEL_FILTER:
1312 systemMessage.informComment(__MSG__("入力されたコメントはこの動画では投稿できません。"));
1314 case CommentRouter.ERROR_POST_AT_COMMENT_DISABLED:
1315 systemMessage.informComment(__MSG__("この動画では@コメントは使えません。"));
1317 case CommentRouter.ERROR_POST_COMMAND_DISABLED:
1318 systemMessage.informComment(__MSG__("この動画ではコマンドは使えません。"));
1325 if(this.flashVars.watchFlashVars.noAtPizza || this.isThumbWatchMode){
1326 this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{ //MethodID:76, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
1327 if(hug1.macroName == "ピザ") systemMessage.informComment("@ピザは、使用できません。");
1330 this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{ //MethodID:77, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 40
1331 if(hug1.macroName == "ピザ"){
1332 navigateToURL(new URLRequest(configure.PIZZA_URL), "_blank");
1333 videoController.stop();
1338 if(this.nicosClient) this.nicosClient.commentRouter = this.commentRouter;
1340 this.nicoViewControllerClient.commentRouter = this.commentRouter;
1341 EventSequence.current.next();
1344 private function initializeModelAndView4Watch():void
1345 { //MethodID:82, LocalCount= 3 , MaxScope= 2, MaxStack= 10, CodeLength= 1164
1346 internal var linkURL:String; //slotID:1
1347 internal var pageURL:String; //slotID:2
1348 internal var messageHTML:String; //slotID:3
1349 internal var onMarqueePlayerLoaded:Function; //slotID:4
1350 internal var isUseVideoEnder:Boolean; //slotID:5
1355 isUseVideoEnder = false;
1356 this.nicoViewControllerClient.timeMachine = null;
1357 this.nicoViewControllerClient.marqueeClient = null;
1358 this.nicoViewControllerClient.frameRateBooster = null;
1359 this.timeMachine = new TimeMachine(new Date(parseInt(this.getFLV.threadID, 10) * 1000));
1360 this.nicoViewControllerClient.timeMachine = this.timeMachine;
1362 if(!this.frameRateBooster) this.frameRateBooster = new FrameRateBooster(stage);
1364 this.nicoViewControllerClient.frameRateBooster = this.frameRateBooster;
1366 if(this._isPlaylist && (this._shutterKeyLastClosed >= 0)){
1367 this.commentShutter.open(this._shutterKeyLastClosed);
1369 this._shutterKeyLastClosed = -1;
1372 if(this.flashVars.isMymemory){
1373 this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_MYMEMORY, __MSG__("マイメモリーはコメントできません"));
1374 }else if(!this.getFLV.commentExpire && !this.flashVars.watchFlashVars.isOwnerThreadEditMode){
1375 if(this.flashVars.watchFlashVars.commentListPublicStatus == CommentListPublicStatus.MEMBER_ONLY){
1376 linkURL = (this.configure.CHANNEL_URL + (this.flashVars.isChannel ? "channel" : "community") + "/" + this.flashVars.communityGlobalID);
1378 this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_CHANNEL_COMMUNITY, (("<a href=\"" + linkURL + "\"><u>") + (this.flashVars.isChannel ? __MSG__("コメントするにはチャンネルに入会してください") : __MSG__("コメントするにはコミュニティに入会してください")) + "</u></a>"));
1380 this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_OTHER, "");
1382 }else if(this.flashVars.watchFlashVars.isCommentShuttered){
1383 this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_LOCKED, __MSG__("あなたはコメントを禁止されています"));
1386 if(!CrossSharedObject.isPersistable){
1387 if(!this.flashVars.watchFlashVars.isEditMode && !this.flashVars.watchFlashVars.isOwnerThreadEditMode) this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_NOSHAREDOBJECT, ("<p>" + __MSG__("ローカル記憶領域が使用できないため、コメント機能を制限をしています") + "</p>"));
1389 if(!this._isShowedDialog){
1390 this._isShowedDialog = true;
1392 this.systemMessage.informln(__MSG__("SharedObjectの初期に失敗しました。"));
1394 pageURL = this._playerPageMyselfURL;
1395 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>");
1397 this.systemMessage.alert(messageHTML);
1401 if(this.flashVars.watchFlashVars.isEditMode){
1402 this.deleteFilter.onFinishedEdit = function(hug1:Boolean):void{ //MethodID:79, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 144
1403 var hug3:String = null;
1404 var hug4:String = null;
1405 var hug2:String = _playerPageMyselfURL;
1408 if(flashVars.isMymemory){
1409 hug3 = StringUtils.joinQuery(hug2, {edit:"mymemory"});
1410 hug4 = ("<b>マイメモリーの編集に失敗しました。</b>" + "再度編集しなおす場合は、以下のURLからお願いします。<br />" + "<a href=\"" + hug3 + "\">" + hug3 + "</a>");
1412 hug3 = StringUtils.joinQuery(hug2, {edit:"comment"});
1413 hug4 = ("<b>編集の保存に失敗しました。</b>" + "再度編集しなおす場合は、以下のURLからお願いします。<br />" + "<a href=\"" + hug3 + "\">" + hug3 + "</a>");
1416 systemMessage.alert(hug4);
1421 navigateToURL(new URLRequest(hug2), "_self");
1425 if(!this.flashVars.watchFlashVars.isNoMarquee && !this.flashVars.watchFlashVars.isEditMode && !this.flashVars.watchFlashVars.isOwnerThreadEditMode && CrossSharedObject.isPersistable){
1426 onMarqueePlayerLoaded = function():void{ //MethodID:80, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 94
1427 if(nicosClient) nicosClient.marqueePlayer = INicoMarqueePlayer(marqueeClient.marqueePlayer);
1429 if(hirobaConnectorClient) hirobaConnectorClient.insertItemOnMarquee_0 = INicoMarqueePlayer(marqueeClient.marqueePlayer).interruptContent;
1431 if(playlistController) playlistController.marqueeClient = marqueeClient;
1432 pluginClient.setProperty("marqueeClient", marqueeClient);
1433 commentRouter.addMarqueePlayer(marqueeClient.marqueePlayer);
1436 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);
1438 if(this.nicosClient) this.nicosClient.marqueePlayer = INicoMarqueePlayer(this.marqueeClient.marqueePlayer);
1440 this.marqueeClient.videoController = this.videoController;
1441 this.marqueeClient.flashVars = this.flashVars;
1442 this.nicoViewControllerClient.marqueeClient = this.marqueeClient;
1445 if(!this.flashVars.watchFlashVars.isNoAppli && !this.pluginClient.hasInitialized("videoDetail")) this.pluginClient.setProperty("videoDetail", new VideoDetail(this.flashVars.category, this.flashVars.videoDetail));
1446 function():void{ //MethodID:81, LocalCount= 5 , MaxScope= 0, MaxStack= 23, CodeLength= 193
1447 if(_isPlaylist) return;
1449 var hug1:* = new RemoconNotifier(configure.REMOCON_ALERT_SWF_URL + "?" + playerVersion.remoconAlert);
1450 var hug2:* = new RemoconFullScreenKeeper(playerConfig, externalClient);
1451 var hug3:* = new RemoconPlayerStateObserver(externalClient.udpateRemoconState, hug1, hug2);
1453 commentRouter.onCommentPostErorr.add(hug3.onCommentRouterPostError);
1455 var hug4:* = new RemoconClient(hug3, hug1, RemoconState.instance);
1457 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);
1460 nicoViewControllerClient.remoconClient = hug4;
1463 this.nicoViewControllerClient.defaultMylistAppender = new DefaultMylistAppender(HTTPUtils.loadJSON, this.configure.MYLIST_ADD_API_URL, this.getFLV.threadID, this.flashVars.watchFlashVars.noDeflistAdd, this.flashVars.watchFlashVars.csrfToken);
1465 if(this.nicoViewControllerClient.videoenderTesterConfig == null){
1466 if(this._isPlaylist){
1467 isUseVideoEnder = (this.playlistFlashVars && this.playlistFlashVars.useVideoEnder);
1469 isUseVideoEnder = (this.flashVars.watchFlashVars && this.flashVars.watchFlashVars.useVideoEnder);
1472 this._videoenderTesterConfig = new VideoenderTesterConfig(isUseVideoEnder);
1473 this.nicoViewControllerClient.videoenderTesterConfig = this._videoenderTesterConfig;
1476 EventSequence.current.next();
1479 private function initializeSponsorVideo():void
1480 { //MethodID:85, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 169
1481 internal var url:String; //slotID:1
1482 internal var info:GetSponsorInfo; //slotID:2
1485 this.nicoViewControllerClient.getSponsorInfo = null;
1487 if(!this.isThumbWatchMode && (this.flashVars.isMymemory || this.flashVars.watchFlashVars.isEditMode || this.flashVars.watchFlashVars.isOwnerThreadEditMode)){
1488 EventSequence.current.next();
1493 url = StringUtils.joinQuery(this.configure.GETSPONSOR_API_URL, {limit:"4", videoid:this.flashVars.originalVideoID});
1494 info = new GetSponsorInfo(url, function(hug1:Boolean):void{ //MethodID:84, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 213
1495 internal var succeeded:Boolean; //slotID:1
1496 internal var layer:*; //slotID:2
1497 internal var userSponsorSWFURL:*; //slotID:3
1498 internal var otherSponsorLink:*; //slotID:4
1499 internal var youAlsoLink:*; //slotID:5
1502 otherSponsorLink = undefined;
1503 youAlsoLink = undefined;
1506 if(!succeeded || (info.sponsorInfoList.length == 0)) return;
1508 layer = videoLayerManager.createOptionalLayer(VideoLayerManager.OPTIONAL_LAYER_SPONSORVIDEOLAYER);
1509 userSponsorSWFURL = StringUtils.joinQuery(configure.USERSPONSOR_MOVIE_URL, {t:playerVersion.userSponsorMovie});
1510 otherSponsorLink = (StringUtils.joinQuery(configure.OTHERSPONSOR_URL, {vid:flashVars.originalVideoID}) + "&video_player");
1511 youAlsoLink = (StringUtils.joinQuery(configure.OTHERSPONSOR_URL, {vid:flashVars.originalVideoID}) + "&video_player_also");
1513 if(video.hasLoaded){
1514 HTTPUtils.loadSWF(function(hug1:*):void{ //MethodID:83, LocalCount= 2 , MaxScope= 0, MaxStack= 8, CodeLength= 76
1516 userSponsorVideo = IUserSponsorVideo(hug1);
1518 userSponsorVideo.initialize(new UserSponsorVideoClient(info, layer, otherSponsorLink, youAlsoLink, ICapturableVideoContainer(videoController.videoWrapper), vposWatcher));
1519 video.appendVideo(ChildVideoName.USER_SPONSOR, userSponsorVideo);
1521 }, userSponsorSWFURL, {});
1523 video.appendVideo(ChildVideoName.USER_SPONSOR, userSponsorVideo);
1527 this.nicoViewControllerClient.getSponsorInfo = info;
1529 EventSequence.current.next();
1532 private function loadConfirm():void
1533 { //MethodID:87, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 24
1534 this.videoLoadGuardian.loadStart(EventSequence.bind(function(hug1:Boolean):void{ //MethodID:86, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 144
1535 var hug2:* = undefined;
1538 EventSequence.current.next();
1539 }else if(!isThumbWatchMode){
1540 if(_isPlaylist && playlistController){
1541 playlistController.onError(PlaylistErrorManager.VIDEO_LOAD_STOP);
1543 hug2 = _playerPageMyselfURL;
1545 SystemMessage.instance.alert(("<p><b>" + __MSG__("動画の読み込みができません。") + "</b></p>" + "<p>" + __MSG__("別のタブかウィンドウで、動画をいくつか読み込み中です。<br />") + __MSG__("読み込みが完了してから再度アクセスしてください。<br />") + "<br />") + __MSG__("<a href=\"[[url]]\">リロードする</a>", hug2) + "</p>");
1551 private function initializePlugin():void
1552 { //MethodID:91, LocalCount= 2 , MaxScope= 2, MaxStack= 9, CodeLength= 208
1553 internal var loader:ApplibarLoader; //slotID:1
1557 if(this.flashVars.watchFlashVars.isNoAppli || this.flashVars.watchFlashVars.isEditMode || this.flashVars.watchFlashVars.isOwnerThreadEditMode || !CrossSharedObject.isPersistable){
1558 EventSequence.current.next();
1563 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);
1565 loader.onLoaded.add(function(hug1:Boolean):void{ //MethodID:88, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 26
1568 nicoViewControllerClient.applibarLoader = loader;
1570 loader.setPluginClient(pluginClient);
1572 loader.onPageOpen.add(function():void{ //MethodID:89, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 18
1573 if(videoController.isPlaying) videoController.stop();
1575 this._playlistSequences.forEach(function(hug1:Function, hug2:int, hug3:Array):Boolean{ //MethodID:90, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 22
1576 if(hug1 == initializePlugin){
1577 _playlistSequences.splice(hug2, 1);
1584 EventSequence.current.next();
1587 private function _delayVideo():void
1588 { //MethodID:93, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 101
1589 internal var delay:Number; //slotID:1
1590 internal var timer:Timer; //slotID:2
1591 internal var handler:Function; //slotID:3
1595 delay = PlayDelay.getPlayDelayTime(this.initializeInfo.isPremium, this.isThumbWatchMode);
1596 timer = new Timer(delay, 1);
1597 handler = EventSequence.bind(function():void{ //MethodID:92, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 40
1600 timer.removeEventListener(TimerEvent.TIMER_COMPLETE, handler);
1601 EventSequence.current.next();
1603 timer.addEventListener(TimerEvent.TIMER_COMPLETE, handler);
1607 private function _loadVideo():void
1608 { //MethodID:97, LocalCount= 5 , MaxScope= 2, MaxStack= 10, CodeLength= 779
1609 internal var barrier:EventBarrier; //slotID:1
1610 internal var succeeded_all:Boolean; //slotID:2
1611 internal var bgmNeeded:Boolean; //slotID:3
1612 internal var bgmVideos:Object; //slotID:4
1613 internal var cmVideos:Object; //slotID:5
1614 internal var bgmInfo:BGMVideoInfo; //slotID:6
1615 internal var bgmVideo:IVideo; //slotID:7
1616 internal var container:Sprite; //slotID:8
1618 succeeded_all = false;
1626 if(this._logManager) this._logManager.observer.onVideoLoadStarted();
1628 barrier = new EventBarrier();
1629 succeeded_all = true;
1631 this.systemMessage.informln(__MSG__("動画の読み込みを開始"));
1633 if((this.getFLV.videoProtocol == "rtmp") || (this.getFLV.videoProtocol == "rtmpe") || (this.getFLV.videoProtocol == "rtmpt") || (this.getFLV.videoProtocol == "rtmpte")) this.systemMessage.informln(__MSG__("動画に接続"));
1635 this.video.isRetryable = false;
1637 this.video.load(barrier.bind(function(hug1:Boolean):void{ //MethodID:94, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 110
1638 succeeded_all = (succeeded_all && hug1);
1640 if(!hug1 && !isThumbWatchMode && _logManager) _logManager.observer.onVideoLoadErrorOccurred();
1642 if(_startVposConfig.halfwayStartEnabled) _startVposConfig.judgebyVideoLength(video);
1644 if(!_startVposConfig.halfwayStartEnabled){
1645 nicoViewController.initVideoEventPipe(vposWatcher);
1646 nicoViewController.onVideoInitialized(hug1);
1649 _videoLoadSucceeded = hug1;
1652 bgmNeeded = Boolean(this.BGMVideoInfos.length != 0);
1657 if(this.flashVars.watchFlashVars && !this.flashVars.watchFlashVars.isOwnerThreadEditMode || this.flashVars.thumbFlashVars && this.BGMVideoInfos && bgmNeeded){
1658 for each(bgmInfo in this.BGMVideoInfos){
1659 if(bgmInfo.type == BGMVideoInfo.TYPE_BGM){
1660 container = new Sprite();
1662 container.graphics.beginFill(0);
1663 container.graphics.drawRect(0, 0, NicoSConstants.ATBGM_VIDEO_WIDTH, NicoSConstants.ATBGM_VIDEO_HEIGHT);
1665 container = new MovieClip();
1667 container.graphics.beginFill(0);
1668 container.graphics.drawRect(0, 0, NicoSConstants.ATCM_VIDEO_WIDTH, NicoSConstants.ATCM_VIDEO_HEIGHT);
1671 container.graphics.endFill();
1673 switch(bgmInfo.movieType){
1676 bgmVideo = new FLVVideo(bgmInfo.URL, container, -1);
1679 bgmVideo = new SWFVideo(bgmInfo.URL, container, NaN, false, "", null, "", bgmInfo.isAS3);
1682 throw new Error("未定義のBGMタイプ:" + bgmInfo.movieType);
1686 if(bgmInfo.type == BGMVideoInfo.TYPE_BGM){
1687 bgmVideos[bgmInfo.ID] = bgmVideo;
1689 cmVideos[bgmInfo.ID] = bgmVideo;
1692 bgmVideo.load(barrier.bind(function(hug1:Boolean):void{ //MethodID:95, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 102
1693 if(!succeeded_all) return;
1695 succeeded_all = (succeeded_all && hug1);
1698 if(!isThumbWatchMode) SystemMessage.instance.alert("<p><b>" + __MSG__("引用動画の読み込みに失敗") + "</b></p>" + "<p>" + __MSG__("問題解消に向けて努力しております。") + "<br />" + __MSG__("しばらく時間をおいて再度アクセスしてみて下さい。") + "</p>");
1706 barrier.finish(EventSequence.bind(function():void{ //MethodID:96, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 145
1707 var hug1:* = undefined;
1708 var hug2:* = undefined;
1709 _wholeVideoLoadSucceeded = succeeded_all;
1712 EventSequence.current.next();
1720 for(hug2 in cmVideos){
1721 hug1[hug2] = cmVideos[hug2].movieClip;
1724 nicosClient.setBGMVideos(bgmVideos, hug1);
1727 if(getFLV.deleted == 0) PlayDelay.countUp();
1729 if(marqueeClient) marqueeClient.load();
1730 EventSequence.current.next();
1734 private function initializeLogger():void
1735 { //MethodID:98, LocalCount= 1 , MaxScope= 1, MaxStack= 13, CodeLength= 63
1736 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);
1737 EventSequence.current.next();
1740 private function initializeCommentLists():void
1741 { //MethodID:102, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 241
1742 internal var barrier:EventBarrier; //slotID:1
1743 internal var error:CommentStorageError; //slotID:2
1744 internal var init_handler:Function; //slotID:3
1748 init_handler = null;
1749 init_handler = function(hug1:CommentStorageError):void{ //MethodID:99, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 38
1750 var hug2:CommentStorageError = hug1;
1753 if(!(error || hug2)) return;
1757 if(this.nicosClient) this.nicosClient.setup();
1758 this.systemMessage.informln(__MSG__("コメントサーバーへの接続を開始"));
1760 barrier = new EventBarrier();
1763 this.commentList.onCommentPostFinished.add(function(hug1:String, hug2:int, hug3:int):void{ //MethodID:100, LocalCount= 5 , MaxScope= 0, MaxStack= 2, CodeLength= 63
1764 var hug4:XMLList = null;
1766 if(hug2 == MessageServerClient.POST_INVALID_THREAD){
1767 hug4 = playerInfo.getThreadError;
1769 if(hug4 && (hug4.post_invalid_thread != "")) SystemMessage.instance.alert(hug4.post_invalid_thread);
1772 this.commentList.initialize(barrier.bind(init_handler));
1774 if(this.flashVars.isCommunityThread) this.privateCommentList.initialize(barrier.bind(init_handler));
1776 if(this.nicoSCommentList) this.nicoSCommentList.initialize(barrier.bind(init_handler));
1778 if(this.flashVars.hasOwnerThread) this.ownerCommentList.initialize(barrier.bind(init_handler));
1779 barrier.finish(function():void{ //MethodID:101, LocalCount= 4 , MaxScope= 0, MaxStack= 4, CodeLength= 201
1780 var hug1:String = null;
1783 if(error.isInLowerLayer){
1784 systemMessage.informln(__MSG__("コメントサーバーへの接続に失敗"));
1786 systemMessage.informln(threadStatusCodeToMessage(error.status));
1789 nicoViewController.onCommentListInitialized(false);
1794 systemMessage.informln(__MSG__("コメントサーバーへの接続に成功"));
1796 if(flashVars.thumbFlashVars && flashVars.thumbFlashVars.thumbComment || !isThumbWatchMode && !flashVars.isMymemory){
1797 for(hug1 in commentListContainer){
1798 commentRouter.add(hug1, commentListContainer[hug1]);
1802 nicoViewController.onCommentListInitialized(true);
1803 setupCommentListEventPipes();
1805 EventSequence.current.next();
1808 private function setupCommentListEventPipes():void
1809 { //MethodID:103, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 51
1810 var hug1:ICommentList = null;
1812 this.nicoViewController.initCommentEventPipe();
1814 for each(hug1 in this.commentListContainer){
1815 hug1.serveCommentList();
1819 private function beginToPlayVideo():void
1820 { //MethodID:108, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 216
1821 internal var alreadyBegan:Boolean; //slotID:1
1822 internal var begin:Function; //slotID:2
1823 internal var vpos:Number; //slotID:3
1825 alreadyBegan = false;
1827 begin = function():void{ //MethodID:104, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 129
1828 if(_startVposConfig.halfwayStartEnabled) nicoViewController.initVideoEventPipe(vposWatcher);
1830 if(isThumbWatchMode){
1831 if(!flashVars.thumbFlashVars.isP4Mode) videoController.play();
1833 videoController.startToPlay(_startVposConfig.isAutoPlay || (nicoViewControllerClient.initializeInfo.isPremium && playerConfig.autoPlay));
1835 if(!_wholeVideoLoadSucceeded) videoController.stop();
1838 if(_startVposConfig.halfwayStartEnabled) nicoViewController.onVideoInitialized(_videoLoadSucceeded);
1841 this.externalClient.onPlayerReady();
1843 if(this.isThumbWatchMode){
1849 if(this.flashVars.watchFlashVars.jumpReturnVideoID){
1850 vpos = this.flashVars.watchFlashVars.jumpPlayLength;
1852 if(this._startVposConfig.halfwayStartEnabled) vpos += this.flashVars.watchFlashVars.jumpVPosPlayFrom;
1856 this.vposWatcher.addWatchPoint(function():void{ //MethodID:106, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 97
1857 internal var params:Object; //slotID:1
1861 videoController.stop();
1865 if(flashVars.watchFlashVars.jumpVPosReturnTo > 0) params.from = flashVars.watchFlashVars.jumpVPosReturnTo;
1866 SystemMessage.instance.informJumpMessage(function():void{ //MethodID:105, LocalCount= 4 , MaxScope= 0, MaxStack= 10, CodeLength= 109
1867 var hug1:Object = jumper.tossedObject;
1868 var hug2:String = flashVars.watchFlashVars.jumpReturnVideoID;
1869 var hug3:Object = {};
1871 if(hug1 && hug1.jumpHistory) hug3 = hug1.jumpHistory;
1873 hug3[flashVars.watchID] = true;
1875 jumper.jump(hug2, params, false, {jumpFrom:flashVars.watchID, jumpHistory:hug3, jumpHash_:(hug1 ? hug1.jumpHash : undefined)});
1876 }, (flashVars.watchFlashVars.jumpReturnMessage || __MSG__("元の動画にジャンプします")));
1877 }, vpos, 0x7FFFFFFF);
1880 if(!this._startVposConfig.halfwayStartEnabled){
1886 alreadyBegan = false;
1888 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
1890 alreadyBegan = true;
1895 return EventResult.BREAK;
1897 this.videoController.seek(this._startVposConfig.fromMsec, true);
1900 private function initializeCommentLayerView():void
1901 { //MethodID:109, LocalCount= 2 , MaxScope= 1, MaxStack= 7, CodeLength= 343
1902 this.commentLayer = new CommentLayer(this.videoLayerManager.commentLayer, this.playerConfig, this.initializeInfo.isPremium);
1904 this.commentLayer.addLayer(CommentLayerID.MAIN);
1905 this.commentLayer.addLayer(CommentLayerID.OWNER);
1907 var hug1:Object = {};
1909 if(this.flashVars.isCommunityThread){
1910 hug1[CommentLayerID.MAIN] = [CommentConstants.CL_PRIVATE, CommentConstants.CL_LOCAL];
1911 hug1[CommentLayerID.OWNER] = [CommentConstants.CL_OWNER];
1912 hug1[CommentLayerID.OPTION] = [CommentConstants.CL_MAIN];
1914 this.commentLayer.addLayer(CommentLayerID.OPTION, 0);
1915 this.commentLayer.setOptionalLayer(CommentLayerID.OPTION);
1917 hug1[CommentLayerID.MAIN] = [CommentConstants.CL_MAIN, CommentConstants.CL_LOCAL, CommentConstants.CL_NICOS];
1918 hug1[CommentLayerID.OWNER] = [CommentConstants.CL_OWNER];
1921 this.commentLayerView = new CommentLayerView(this, this.video, VideoLayerConstants.COMMENT_LAYER_SD_WIDTH, VideoLayerConstants.COMMENT_LAYER_SD_HEIGHT, this.getFLV.videoLength);
1922 this.commentViewTransformer = new CommentViewTransformer(hug1, this.commentLayer, this.commentLayerView, (this.nicosClient ? this.nicosClient.player : null));
1924 if(this.isThumbWatchMode && this.flashVars.thumbFlashVars && this.flashVars.thumbFlashVars.isP4Mode) this.commentViewTransformer.setP4Mode();
1927 private function threadStatusCodeToMessage(hug1:int):String
1928 { //MethodID:110, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 415
1929 var hug2:XMLList = null;
1930 var hug3:int = hug1;
1933 case MessageServerClient.THREAD_FOUND:
1934 return __MSG__("...");
1935 case MessageServerClient.THREAD_INVALID:
1936 return __MSG__("メッセージサーバーへの接続に失敗");
1937 case MessageServerClient.THREAD_NOT_FOUND:
1938 hug2 = this.playerInfo.getThreadError;
1940 if(hug2 && (hug2.thread_not_found != "")) SystemMessage.instance.alert(hug2.thread_not_found);
1942 return __MSG__("スレッドが見つかりません");
1943 case MessageServerClient.THREAD_VERSION:
1944 return __MSG__("プレイヤーのバージョンが不正");
1945 case MessageServerClient.THREAD_INVALID_ADMINKEY:
1946 return __MSG__("AdminKeyが不正");
1947 case MessageServerClient.THREAD_TOO_OLD_ADMINKEY:
1948 return __MSG__("AdminKeyが失効");
1949 case MessageServerClient.THREAD_INVALID_WAYBACKKEY:
1950 return __MSG__("WaybackKeyが不正");
1951 case MessageServerClient.THREAD_TOO_OLD_WAYBACKKEY:
1952 return __MSG__("WaybackKeyが失効");
1953 case MessageServerClient.THREAD_INVALID_THREADKEY:
1954 return __MSG__("ThreadKeyが不正");
1955 case MessageServerClient.THREAD_TOO_OLD_THREADKEY:
1956 return __MSG__("ThreadKeyが失効");
1958 return __MSG__("不明なエラー:code=[code]", hug1);
1963 private function _loadThumbViewSWF():void
1964 { //MethodID:112, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
1965 HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:111, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 73
1966 if(!hug1) throw new Error("NicoPlayer._loadThumbViewSWF: load failure.");
1968 if(!hug1 is MovieClip) throw new Error("NicoPlayer._loadThumbViewSWF: content is not MovieClip.");
1969 addChild(hug1 as DisplayObject);
1971 (hug1 as DisplayObject).visible = false;
1972 nicoViewControllerClient.viewRoot = hug1;
1974 EventSequence.current.next();
1975 }), this.configure.THUMBPLAYER_VIEW_URL, {t:this.playerVersion.thumbplayerView});
1978 private function _loadThumbControllerSWF():void
1979 { //MethodID:114, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
1980 HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{ //MethodID:113, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 67
1981 if(!hug1) throw new Error("NicoPlayer._loadThumbControllerSWF: load failure.");
1983 nicoViewController = INicoViewController(hug1);
1985 if(!nicoViewController) throw new Error("NicoPlayer._loadThumbControllerSWF: content is not INicoViewController.");
1986 nicoViewController.startInit(nicoViewControllerClient);
1987 EventSequence.current.next();
1988 }), this.configure.THUMBPLAYER_CONTROLLER_URL, {t:this.playerVersion.thumbplayerController});
1991 private function _loadThumbVideoInfo():void
1992 { //MethodID:116, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 148
1993 internal var apiParams:Object; //slotID:1
1996 apiParams["as3"] = "1";
1997 apiParams["v"] = this.flashVars.watchID;
1998 apiParams["k"] = this.flashVars.thumbFlashVars.thumbPlayKey;
2000 if(this.flashVars.forceLowMode) apiParams["lo"] = "1";
2002 if(this.flashVars.economyMode) apiParams["eco"] = this.flashVars.economyMode;
2004 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
2005 nicoViewControllerClient.getFLVData = getFLV;
2006 initializeInfo = InitializeInfo.getInstance();
2007 nicoViewControllerClient.initializeInfo = initializeInfo;
2009 EventSequence.current.next();
2013 private function _initializeModelAndViewThumbWatch():void
2014 { //MethodID:119, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 118
2015 if(this.flashVars.thumbFlashVars.thumbComment){
2016 this.commentRouter = new CommentRouter(this.flashVars, this.playerConfig, null, this.nicosClient, this.initializeInfo.isPremium);
2018 this.commentRouter.onCommentPostErorr.add(function(hug1:String):void{ //MethodID:117, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 346
2019 var hug2:String = hug1;
2022 case CommentRouter.ERROR_POST_184:
2023 systemMessage.informComment(__MSG__("チャンネルとコミュニティ動画では184コマンドを使用できません。"));
2025 case CommentRouter.ERROR_POST_BUTTON_ARGUMENTS:
2026 case CommentRouter.ERROR_POST_BUTTON_ONCE:
2027 case CommentRouter.ERROR_POST_BUTTON_PREMIUM_ONLY:
2028 case CommentRouter.ERROR_POST_BUTTON_DISABLED:
2029 systemMessage.informComment(__MSG__("@ボタンは、使用できません。"));
2031 case CommentRouter.ERROR_POST_AT_COMMENT_UNDEFINED:
2032 systemMessage.informComment(__MSG__("その@コメントは存在しないか、投稿者以外は使えないかのどちらかです。"));
2034 case CommentRouter.ERROR_POST_INITIALIZE:
2035 systemMessage.informComment(__MSG__("コメント投稿の準備が未完了です。"));
2037 case CommentRouter.ERROR_POST_SAME_COMMENT:
2038 systemMessage.informComment(__MSG__("同じコメントを連続で投稿することができません。"));
2040 case CommentRouter.ERROR_POST_CHANNEL_FILTER:
2041 systemMessage.informComment(__MSG__("入力されたコメントはチャンネルにより規制されています。"));
2047 this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{ //MethodID:118, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
2048 if(hug1.macroName == "ピザ") systemMessage.informComment("@ピザは、使用できません。");
2051 if(this.nicosClient) this.nicosClient.commentRouter = this.commentRouter;
2053 this.nicoViewControllerClient.commentRouter = this.commentRouter;
2056 EventSequence.current.next();
2065 import jp.nicovideo.nicoplayer.NicoPlayer
2067 //■class(instance)_index:2
2068 public class nicoplayer extends NicoPlayer
2070 //static constructor
2071 public static function nicoplayer$cinit()
2072 { //MethodID:121, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
2076 public function nicoplayer()
2077 { //MethodID:122, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
2085 package jp.nicovideo.ext.config{
2087 //■class(instance)_index:3
2088 public interface IThumbConfig
2090 //static constructor
2091 public static function IThumbConfig$cinit()
2092 { //MethodID:124, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2096 function get nicovideoURL():String; //MethodID:125, dispID:0
2098 function get playerURL():String; //MethodID:126, dispID:0
2101 public function IThumbConfig(); //MethodID:127, dispID:0
2107 package jp.nicovideo.nicoplayer.models.flashvars{
2109 //■class(instance)_index:4
2110 public class NicoFlashVars extends Object
2112 //static constructor
2113 public static function NicoFlashVars$cinit()
2114 { //MethodID:129, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
2116 LEAF_HIDDEN_MENU = 1;
2120 //static variables/etc.
2121 public static const LEAF_NO_LOCK:uint = 0; //slotID:1
2122 public static const LEAF_HIDDEN_MENU:uint = 1; //slotID:2
2123 public static const LEAF_DISABLE:uint = 2; //slotID:3
2126 private var _watchFlashVars:WatchFlashVars; //slotID:0
2127 private var _thumbFlashVars:ThumbFlashVars; //slotID:0
2128 private var _watchID:String; //slotID:0
2129 private var _originalVideoID:String; //slotID:0
2130 private var _mylistCount:uint; //slotID:0
2131 private var _videoType:String; //slotID:0
2132 private var _videoTitle:String = ""; //slotID:0
2133 private var _videoDescription:String = ""; //slotID:0
2134 private var _isMymemory:Boolean; //slotID:0
2135 private var _waitsSWFVideoInit:Boolean; //slotID:0
2136 private var _forceLowMode:Boolean; //slotID:0
2137 private var _economyMode:String; //slotID:0
2138 private var _playerVersionUpdated:String; //slotID:0
2139 private var _playerInfoUpdated:String; //slotID:0
2140 private var _isCommunityVideo:Boolean; //slotID:0
2141 private var _isCommunityThread:Boolean; //slotID:0
2142 private var _hasOwnerThread:Boolean; //slotID:0
2143 private var _isDeepenedCommentForce:Boolean; //slotID:0
2144 private var _isChannel:Boolean; //slotID:0
2145 private var _isNoComment:Boolean; //slotID:0
2146 private var _importedBGMVideos:Array; //slotID:0
2147 private var _category:String; //slotID:0
2148 private var _categoryGroup:String; //slotID:0
2149 private var _communityID:String; //slotID:0
2150 private var _communityGlobalID:String; //slotID:0
2151 private var _isNoCommand:Boolean; //slotID:0
2152 private var _isNoAtComment:Boolean; //slotID:0
2153 private var _isWide:Boolean; //slotID:0
2154 private var _countryCode:String; //slotID:0
2155 private var _videoDetail:Object; //slotID:0
2156 private var _leafSwitch:uint = 0; //slotID:0
2157 private var _noRelation:Boolean; //slotID:0
2158 private var _noRelatedVideo:Boolean; //slotID:0
2160 public function get watchID():String
2161 { //MethodID:130, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2162 return this._watchID;
2165 internal function set watchID(hug1:String):void
2166 { //MethodID:131, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2167 this._watchID = hug1;
2170 public function get originalVideoID():String
2171 { //MethodID:132, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2172 return this._originalVideoID;
2175 internal function set originalVideoID(hug1:String):void
2176 { //MethodID:133, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2177 this._originalVideoID = hug1;
2180 public function get mylistCount():uint
2181 { //MethodID:134, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2182 return this._mylistCount;
2185 internal function set mylistCount(hug1:uint):void
2186 { //MethodID:135, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2187 this._mylistCount = hug1;
2190 public function get videoType():String
2191 { //MethodID:136, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2192 return this._videoType;
2195 internal function set videoType(hug1:String):void
2196 { //MethodID:137, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2197 this._videoType = hug1;
2200 public function get videoTitle():String
2201 { //MethodID:138, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2202 return this._videoTitle;
2205 internal function set videoTitle(hug1:String):void
2206 { //MethodID:139, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2207 this._videoTitle = hug1;
2210 public function get videoDescription():String
2211 { //MethodID:140, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2212 return this._videoDescription;
2215 internal function set videoDescription(hug1:String):void
2216 { //MethodID:141, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2217 this._videoDescription = hug1;
2220 public function get isMymemory():Boolean
2221 { //MethodID:142, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2222 return this._isMymemory;
2225 internal function set isMymemory(hug1:Boolean):void
2226 { //MethodID:143, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2227 this._isMymemory = hug1;
2230 public function get waitsSWFVideoInit():Boolean
2231 { //MethodID:144, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2232 return this._waitsSWFVideoInit;
2235 internal function set waitsSWFVideoInit(hug1:Boolean):void
2236 { //MethodID:145, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2237 this._waitsSWFVideoInit = hug1;
2240 public function get forceLowMode():Boolean
2241 { //MethodID:146, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2242 return this._forceLowMode;
2245 internal function set forceLowMode(hug1:Boolean):void
2246 { //MethodID:147, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2247 this._forceLowMode = hug1;
2250 public function get economyMode():String
2251 { //MethodID:148, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2252 return this._economyMode;
2255 internal function set economyMode(hug1:String):void
2256 { //MethodID:149, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2257 this._economyMode = hug1;
2260 public function get playerVersionUpdated():String
2261 { //MethodID:150, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2262 return this._playerVersionUpdated;
2265 internal function set playerVersionUpdated(hug1:String):void
2266 { //MethodID:151, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2267 this._playerVersionUpdated = hug1;
2270 public function get playerInfoUpdated():String
2271 { //MethodID:152, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2272 return this._playerInfoUpdated;
2275 internal function set playerInfoUpdated(hug1:String):void
2276 { //MethodID:153, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2277 this._playerInfoUpdated = hug1;
2280 public function get isCommunityVideo():Boolean
2281 { //MethodID:154, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2282 return this._isCommunityVideo;
2285 internal function set isCommunityVideo(hug1:Boolean):void
2286 { //MethodID:155, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2287 this._isCommunityVideo = hug1;
2290 public function get isCommunityThread():Boolean
2291 { //MethodID:156, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2292 return this._isCommunityThread;
2295 internal function set isCommunityThread(hug1:Boolean):void
2296 { //MethodID:157, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2297 this._isCommunityThread = hug1;
2300 public function get hasOwnerThread():Boolean
2301 { //MethodID:158, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2302 return this._hasOwnerThread;
2305 internal function set hasOwnerThread(hug1:Boolean):void
2306 { //MethodID:159, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2307 this._hasOwnerThread = hug1;
2310 public function get isDeepenedCommentForce():Boolean
2311 { //MethodID:160, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2312 return this._isDeepenedCommentForce;
2315 internal function set isDeepenedCommentForce(hug1:Boolean):void
2316 { //MethodID:161, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2317 this._isDeepenedCommentForce = hug1;
2320 public function get importedBGMVideos():Array
2321 { //MethodID:162, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2322 return this._importedBGMVideos;
2325 internal function set importedBGMVideos(hug1:Array):void
2326 { //MethodID:163, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2327 this._importedBGMVideos = hug1;
2330 public function get isChannel():Boolean
2331 { //MethodID:164, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2332 return this._isChannel;
2335 internal function set isChannel(hug1:Boolean):void
2336 { //MethodID:165, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2337 this._isChannel = hug1;
2340 public function get isNoComment():Boolean
2341 { //MethodID:166, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2342 return this._isNoComment;
2345 internal function set isNoComment(hug1:Boolean):void
2346 { //MethodID:167, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2347 this._isNoComment = hug1;
2350 public function get category():String
2351 { //MethodID:168, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2352 return this._category;
2355 internal function set category(hug1:String):void
2356 { //MethodID:169, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2357 this._category = hug1;
2360 public function get categoryGroup():String
2361 { //MethodID:170, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2362 return this._categoryGroup;
2365 internal function set categoryGroup(hug1:String):void
2366 { //MethodID:171, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2367 this._categoryGroup = hug1;
2370 public function get watchFlashVars():WatchFlashVars
2371 { //MethodID:172, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2372 return this._watchFlashVars;
2375 internal function set watchFlashVars(hug1:WatchFlashVars):void
2376 { //MethodID:173, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2377 this._watchFlashVars = hug1;
2380 public function get thumbFlashVars():ThumbFlashVars
2381 { //MethodID:174, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2382 return this._thumbFlashVars;
2385 internal function set thumbFlashVars(hug1:ThumbFlashVars):void
2386 { //MethodID:175, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2387 this._thumbFlashVars = hug1;
2390 public function get communityID():String
2391 { //MethodID:176, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2392 return this._communityID;
2395 internal function set communityID(hug1:String):void
2396 { //MethodID:177, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2397 this._communityID = hug1;
2400 public function get communityGlobalID():String
2401 { //MethodID:178, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2402 return this._communityGlobalID;
2405 internal function set communityGlobalID(hug1:String):void
2406 { //MethodID:179, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2407 this._communityGlobalID = hug1;
2410 public function get isNoCommand():Boolean
2411 { //MethodID:180, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2412 return this._isNoCommand;
2415 internal function set isNoCommand(hug1:Boolean):void
2416 { //MethodID:181, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2417 this._isNoCommand = hug1;
2420 public function get isNoAtComment():Boolean
2421 { //MethodID:182, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2422 return this._isNoAtComment;
2425 internal function set isNoAtComment(hug1:Boolean):void
2426 { //MethodID:183, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2427 this._isNoAtComment = hug1;
2430 public function get isWide():Boolean
2431 { //MethodID:184, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2432 return this._isWide;
2435 internal function set isWide(hug1:Boolean):void
2436 { //MethodID:185, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2437 this._isWide = hug1;
2440 public function get countryCode():String
2441 { //MethodID:186, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2442 return this._countryCode;
2445 internal function set countryCode(hug1:String):void
2446 { //MethodID:187, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2447 this._countryCode = hug1;
2450 public function get videoDetail():Object
2451 { //MethodID:188, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2452 return this._videoDetail;
2455 internal function set videoDetail(hug1:Object):void
2456 { //MethodID:189, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2457 this._videoDetail = hug1;
2460 public function get leafSwitch():uint
2461 { //MethodID:190, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2462 return this._leafSwitch;
2465 internal function set leafSwitch(hug1:uint):void
2466 { //MethodID:191, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2467 this._leafSwitch = hug1;
2470 public function get forceRelationInvisible():Boolean
2471 { //MethodID:192, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2472 return this._noRelation;
2475 internal function set forceRelationInvisible(hug1:Boolean):void
2476 { //MethodID:193, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2477 this._noRelation = hug1;
2480 public function get noRelatedVideo():Boolean
2481 { //MethodID:194, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2482 return this._noRelatedVideo;
2485 internal function set noRelatedVideo(hug1:Boolean):void
2486 { //MethodID:195, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2487 this._noRelatedVideo = hug1;
2491 public function NicoFlashVars()
2492 { //MethodID:196, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
2500 package jp.nicovideo.nicoplayer.models.video{
2502 //■class(instance)_index:5
2503 public class VideoType extends Object
2505 //static constructor
2506 public static function VideoType$cinit()
2507 { //MethodID:198, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
2513 //static variables/etc.
2514 public static const FLV:String = "flv"; //slotID:1
2515 public static const MP4:String = "mp4"; //slotID:2
2516 public static const SWF:String = "swf"; //slotID:3
2519 public function VideoType()
2520 { //MethodID:199, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
2528 package jp.nicovideo.nicoplayer.views.comment{
2530 //■class(instance)_index:6
2531 public class CommentLayerID extends Object
2533 //static constructor
2534 public static function CommentLayerID$cinit()
2535 { //MethodID:201, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
2541 //static variables/etc.
2542 public static const MAIN:String = "main"; //slotID:1
2543 public static const OWNER:String = "owner"; //slotID:2
2544 public static const OPTION:String = "option"; //slotID:3
2547 public function CommentLayerID()
2548 { //MethodID:202, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
2556 package jp.nicovideo.nicoplayer.models.video.swf{
2558 //■class(instance)_index:7
2559 public interface ISWFVideoClient
2561 //static constructor
2562 public static function ISWFVideoClient$cinit()
2563 { //MethodID:204, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2567 function getSourceData(hug1:Function):void; //MethodID:205, dispID:0
2570 public function ISWFVideoClient(); //MethodID:206, dispID:0
2576 package jp.nicovideo.nicoplayer.models.video{
2578 //■class(instance)_index:8
2579 public interface ITimeline
2581 //static constructor
2582 public static function ITimeline$cinit()
2583 { //MethodID:208, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2587 function get length():Number; //MethodID:209, dispID:0
2589 function get vpos():Number; //MethodID:210, dispID:0
2591 function get isInitialized():Boolean; //MethodID:211, dispID:0
2594 public function ITimeline(); //MethodID:212, dispID:0
2600 package jp.nicovideo.nicoplayer.models.video{
2602 import flash.display.DisplayObject
2603 import jp.nicovideo.util.Functions
2605 //■class(instance)_index:9
2606 public interface IVideo implements ITimeline
2608 //static constructor
2609 public static function IVideo$cinit()
2610 { //MethodID:214, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2614 function load(hug1:Function):void; //MethodID:215, dispID:0
2616 function play():void; //MethodID:216, dispID:0
2618 function stop():void; //MethodID:217, dispID:0
2620 function seek(hug1:Number):void; //MethodID:218, dispID:0
2622 function resize(hug1:Number, hug2:Number):void; //MethodID:219, dispID:0
2624 function get loadedLength():Number; //MethodID:220, dispID:0
2626 function get isPlaying():Boolean; //MethodID:221, dispID:0
2628 function get isPausing():Boolean; //MethodID:222, dispID:0
2630 function get isSeeking():Boolean; //MethodID:223, dispID:0
2632 function get isEnd():Boolean; //MethodID:224, dispID:0
2634 function get isBuffering():Boolean; //MethodID:225, dispID:0
2636 function set isLoop(hug1:Boolean):void; //MethodID:226, dispID:0
2638 function set volume(hug1:Number):void; //MethodID:227, dispID:0
2640 function get isControllable():Boolean; //MethodID:228, dispID:0
2642 function get videoPlayerStatus():String; //MethodID:229, dispID:0
2644 function get layer():DisplayObject; //MethodID:230, dispID:0
2646 function get onVideoBufferingStarted():Functions; //MethodID:231, dispID:0
2648 function get onVideoLoadComplete():Functions; //MethodID:232, dispID:0
2650 function get contentWidth():int; //MethodID:233, dispID:0
2652 function get contentHeight():int; //MethodID:234, dispID:0
2655 public function IVideo(); //MethodID:235, dispID:0
2661 package jp.nicovideo.nicoplayer.models.video{
2663 import flash.display.DisplayObject
2664 import jp.nicovideo.util.Functions
2666 //■class(instance)_index:10
2667 public interface IChildVideo implements IVideo
2669 //static constructor
2670 public static function IChildVideo$cinit()
2671 { //MethodID:237, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2675 function close():void; //MethodID:238, dispID:0
2677 function get onVideoEnded():Functions; //MethodID:239, dispID:0
2679 function get onVideoSeeked():Functions; //MethodID:240, dispID:0
2681 function get onVideoSeeking():Functions; //MethodID:241, dispID:0
2683 function get onVideoPlayed():Functions; //MethodID:242, dispID:0
2685 function get onVideoStopped():Functions; //MethodID:243, dispID:0
2687 function get onVideoError():Functions; //MethodID:244, dispID:0
2689 function get source():DisplayObject; //MethodID:245, dispID:0
2692 public function IChildVideo(); //MethodID:246, dispID:0
2698 package jp.nicovideo.nicoplayer.models.video.swf{
2700 //■class(instance)_index:11
2701 public interface IGameRankingClient implements ISWFVideoClient
2703 //static constructor
2704 public static function IGameRankingClient$cinit()
2705 { //MethodID:248, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2709 function getThumbnailURL(hug1:String, hug2:Function):void; //MethodID:249, dispID:0
2712 public function IGameRankingClient(); //MethodID:250, dispID:0
2718 package jp.nicovideo.nicoplayer.models.video{
2720 import flash.display.DisplayObject
2721 import flash.display.Loader
2722 import flash.display.LoaderInfo
2723 import flash.display.MovieClip
2724 import flash.display.Sprite
2725 import flash.events.Event
2726 import flash.events.EventDispatcher
2727 import flash.events.IOErrorEvent
2728 import flash.events.ProgressEvent
2729 import flash.events.SecurityErrorEvent
2730 import flash.media.SoundTransform
2731 import flash.net.URLRequest
2732 import flash.system.ApplicationDomain
2733 import flash.system.LoaderContext
2734 import flash.system.Security
2735 import flash.system.SecurityDomain
2736 import jp.nicovideo.nicoplayer.config.NicoConfig
2737 import jp.nicovideo.nicoplayer.models.video.swf.ISWFVideoClient
2738 import jp.nicovideo.nicoplayer.models.video.swf.ISWFVideoContent
2739 import jp.nicovideo.nicoplayer.models.video.swf.SWFVideoType
2740 import jp.nicovideo.util.Functions
2741 import jp.nicovideo.util.ObjectUtils
2742 import jp.nicovideo.util.StringUtils
2743 import org.libspark.utils.ForcibleLoader
2745 use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
2747 //■class(instance)_index:12
2748 public class SWFVideo extends Object implements IChildVideo
2750 //static constructor
2751 public static function SWFVideo$cinit()
2752 { //MethodID:252, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
2756 public function SWFVideo(hug1:String, hug2:Sprite, hug3:Number, hug4:Boolean=false, hug5:String, hug6:NicoConfig=null, hug7:String, hug8:Boolean=false)
2757 { //MethodID:253, LocalCount= 9 , MaxScope= 1, MaxStack= 2, CodeLength= 156
2758 this._onVideoEnded = new Functions();
2759 this._onVideoSeeked = new Functions();
2760 this._onVideoSeeking = new Functions();
2761 this._onVideoPlayed = new Functions();
2762 this._onVideoStopped = new Functions();
2763 this._onVideoBufferingStarted = new Functions();
2764 this._onVideoLoadComplete = new Functions();
2765 this._onVideoError = new Functions();
2771 this._length = hug3;
2772 this._videoLayer = hug2;
2773 this._layerWidth = this._videoLayer.width;
2774 this._layerHeight = this._videoLayer.height;
2779 this._waitingLoad = true;
2780 this._videoTitle = hug5;
2781 this._configure = hug6;
2782 this._videoID = hug7;
2786 private var _this:IVideo; //slotID:0
2787 private var _videoLayer:Sprite; //slotID:0
2788 private var _video:MovieClip; //slotID:0
2789 private var _url:String; //slotID:0
2790 private var _length:Number; //slotID:0
2791 private var _bytesLoaded:uint = 0; //slotID:0
2792 private var _bytesTotal:uint; //slotID:0
2793 private var _isInitialized:Boolean = false; //slotID:0
2794 private var _isLoaded:Boolean = false; //slotID:0
2795 private var _isPlaying:Boolean = false; //slotID:0
2796 private var _waitingLoad:Boolean = false; //slotID:0
2797 private var _videoTitle:String; //slotID:0
2798 private var _configure:NicoConfig; //slotID:0
2799 private var _videoID:String; //slotID:0
2800 private var _isLoop:Boolean; //slotID:0
2801 private const _onVideoEnded:Functions; //slotID:0
2802 private const _onVideoSeeked:Functions; //slotID:0
2803 private const _onVideoSeeking:Functions; //slotID:0
2804 private const _onVideoPlayed:Functions; //slotID:0
2805 private const _onVideoStopped:Functions; //slotID:0
2806 private const _onVideoBufferingStarted:Functions; //slotID:0
2807 private const _onVideoLoadComplete:Functions; //slotID:0
2808 private const _onVideoError:Functions; //slotID:0
2809 private var _isAS3:Boolean = false; //slotID:0
2810 private var _isLoading:Boolean = false; //slotID:0
2811 private var _isPausing:Boolean = true; //slotID:0
2812 private var _isEnd:Boolean = false; //slotID:0
2813 private var _isSeeking:Boolean = false; //slotID:0
2814 private var _layerWidth:int; //slotID:0
2815 private var _layerHeight:int; //slotID:0
2816 private var _contentWidth:int; //slotID:0
2817 private var _contentHeight:int; //slotID:0
2819 public function get movieClip():MovieClip
2820 { //MethodID:254, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2824 public function load(hug1:Function):void
2825 { //MethodID:261, LocalCount= 4 , MaxScope= 5, MaxStack= 6, CodeLength= 414
2826 internal var f:Function; //slotID:1
2827 internal var loader:Loader; //slotID:2
2828 internal var context:LoaderContext; //slotID:3
2829 internal var request:URLRequest; //slotID:4
2830 internal var info:LoaderInfo; //slotID:5
2831 internal var applied:Boolean; //slotID:6
2832 internal var ioErrorHandler:Function; //slotID:7
2833 internal var securityErrorHandler:Function; //slotID:8
2834 internal var eventDispatcher:EventDispatcher; //slotID:9
2838 ioErrorHandler = null;
2839 securityErrorHandler = null;
2840 eventDispatcher = null;
2842 ioErrorHandler = function(hug1:IOErrorEvent):void{ //MethodID:255, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 17
2848 securityErrorHandler = function(hug1:SecurityErrorEvent):void{ //MethodID:256, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 17