Περιεργο προβλημα με το localconnection

Adobe Photoshop, Flash, DreamWeaver, FireWorks, Contribute, FreeHand, Director.

Περιεργο προβλημα με το localconnection

Δημοσίευσηαπό Sartiv » 21.02.12, 11:40 am

Καλημερα σε ολους ξανα!!

Εχω ενα πολυ περιεργο προβλημα που εχω κολλησει εδω και καμια εβδομαδα.

Εχω ενα parent swf με 3-4 εξωτερικα swf που ειναι γενικως ενα e-shop.

Σε ενα εξωτερικο swf παραγγελνεις πραματα (τα δηλωνεις δηλαδη στο καλαθι αγορας)

Για να μην χανονται πληροφοριες στο καλαθι αγορας οταν αλλαζω το εξωτερικο swf χρησιμοποιω localconnections, δηλαδη στελνω τα δεδομενα (ειναι ενα array) στο parent .swf καθε φορα που παραγγελνεται ενα πραμα και οταν φορτωνεται παλι το εξωτερικο .swf με τα πραματα, στελνονται τα δεδομενα πισω (απο το parent, παντα σε array).

Το προβλημα ειναι πως μετα απο την αποστολη απο το parent .swf στο external, παρολο που με trace δειχνει οτι εληφθει σωστα το array απο το parent, οταν γινεται κλικ σε ενα πραμα για αγορα ... μηδενιζεται το array (χωρις λογο!) και ξεκιναει απο την αρχη!!! Με αποτελεσμα να χανονται τα προηγουμενα προιοντα.

Οταν γινεται κλικ σε ενα προιον για αγορα :
Κώδικας: Επιλογή όλων
private function GoingBox(e:MouseEvent):void
{
_BagArr.push(e.currentTarget.parent.name);   //name = id of item
_connMain.send("for_main", "ForMain", _BagArr);   
}


Καποιος που εχει μια παρομοια εμπειρια και μπορει να με βγαλει απο το αδιεξοδο;
Σας ευχαριστω!

Υ.Γ.: Για να μην σας κουρασω, δοκιμασα αρχικα σε 3 ξενα forums χωρις καμια τυχη.
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: Περιεργο προβλημα με το localconnection

Δημοσίευσηαπό abavisg » 21.02.12, 12:20 pm

Καλημερα,

δυστυχως ειναι πολυ λιγες οι πληροφοριες που δινεις.
Χρειαζομαι περισσοτερο κωδικα για να δω τι γινεται και σε αλλα μερη του προγραμματος.

Ισως οταν ξανακανεις το εξωτερικο swf καπου να ξαναδημιουργειται το array?

Σε τι προγραμμα δουλευεις; Flash ή Flash Builder;

Αν ξερεις να κανεις debug, βαλε breakpoints και δες ολα σου τα variables σε καθε breakpoint.

GA
abavisg
Member
 
Posts: 7
Εγγραφή: 07.01.12, 5:24 pm

Re: Περιεργο προβλημα με το localconnection

Δημοσίευσηαπό Sartiv » 21.02.12, 12:50 pm

Καλημερα και ευχαριστω για την απαντηση σου, (δουλευω με flash professional cs5.5)

επιτηδες εβαλα ελαχιστο κωδικο για να μην τρομαξετε και πελαγωσετε.
Εχω κανει debug, εχω βαλει breakpoint.

Ειναι ΟΚ το array αν δεν γινεται κλικ (στο οποιο γινεται ενα enter-frame event που ελεγχει τη ταχυτητα του ποντικιου αλλα ειναι ασχετο), και ΟΤΑΝ γινεται και μπαινει στη παραπανω συναρτηση μηδενιζεται!!!

Ο κωδικος ειναι τεραστιος και θα σας μπερδεψει πολυ περισσοτερο. Θα προσπαθησω να ειμαι οσο πιο συντομος γινεται (θα βαλω μονο τα ΑΠΟΛΥΤΩΣ σχετικα)

Στο external .swf: (εχω σημειωσει που σβηνεται ακριβως το array)

