좋은글이있어서 퍼왔어요~ > 십년전오늘

십년전오늘

10년전 추억의 책장을 넘기며

좋은글이있어서 퍼왔어요~ 정보

좋은글이있어서 퍼왔어요~

본문

ActionScript 3.0만으로 쿠키를 제어할 수 있다? 그냥 막연하게 수 있다고 생각했는데 소개할 유틸 코드와 같은 방식을 생각하지 않았다. 본인은 본인은  HTML안에 작성된 Javascript를 코드를 사용하지 않고 ActionScript 3.0만으로 쿠키를 제어할 있다는 생각을 못했다. 근데 그게 가능했다. (왜 진작 이 생각을 못했지?)못했지?)

 

소개할 유틸의 사용하는 방법은 다음과 같이 아주 간단하다.간단하다.


import de.aggro.utils.CookieUtil;
//Set a cookie named mycookie with a value of mycookiemycookie value with a time to live of 30 days
CookieUtil.setCookie(“mycookie”, “mycookie value”, 30);
//Get thatthat cookie and trace its value
trace(CookieUtil.getCookie(“mycookie”“mycookie” ));
//Delete the cookie from the usersusers computer
CookieUtil.deleteCookie(“mycookie”);

 

더 이상 설명할 필요가 없을없을 정도로 쉽게 사용할 수 있다.  아래는 유틸 소스이다.


package de.aggro.utils
{
     import flash.external.ExternalInterface;
   
     public class CookieUtil
    {
        public functionfunction CookieUtil()
        {
         }
       
         private static const FUNCTION_SETCOOKIE:String =
“document.insertScript = function ()”()” +
“{ ” +
“if (document.snw_setCookie==null)” +
“{” +
“snw_setCookie = function (name, value, days)” +
“{” +
“if (days)(days) {”+
                             “var date == new Date();”+
                             “date.setTime(date.getTime()+(days*24*60*60*1000));”+
                             “var expires = ‘; expires=’+date.toGMTString();”expires=’+date.toGMTString();” +
                         “}” +
                          “else var expires = ”;”+
                         “document.cookie = name+’='+value+expires+’; path=/’;” +
          “}” +
“}” +
“}”;
        
        private static const FUNCTION_GETCOOKIE:String =
“document.insertScript == function ()” +
“{ ” +
“if (document.snw_getCookie==null)” +
“{”“{” +
“snw_getCookie = function (name)” +
“{” +
“var nameEQnameEQ = name + ‘=’;”+
                         “var caca = document.cookie.split(’;');”+
                         “for(var i=0;i < ca.length;i++)ca.length;i++) {”+
                             “var c == ca[i];”+
                             “while (c.charAt(0)==’ ‘)‘) c = c.substring(1,c.length);”+
                             “if“if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);”+
                         “}”“}” +
                         “return null;” +
         “}” +
“}” +
“}”;

private static var INITIALIZED:Boolean = false;
        
        private static function init():void{
             ExternalInterface.call(FUNCTION_GETCOOKIE);
             ExternalInterface.call(FUNCTION_SETCOOKIE);
            INITIALIZEDINITIALIZED = true;
         }
       
         public static function setCookie(name:String, value:Object, days:int):): void{
             if(!INITIALIZED)
                 init();
            
            ExternalInterface.call(“snw_setCookie”“snw_setCookie” , name, value, days);
        }
       
         public static function getCookie(name:String):): Object{
             if(!INITIALIZED)
                 init();
            
            return ExternalInterface.call(“snw_getCookie”, name);
         }
       
         public static function deleteCookie(name:String):void{
             if(!INITIALIZED)
                 init();
            
            ExternalInterface.call(“snw_setCookie”, name, “”, -1);
        }

    }
}

소스를 보니 놀랍다. ExternalInterface를 이용해 JavaScript와 통신할 수 있다는 것은 알고 있을 것이다.  초반에 ExternalInterface의 call()메소드를 이용해 쿠키를 제어할 함수를 Javascript의 document.insertScript로 등록한 뒤, 등록된 함수를 사용하는 형태이다. 즉, 자바스크립트 코드를 심어주고 그것을 호출하는 형태이다. 이러한 방법은 쿠키를 제어하는 것 뿐아니라 다양한 방법으로 응용될 수 있다고 생각한다.

 

소개한 유틸은 순수 ActionScript 3.0에서 만들었기 때문에 Flash,Flash, Flex 등 상관없이 유용하게 사용할 수 있겠다.  아래링크에 만든사람의 블로그와 코드를 다운로드 받을 수 있는 링크를 걸어두었다. 참고하자.

이런식으로 만든 IFrame 있는데 아래에서 볼 수 있다.

댓글 전체

전체 276
십년전오늘 내용 검색

회원로그인

진행중 포인트경매

  1. 참여1 회 시작24.03.28 11:15 종료24.04.04 11:15
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT