6 de dezembro de 2007

Controlando impressão [ActionScript]

Opa galera... essa informação é show de bola, e depois que descobri teve um avanço em minha vida
kkkkkkkkk

;D
bom vamos lá..

Nesse post vou ensinar a vocês como determinar qual Frame ou Mc você deseja imprimir.

Primeiramente crie um MovieClip e o istancie como 'impressao_mc' (sem as aspas)
Agora no nosso primeiro frame cole o seguinte código:
*no frame não no MC

>CODE <<>

// Criando a variável de instância com o nome de 'impressao'
var impressao:PrintJob = new PrintJob();
//
Criando uma instância e a chamei de resultado. Ela não irá retornar nenhum valor, por que a ela dei o método start() para começar a impressão.
var resultado:Boolean = impressao.start();

if (resultado) {
trace ("Imprimindo...");
// Aqui é onde eu chamo o MC ou o Frame desejado para impressão.
impressao.addPage("impressao_mc");
}else{
trace ("Erro ao imprimir");
}


É importante saber que o 'addPage' segue essa lógica de sintaxe para funcionar perfeito.

>CODE <<>
impressao.addPage(target, printArea, options, frameNumber);

ela pode até ser costumizada, não sendo necessário seguir o padrão, sendo opcional o uso de alguns desses parâmetros exceto o target.

Conheca os parâmetros:

.target - Esse parâmetro define qual o alvo será atingido, se você digitar números o compilador do filme vai entender que você está definindo por níveis de camadas, mas se for digitado strings como "impressao_mc" (sem aspas) ele vai entender que será o movieclip instanciado que será impresso.

.printArea - Esse parâmetro é especificado por 4 propriedades internas, a 'xMin', 'xMax', 'ymin', 'yMax' (sem as aspas). Essas propriedades vai determinar a área que será impressa dentro do alvo mencionado.

.options - Nas opções você define se você quer que ele imprima como bitmap ou vetor, nesse caso ele é um valor booleano definido pela palavra chave printAsBitmap, da qual vai ser impressa e se igualada a true vai imprimir bitmap se false imprime como vetor. Padrão é imprimir como vetor

.frameNumber - Imprime o Frame especificado. *lembrando que ele aceita apenas por números de frames e não em labels.


Mais abaixo outros exemplos mais complexos:

Ultilizando .options e
.frameNumber
>CODE <<>
var impressao:PrintJob = new PrintJob();
var resultado:Boolean = impressao.start();
if (resultado) {
minhaimpressao.addPage("imprima_mc", null, {printAsBitmap:true}, 5);
} else {
trace ("Impressão cancelada pelo usuário");
}


Utilizando
.printArea
>CODE <<>
var impressao:PrintJob = new PrintJob();
var resultado:Boolean = impressao.start();
if (resultado) {
minhaimpressao.addPage(
"imprima_mc", 0, {xMin:50, xMax:134, yMin:21, yMax:160});
} else {
trace ("Impressão cancelada pelo usuário");
}



Bom pessoal é isso...
Espero que ajude ;D

Até mais!!

4 comentários:

Anônimo disse...

não funciona eu testei..........

Unknown disse...

Bom dia amigo, você deve ter se equivocado com alguma informação ou na estrutura do seu código, cabei de testar no 'Adobe Flash CS3 Professional' e rodo tudo perfeito.
Talvez se você postar seu código eu possa te ajudar com seu problema!
Obrigado...
;)

LUCIENE SIMONATO disse...

Bom dia estou procurando um codigo em ActionScript que me permita comandar a impressão direto pelo flash.
Ta dificil viu meus conhecimentos nessa area são restritos se vc puder me ajudar agradeço.
No site estamos trabalhando com arquivo externo a extensão é swf

Unknown disse...

BOm dia Luciene,

Esse post o código esta literalemten pronto, só você copiar e colar ele no seu flash. Creio que não terá nenhuma dificuldade.

Caso precise de ajuda pode me add no talk> laion.camargo@gmail.com
ou post seu código a sua dúvida especificamente no que você não esta conseguindo fazer que eu ajudo a resolver.
até mais!!!