Κώδικας: Επιλογή όλων
package
{
   (.... τα imports)
   
   public class Home extends MovieClip
   {
      (διαφορα public/private var )
      private var _recHome:LocalConnection;   //Gia na parei apo Main
      private var _BagArr:Array = new Array(); //To 'kayto' array!
      
      public var _connMain:LocalConnection;   //Stelnei sto Main
            
      public function Home()
      {
           Init();      //Αρχικοποιηση.
      }
      
      private function Init():void
      {
      _recHome = new localConnection();   
         _recHome.client = this;
         try
         {
         _recHome.connect("my_bag");
         }
       catch (error:ArgumentError)
         {
              trace("Can't connect...the connection name is already being used by another SWF");
         }
                   (διαφορες ασχετες εντολες)
_categories.market.addEventListener(MouseEvent.CLICK, AllagiCategory);      //Ενεργοποιει τα κλικ στις κατηγοριες, εδω οταν γινεται κλικ ΣΒΗΝΕΤΑΙ το array. Και εμφανιζονται τα προιοντα με την επιλογη 'αγορα'


      _connMain = new localConnection();    //energopoiei ti sindesi anamesa sta swf
      _connMain.addEventListener(StatusEvent.STATUS, statusHandler);
      }
      
      public function GetKalathi(new_text:Array):void //pairnei to array apo to main
       {
         _BagArr = new_text;
         _recHome.close();
       }
                  (διαφορεσ συναρτησεις)

  private function GoingBox(e:MouseEvent):void  //Οταν γινεται κλικ στο 'αγορα' button
                 {
                    _BagArr.push(e.currentTarget.parent.name);   //name = id of item
                    _connMain.send("for_main", "ForMain", _BagArr);   //Παει στο main
                  }


και στη συναρτηση allagiCategory ποσταρω τη πληρης συναρτηση ωστε να καταλαβετε οτι δεν σβηνεται πουθενα ή αρχικοποιειται το array:

Κώδικας: Επιλογή όλων
private function AllagiCategory(e:MouseEvent):void                        //Συναρτηση οταν πατηθει μια κατηγορια
      {
         switch(e.target.name)
         {
            case "frouta" : _category = "Φρουτα";
                          break;
            case "xartika" : _category = "Χαρτικα";
                         break;
         }
         _categories.frouta.removeEventListener(MouseEvent.CLICK, AllagiCategory);      //Ενεργοποιει τα κλικ στις κατηγοριες
         _categories.xartika.removeEventListener(MouseEvent.CLICK, AllagiCategory);
         removeChild(_categories);
         addChild(_rafiera);                                             //Φορτωνει τη Ραφιερα
         _getCategory.call("rafiera.getSubcategory", _res2, _category);            //Για να βρει τις υποκατηγοριες της καλουσας κατηγοριας
         //_getCategory.call("rafiera.getCategory", _res, _category);               //Για να παρει ολα τα προιοντα της καλουσας κατηγοριας
         
         _rafiera.rafi.buttonMode = true;
         _rafiera.rafi.addEventListener(MouseEvent.MOUSE_DOWN, MouseDownHandler);   //Ενεργοποιει τη συναρτηση για το κυλισμα του ραφιου
         _rafiera.rafi.addEventListener(Event.ENTER_FRAME, Thrower, false, 0, true);
         
         _rafiera.katigories.addEventListener(MouseEvent.MOUSE_OVER, CategoriesOver);
         _rafiera.katigories.addEventListener(MouseEvent.MOUSE_OUT, CategoriesOut);
         _rafiera.katigories.addEventListener(MouseEvent.MOUSE_DOWN, CategoriesDown);
         
         _rafiera.kalathi.addEventListener(MouseEvent.MOUSE_DOWN, KalathiDown);
         _rafiera.kalathi.addEventListener(MouseEvent.MOUSE_OVER, CategoriesOver);
         _rafiera.kalathi.addEventListener(MouseEvent.MOUSE_OUT, CategoriesOut);
      }
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: Περιεργο προβλημα με το localconnection

Δημοσίευσηαπό Sartiv » 21.02.12, 3:01 pm

Για να ακριβολογω, εχοντας βαλει ενα breakpoint στο

Κώδικας: Επιλογή όλων
private function AllagiCategory(e:MouseEvent):void
,

μηδενιζεται το array.. :wall :wall

Μιλαμε για εντελως ανεξηγητα πραματα...

Εννοειται οτι ΑΚΡΙΒΩΣ πριν απο το κλικ το array ΥΠΑΡΧΕΙ με ολες τις τιμες του...
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm

Re: Περιεργο προβλημα με το localconnection

Δημοσίευσηαπό abavisg » 22.02.12, 2:47 pm

To Home το ξανα-φορτωνεις;
Bαλε ενα breakpoint (ή trace) στο Init function να σιγουρευτεις οτι δεν τρεχει.

στειλε μου αν θες τα classes στο abavisg@yahoo.co.uk για να μπορεσω να βοηθησω περισσοτερο.

thanks

GA
abavisg
Member
 
Posts: 7
Εγγραφή: 07.01.12, 5:24 pm

Re: Περιεργο προβλημα με το localconnection

Δημοσίευσηαπό Sartiv » 22.02.12, 6:16 pm

Τελικα βρηκα τη λυση, σε ευχαριστω abavisq!

Το προβλημα ηταν στο parent swf , στο loading, το ξαναφορτωνα χωρις να το προσεξω..
Sartiv
Member
 
Posts: 27
Εγγραφή: 16.11.10, 8:46 pm


Επιστροφή στο II.II Δημιουργικό λογισμικό σχεδίασης για τα ψηφιακά μέσα

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες

Visual Communication Designers Club

Το Visual Communication Designers Club, το μεγαλύτερο Ελληνικό online design forum, αποτελεί μια Ελληνική κοινότητα σχεδιαστών οπτικής επικοινωνίας, υπό την ευρύτερη έννοια του όρου, θέλοντας να συμπεριλάβει στα μέλη της κάθε ειδικότητα και βαθμίδα όσων σπουδάζουν ή εργάζονται στον χώρο της επικοινωνίας, έντυπης, διαδικτυακής, τρισδιάστατης ή εφαρμογών πολυμέσων