Flashhilfe.de - Flash Community

PrintJob löschen - aber wie in AS 3.0? [Flash 11]

 


AntwortenRegistrieren Seite1  

Sharky25#1
Benutzerbild von Sharky25
Beiträge: 37
Registriert: Mar 2012

01.04.2012, 10:28

Hallo zusammen,

ich habe mir eine Printfunktion erstellt, die funktioniert auch ganz hervorragend - aber leider nur einmal.

Der Code sieht wie folgt aus:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
btn_print.addEventListener(MouseEvent.CLICK, function(e) { PrintTrack(e, Bahn) });

//
//********************
// Funktion MC drucken
//********************
//
function PrintTrack(event:Event, MC2print:MovieClip)
{
     
      var myPrintJob = new PrintJob();
     
     if (MC2print.width > MC2print.height)
        {
         myPrintJob.orientation = PrintJobOrientation.LANDSCAPE
        
        if (MC2print.width < myPrintJob.pageWidth)
           {
              MC2print.scaleY = (myPrintJob.pageWidth/MC2print.width);
           MC2print.scaleX = (myPrintJob.pageWidth/MC2print.width);
           }
        
        }
     else if(MC2print.height > MC2print.width)
        {
        myPrintJob.orientation = PrintJobOrientation.PORTRAIT
        
        if (MC2print.height < myPrintJob.pageHeight)
           {
              MC2print.scaleY = (myPrintJob.pageHeight/MC2print.height);
           MC2print.scaleX = (myPrintJob.pageHeight/MC2print.height);
           }
        
        }
     else
        {
        myPrintJob.orientation = PrintJobOrientation.PORTRAIT
        
        
        }
     
     
     
      var options:PrintJobOptions = new PrintJobOptions();
      options.printAsBitmap = true;
              
              myPrintJob.start();
             myPrintJob.addPage(MC2print, null, options);
           myPrintJob.send();
           
     delete myPrintJob
}




Als Fehler kommt folgendes zurück:
Szene 1, Ebene 'Actions', Bild 1, Zeile 850   1189: Es wird versucht, die feste Eigenschaft myPrintJob zu löschen. Nur dynamisch definierte Eigenschaften können gelöscht werden.

Kann mr bitte jemand helfen, wie ich den PrintJob neu initialisieren kann, da sich die Abmessungen von "MC2print" ändern können und die Skalierung damit neu berechnet werden muss.

Vielen Dank vorab...
Werbung
Beiträge: 0
Registriert: Feb 2016


vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

02.04.2012, 10:15

Wie wärs wenn du deinen protJob einfach überschriebst??
ActionScript:
1myPrintJob = new PrintJob();

Dann hast du in diesem Moment deinen alten gelöscht und einen neuen erstellt..
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Sharky25#3
Benutzerbild von Sharky25
Beiträge: 37
Registriert: Mar 2012

Themenautor/in

02.04.2012, 11:13

Hallo,

Okay - soll heißen ich definiere die Variable myPrintJob außerhalb der vom Button aufgerufenen Funktion:

ActionScript:
1var myPrintJob:PrintJob


und überschreibe sie dann in der Funktion wie von Dir beschrieben?

Wird sie denn in meinem Code beim erneuten Funktionsaufruf nicht schon jetzt überschrieben?

In AS 2.0 gab es die explizite Möglichkeit über "delete myPrintJob" diesen nach dem Ausdruck zu löschen. Ich vermute nach Deiner Aussage, dass es diese Möglichkeit in AS 3.0 so nicht mehr gibt?

Schon mal vielen Dank - Du hast mir schon sehr viel geholfen - das Forum ist echt spitze!
Geändert von Sharky25 am 02.04.12 um 11:15 Uhr
vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

02.04.2012, 14:03

Wenn deine Variable in einer Funktion definiert wird, dann wird diese bei jedem aufruf neu definiert, aber die alte nicht gelöscht. Wie du schon erwähntest musst du sie vorher (also auserhalb der Funktion definierst) erstellen, dann wird der Printjob aus der Funktion immer überschrieben.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Werbung
Beiträge: 0
Registriert: Feb 2016


Sharky25#5
Benutzerbild von Sharky25
Beiträge: 37
Registriert: Mar 2012

Themenautor/in

02.04.2012, 18:54

Hallo,

es funktioniert leider immer noch nicht :-(

Folgendes Problem: im Programm werden einige MC in einen "OberMC" gesetzt. Dieser soll/wird gedruckt.

Über folgenden Code wird er vor dem Drucken innerhalb der Print-Funktion auf die Papiergröße angepaßt:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
btn_print.addEventListener(MouseEvent.CLICK, function(e) { PrintTrack(e, Bahn) });

//
//********************
// Funktion MC drucken
//********************
//
function PrintTrack(event:Event, MC2print:MovieClip)
{
     
      myPrintJob = new PrintJob();
     
     if (MC2print.width > MC2print.height)
        {
         myPrintJob.orientation = PrintJobOrientation.LANDSCAPE
        
        if (MC2print.width < myPrintJob.pageWidth)
           {
           MC2print.scaleY = (myPrintJob.pageWidth/MC2print.width);
           MC2print.scaleX = (myPrintJob.pageWidth/MC2print.width);
           
           if(MC2print.height > myPrintJob.pageHeight)
              {
              MC2print.scaleY = (myPrintJob.pageHeight/MC2print.height);
              MC2print.scaleX = (myPrintJob.pageHeight/MC2print.height);
              }
           }      
        }
     else if(MC2print.width < MC2print.height)
        {
        myPrintJob.orientation = PrintJobOrientation.PORTRAIT
        
        if (MC2print.height < myPrintJob.pageHeight)
           {
              MC2print.scaleY = (myPrintJob.pageHeight/MC2print.height);
           MC2print.scaleX = (myPrintJob.pageHeight/MC2print.height);
           
           if(MC2print.width > myPrintJob.pageWidth)
              {
              MC2print.scaleY = (myPrintJob.pageWidth/MC2print.width);
              MC2print.scaleX = (myPrintJob.pageWidth/MC2print.width);
              }         
           }      
        }
     else
        {
        myPrintJob.orientation = PrintJobOrientation.PORTRAIT      
        }
     
      var options:PrintJobOptions = new PrintJobOptions();
      options.printAsBitmap = true;
              
      myPrintJob.start();
       myPrintJob.addPage(MC2print, null, options);
     myPrintJob.send();         
}


Wenn ich nun weitere MCs hinzufüge in meinem "OberMC" behält das ganze sturr die Skalierung aus dem ersten Druckjob?!
vindel#6
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

02.04.2012, 21:15

Dann setzte den Job ganz am Anfang zurück:
ActionScript:
1
2
myPrintJob = null;
myPrintJob = new PrintJob();
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Sharky25#7
Benutzerbild von Sharky25
Beiträge: 37
Registriert: Mar 2012

Themenautor/in

03.04.2012, 11:09

Hallo,

super! Das war die Lösung.

Vielen 1000 Dank.

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de