Кекс":2ztqyvky сказал(а):
Подскажите, как из флэш-ролика при наличии кнопки "Печать" (не команды флэш-плеера, а самодельной button) распечатать только тот кадр, в котором она была нажата?
ну для этого лучше всего использовать класс
PrintJob.Он правда доступен только в 7-м флэше, но пора, Миха, (если ты еще не перешел) переходить на 7-ку, а то уже скоро 8-й выйдет, а ты еще на эмыксе

.
(если не знаешь) объекты класса создаются таким образом:
Код:
var printing:PrintJob = new PrintJob();
для того, чтобы назначить, чего надо печатать(какой фрагмент какого кадра) существеут метод addPage(target, area, options, frameNumber)
где:
target - клип, который надо напечатать
area - область кадра, которую надо распечатать. Ее граничные координаты(определенные относительно собственной системы координат) должны быть присвоены свойствам xMin, xMax, yMin, yMax, передаваемых в качестве параметра объекта(необязательный параметр, т.е. если ниче указывать не надо, пишем null).
options - тоже необязательный параметр, принимает true или false. Если true, то графига распечатается как растровая(т.е. там всякие цветовые эффекты, альфа каналы будут учитываться и все они распечатаются, но снизится качество распечатки векторной графики, как всякие кривые Безье и т.п.); если false - то как векторная, т.е. наоборот.
frameNumber - номер кадра, которой надо распечатать(чтобы распечатать N кадров, нужно N раз вызвать метод addPage).
Переходим к практике...
к примеру у тебя на основной временной диаграмме(на руте) лежит картинка, котору надо распечатать, и где-нить в уголке лежит кнопочка...
вешаем на кнопку(инстанс которой, к примеру, print_btn) сей скрипт:
Код:
print_btn.onRelease = function(){
var printing:PrintJob = new PrintJob();
if(printing.start()){/*собственно спрашиваем юзера хочет ли он распечатать картинку*/
printing.addPage(_root, null, true, _root._currentframe);/*добавляем в список печатаемых страниц текущий кадр основной временной диаграммы(можно в качестве второго параметра указать объект координат, ограничивающих область распечатки, чтоб, к примеру, не распечаталась кнопка(пусть размер окна 550*400), т.е.
printing.addPage(_root, {xMin:0, yMin:0, xMax:550, yMax:350}, true, _root._currentframe);*/
printing.send();//печатаем
}
}
если нажо для 6-ки, пиши
Добавлено спустя 2 минуты 7 секунд:
Dam[И сказал(а):
eD":2ztqyvky]getUrl ("http://localhost/", "_blank"); открывает урл в новом окне, ещё флэш может окрыть урл во фрейме, если в место "_blank" вписать имя фрейма.
вопрос:
этот фрейм нужно создать в самом флэш ролике? ели да, то как...
этот фрейм должен размещаца в одной html странице с роликом?если да, то как записать адрес этого фрейма параметры getUrl ?
по идее, как я понимаю, страница по указаному адресу загружается во фрэйм на одной html странице с роликом, т.к. фрэймов в таком же понимании, как и в вэб-страницах, во флэш-мувиках не существует.
Как записать адресс, я точно не знаю... вот все, что я нашел по этому поводу:
метод getURL используйтся в такой форме: getURL("URL", window);
возможны следующие варианты window: _self..... name
name - новый документ будет загружен в окно или фрейм с именем "name". Если окна или фрейма с этим именем нет, то браузер откроет новое окно, присвоет ему имя "name" и загрузит целевой документ в него. Например:
getURL("http://www.gtn.ru", "left -_frame");
имя окна или фрейма не должно начинаться с символа "_", также учитывается регистр имени фрейма.