2015-03-29 7 views
0

Adobe Flash CCAS3: Как вызвать функцию с двумя аргументами - (VBOX и vFile)

Сортировать смущен здесь. Я работаю над оптимизацией своего кода, чтобы вместо вызова launchVideo(); для каждого отдельного видео, которое я могу, можно просто вызвать его один раз, передавая новую исходную строку функции.

Как я могу вызвать функцию launchVideo из другой функции?

При добавлении прослушивателя событий, который вызывает playMPMovie

buttonOne.addEventListener(MouseEvent.MOUSE_DOWN, playMPMovie, false, 0, true); 
function playMPMovieOne(): void { 
    video_file = "/videos/MP_01.mp4"; 
    launchVideo(); 
} 

Я получаю это ...

Scene 1, Layer 'actions', Frame 1, Line 21, Column 2 1136: Incorrect number of arguments. Expected 2. 

При попытке добавления (VBOX, vFile) в launchVideo(); Я получаю это ...

Scene 1, Layer 'actions', Frame 1, Line 20, Column 20 1120: Access of undefined property vFile. 
Scene 1, Layer 'actions', Frame 1, Line 20, Column 14 1120: Access of undefined property vBox. 

Вот полный код.

stop(); 

import flash.events.MouseEvent; 
import flash.events.Event; 
import flash.display.MovieClip; 
import flash.display.Graphics; 
import fl.video.*; 


vinetteMC.visible = false; 

// VARIABLES // 
var video_holder: MovieClip = new MovieClip(); 
var video_file: String; 

// EVENT LISTENERS // 
buttonOne.addEventListener(MouseEvent.MOUSE_DOWN, playMPMovie, false, 0, true); 
function playMPMovieOne(): void { 
    video_file = "/videos/MP_01.mp4"; 
    launchVideo(); 
} 

// Place Playback 
function launchVideo(vBox, vFile): void { 

    var flvPlayer: FLVPlayback = new FLVPlayback(); 
    import fl.video.*; 
    import flash.events.*; 

    flvPlayer.source = vFile; 
    flvPlayer.skinAutoHide = true; 
    flvPlayer.skinBackgroundColor = 0x000000; 

    flvPlayer.width = 1920; 
    flvPlayer.height = 1080; 

    flvPlayer.addEventListener(Event.COMPLETE, completeHandler, false, 0, true); 
    function completeHandler(event: Event): void { 

     removeChild(video_holder); 
     removeChild(flvPlayer); 
     flvPlayer.addEventListener(fl.video.VideoEvent.COMPLETE, completeHandler, false, 0, true); 
     trace("Complete handler called"); 
    } 

    vBox.addChild(flvPlayer); 
} 

launchVideo(video_holder, video_file); 

ответ

0

Похоже, что вы желаете, чтобы позвонить

function playMPMovieOne(): void { 
    video_file = "/videos/MP_01.mp4"; 
    launchVideo(video_holder, video_file) 
} 

Кроме того, из вашего примера кода держатель видео создается, но никогда не добавляется в список отображения. Возможно, вам придется добавить это, чтобы увидеть что-нибудь.

addChild(video_holder); 
+0

Спасибо Andrew. Я дам вам знать, если это сработает. Спасибо за вашу помощь! – elCavador

+0

Закончено с предложением (и кодом) от @Vesper - Огромная помощь. Я очень долго боролся с этим проектом. Полный код здесь http://pastebin.com/BTNmh0jC – elCavador