'분류 전체보기'에 해당되는 글 134건

  1. desk top
  2. desk top 3
  3. desk top
  4. 티스토리에 자동 링크 적용하기
  5. desk top
  6. Error: Error #3709: The depthAndStencil flag in the application descriptor must match the enableDepthAndStencil Boolean passed to configureBackBuffer on the Context3D object. 2
  7. FlashDevelop(4.0.1) - away3D 4.0으로 제작한 android apk 생성하기
  8. XE addon : 관리자의 즐겨찾기에 항목 추가
  9. jQuery 의 (function($) { ... })(jQuery)
  10. Context::addHtmlFooter() 와 jQuery
  11. jorte 조르테 캘린더에 '대한민국 기념일' 표시하기
  12. XE addon : '작성 글 보기' 리스트에서 특정 게시판 제외 6
  13. 베가 lte ex (VEGA lte ex) 루팅 후 삭제 파일들(system/app) 1
  14. XE module : 파일 다운로드 수 제한
  15. XE addon : 문서/댓글 메뉴의 '스팸필터에 IP추가' 오동작 수정

desk top


2018.7.29 18:53

'fsj story' 카테고리의 다른 글

desk top  (3) 2016.01.30
desk top  (0) 2014.10.13
desk top  (0) 2013.09.07
desk top  (1) 2012.06.06
INTEL SSD X25-M 80G G2 //2010/04/01 22:23  (0) 2012.06.04

desk top







지금




'fsj story' 카테고리의 다른 글

desk top  (0) 2018.08.13
desk top  (0) 2014.10.13
desk top  (0) 2013.09.07
desk top  (1) 2012.06.06
INTEL SSD X25-M 80G G2 //2010/04/01 22:23  (0) 2012.06.04

desk top



지금

'fsj story' 카테고리의 다른 글

desk top  (0) 2018.08.13
desk top  (3) 2016.01.30
desk top  (0) 2013.09.07
desk top  (1) 2012.06.06
INTEL SSD X25-M 80G G2 //2010/04/01 22:23  (0) 2012.06.04

http://ssamkj.tistory.com/16


위 링크의 내용대로 자동 링크를 사용하다가 어느날부터 제대로 작동을 하지 않아 찾아보다가 다음과 같이 해결


$ 대신 jQuery로 교체해주니까 작동됨.



autolink.js의 원본

var re = /(?:(?=(?:http|https):)([a-zA-Z][-+.a-zA-Z\d]*):(?:((?:[-_.!~*'()a-zA-Z\d;?:@&amp;=+$,]|%[a-fA-F\d]{2})(?:[-_.!~*'()a-zA-Z\d;\/?:@&amp;=+$,\[\]]|%[a-fA-F\d]{2})*)|(?:(?:\/\/(?:(?:(?:((?:[-_.!~*'()a-zA-Z\d;:&amp;=+$,]|%[a-fA-F\d]{2})*)@)?(?:((?:(?:(?:[a-zA-Z\d](?:[-a-zA-Z\d]*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:[-a-zA-Z\d]*[a-zA-Z\d])?)\.?|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|\[(?:(?:[a-fA-F\d]{1,4}:)*(?:[a-fA-F\d]{1,4}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})|(?:(?:[a-fA-F\d]{1,4}:)*[a-fA-F\d]{1,4})?::(?:(?:[a-fA-F\d]{1,4}:)*(?:[a-fA-F\d]{1,4}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))?)\]))(?::(\d*))?))?|((?:[-_.!~*'()a-zA-Z\d$,;:@&amp;=+]|%[a-fA-F\d]{2})+))|(?!\/\/))(\/(?:[-_.!~*'()a-zA-Z\d:@&amp;=+$,]|%[a-fA-F\d]{2})*(?:;(?:[-_.!~*'()a-zA-Z\d:@&amp;=+$,]|%[a-fA-F\d]{2})*)*(?:\/(?:[-_.!~*'()a-zA-Z\d:@&amp;=+$,]|%[a-fA-F\d]{2})*(?:;(?:[-_.!~*'()a-zA-Z\d:@&amp;=+$,]|%[a-fA-F\d]{2})*)*)*)?)(?:\?((?:[-_.!~*'()a-zA-Z\d;\/?:@&amp;=+$,\[\]]|%[a-fA-F\d]{2})*))?)(?:\#((?:[-_.!~*'()a-zA-Z\d;\/?:@&amp;=+$,\[\]]|%[a-fA-F\d]{2})*))?)/img;</span>

  

    function makeHTML(textNode) {

        var source = textNode.data;

        return source.replace(re, function() {

            var url = arguments[0];

            var a = $('').attr({'href': url, 'target': '_blank'}).text(url);

            return url.match(/^https?:\/\/$/) ? url : $('</p><div></div>').append(a).html();

        });

    };

  

    function eachText(node, callback) {

        $.each(node.childNodes, function() {

            if (this.nodeType != 8 &amp;&amp; this.nodeName != 'A') {

                this.nodeType != 1 ? callback(this) : eachText(this, callback);

            }

        });

    };

     

    function autolink(obj){

        return obj.each(function() {

                var queue = [];

                eachText(this, function(e) {

                    var html = makeHTML(e);

                    if (html != e.data) {

                        queue.push([e, makeHTML(e)]);

                    }

                });

                $.each(queue, function(i, x) {

                    $(x[0]).replaceWith(x[1]);

                });

            });

    };



수정

var re = /(?:(?=(?:http|https):)([a-zA-Z][-+.a-zA-Z\d]*):(?:((?:[-_.!~*'()a-zA-Z\d;?:@&amp;=+$,]|%[a-fA-F\d]{2})(?:[-_.!~*'()a-zA-Z\d;\/?:@&amp;=+$,\[\]]|%[a-fA-F\d]{2})*)|(?:(?:\/\/(?:(?:(?:((?:[-_.!~*'()a-zA-Z\d;:&amp;=+$,]|%[a-fA-F\d]{2})*)@)?(?:((?:(?:(?:[a-zA-Z\d](?:[-a-zA-Z\d]*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:[-a-zA-Z\d]*[a-zA-Z\d])?)\.?|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|\[(?:(?:[a-fA-F\d]{1,4}:)*(?:[a-fA-F\d]{1,4}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})|(?:(?:[a-fA-F\d]{1,4}:)*[a-fA-F\d]{1,4})?::(?:(?:[a-fA-F\d]{1,4}:)*(?:[a-fA-F\d]{1,4}|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))?)\]))(?::(\d*))?))?|((?:[-_.!~*'()a-zA-Z\d$,;:@&amp;=+]|%[a-fA-F\d]{2})+))|(?!\/\/))(\/(?:[-_.!~*'()a-zA-Z\d:@&amp;=+$,]|%[a-fA-F\d]{2})*(?:;(?:[-_.!~*'()a-zA-Z\d:@&amp;=+$,]|%[a-fA-F\d]{2})*)*(?:\/(?:[-_.!~*'()a-zA-Z\d:@&amp;=+$,]|%[a-fA-F\d]{2})*(?:;(?:[-_.!~*'()a-zA-Z\d:@&amp;=+$,]|%[a-fA-F\d]{2})*)*)*)?)(?:\?((?:[-_.!~*'()a-zA-Z\d;\/?:@&amp;=+$,\[\]]|%[a-fA-F\d]{2})*))?)(?:\#((?:[-_.!~*'()a-zA-Z\d;\/?:@&amp;=+$,\[\]]|%[a-fA-F\d]{2})*))?)/img;

 

    function makeHTML(textNode) {

        var source = textNode.data;

        return source.replace(re, function() {

            var url = arguments[0];

            var a = jQuery('').attr({'href': url, 'target': '_blank'}).text(url);

            return url.match(/^https?:\/\/$/) ? url : jQuery('</p><div></div>').append(a).html();

        });

    };

 

    function eachText(node, callback) {

        jQuery.each(node.childNodes, function() {

            if (this.nodeType != 8 &amp;&amp; this.nodeName != 'A') {

                this.nodeType != 1 ? callback(this) : eachText(this, callback);

            }

        });

    };

    

function autolink(obj){

return obj.each(function() {

           var queue = [];

           eachText(this, function(e) {

               var html = makeHTML(e);

               if (html != e.data) {

                   queue.push([e, makeHTML(e)]);

               }

           });

           jQuery.each(queue, function(i, x) {

               jQuery(x[0]).replaceWith(x[1]);

           });

       });

};



하단의 코드도 다음과 같이 변경


이전

<SCRIPT type=text/javascript>     

autolink($("#content"));

</SCRIPT>


수정

<SCRIPT type=text/javascript>

jQuery(document).ready(function(){  // 문서가 모두 읽힌 후에 다음을 실행

autolink(jQuery("#content"));

});

</SCRIPT>




desk top




지금

'fsj story' 카테고리의 다른 글

desk top  (3) 2016.01.30
desk top  (0) 2014.10.13
desk top  (1) 2012.06.06
INTEL SSD X25-M 80G G2 //2010/04/01 22:23  (0) 2012.06.04
데스크탑 //2010/01/25 00:21  (0) 2012.06.04

away3D 4.0를 이용하여 AIR for android로 컴파일시 


ErrorError #3709: The depthAndStencil flag in the application descriptor must match the enableDepthAndStencil Boolean passed to configureBackBuffer on the Context3D object.


라는 에러 메세지가 나오면 


app.xml 파일에 


<renderMode>direct</renderMode>
<depthAndStencil>true</depthAndStencil>


위와 같이 renderMode는 direct로 수정하고, depthAndStencil 노드를 추가한다.


※ 이상한 점은 FlashDevelop을 이용해서 컴파일 하면  <depthAndStencil> 옵션이 설정되어있지 않은 상태에도 잘 작동한다는 것이다.


출처 : http://away3d.com/forum/viewthread/1976/

필요 구성품 


adobe AIR SDK 3이상(http://www.adobe.com/devnet/air/air-sdk-download-win.html) - Context3D를 이용해야 하기 때문에 필요하다.

flex SDK 4.6(http://www.adobe.com/devnet/flex/flex-sdk-download.html) - as3 컴파일용(AIR SDK 3.1이 포함되어있다.)


FD project 생성 - Air Mobile AS3 App


생성된 폴더에 포함되어 있는 AIR_Android_readme.txt 파일을 참조하면서 다음을 실행한다.


1. 'bat\SetupSDK.bat' 의 FLEX_SDK 변수와 ANDROID_SDK 변수를 자신의 환경에 맞게 지정한다.

- flex SDK 4.6안에 기본적으로 AIR SDK 3.1이 포함되어 있다. 필요하다면 여기에 최신의 파일들을 그대로 덮어 씌우기 하면된다.


2. 'bat\CreateCertificate.bat'를 한번 실행해 인증서를 생성한다.


3. 'build project'를 실행한다. 소스를 컴파일하여 .swf 파일이 생성된다.


4. 여기서부터 'Debug'모드로 테스트 해볼 수 있다. (adl 'app.xml' '.swf가 포함된 폴더')


5. 'bat\InstallAirRuntime.bat'를 실행해 모바일 기기에 'AIR runtime'을 설치 해준다. (플레이 스토어를 통해서 설치해도 된다.)

이때 runtime.apk는 1에서 지정한 flex SDK안에 있는 runtimes\air\android\device\runtime.apk 파일이 설치된다.


6. 디버깅은 아직 할 줄 모른다.


7. 'PackageApp.bat'를 통해서 apk파일을 생성할 수 있다.

- 1번은 순수 apk파일을 생성하고 3번(apk-captive-runtime)은 AIR runtime을 포함한 apk를 생성한다.



'Flash > FlashDevelop' 카테고리의 다른 글

FlashDevelop 에서 //2010/10/06 17:51  (3) 2012.06.05


admin_favorite_add.zip



요즘들어 "IP 차단" 애드온을 자주 사용하는데, 이놈이 밖으로 노출되어있지 않아 찾아 가려면 몇 번 클릭을 하고 로딩도 기다려야 하고... 귀찮다.


그래서, 만들었다. 


관리자 페이지 어디에서든 보이는 '즐겨찾기'에 원하는 링크를 넣어 둘 수 있도록.


jQuery 문법을 하나하나 찾아가면서 만드는 재미도 있다면 있고...


아무튼, 1.5.3.2 이상의 관리자 페이지에서만 작동된다.(1.4 버젼은 애드온이 처음에 보이니 필요도 없겠지만)


** 소스를 수정 및 재배포 가능

** 대응 xe version은 1.5.3.2이상





jQuery 에서  


(function($) { 

... 

})(jQuery)


위와 같은 익명 함수 내부로 접근이 불가능하다. 


window 객체로 내부에서 필요한 부분을 저장해서 global 형식으로 이용은 가능하다.


(function($) { 

window.variableName = needValue;

})(jQuery)

alert(variableName);


Context::addHtmlFooter() 등을 이용해서 jQuery를 HTML에 추가할 때 jQuery를 대신해서 $를 이용하면 에러로 사이트가 멈추게 된다. 


$('form') 은 에러가 발생하고 jQuery('form')는 괜찮다.





구글 캘린더의 "재미있는 캘린더" 추가로 "대한민국 기념일"을 추가하면 jorte에서 확인할 수 없어 백방으로 알아보았다.


결론은 "재미있는 캘린더"를 추가할 필요가 없다는 것.


jorte에서 지원하는 기능인 '국가별 휴일 첨삭'을 이용하면 이것이 바로 구글의 '대한민국 기념일'을 추가하는 것이다.


처음 이 기능을 봤을 땐 jorte내부(또는 서버)에서 별로도 준비한 데이터를 이용하는 것이라고 추측하여 구글쪽 데이터만을 이용하고 싶어서 전혀 신경쓰지 않고서 다른 방법을 찾아봤는데 그것이 아니었다.


이 기능은 데이터를 구글캘린더의 '재미있는 캘린더'에서 가져오고 '캘린더보기'에서 그것을 표시해주는 방식으로 작동된다. (다른 나라의 데이터를 더 읽어오면 그 나라의 국경일이 덮어쓰기 되어 표시된다.)










'android' 카테고리의 다른 글

베가 lte ex (VEGA lte ex) 루팅 후 삭제 파일들(system/app)  (1) 2012.09.04



exclude_my_document_v0.4.zip




이전에 모듈로 번거롭게 처리하던 것을 애드온으로 간단하고 깔끔하게 처리하게 되었다. 제외할 게시판의 module_srl(숫자) mid를 ','(콤마)로 구분하여 애드온 설정에 입력하면 해당 게시판은 리스트에서 제외된다. 


게시판의 mid는 애드온 설정의 페이지 아래쪽에 모듈 선택하는 부분에서 확인할 수 있다.



** 소스를 수정 및 재배포 가능

** 대응 xe version은 1.5.3.1

** v0.4 - XE1.4버젼대에서 페이지 이동이 되지 않던 버그 수정

    v0.3 - module_srl을 mid 입력으로 수정

    v0.2 - xe1.4.5.13에서도 작동하도록 수정

안드로이드 2.3.5

SuperOneClick 으로 루팅 후 삭제한 system/app의 apk 리스트


(videoplayer.apk 경우 삭제 후 필요에의해 재설치)


- 삭제 후 불필요한 cpu 사용이 줄어 배터리 사용시간이 늘어난 것으로 느껴짐(약 2배가량 증가)

(앱 삭제와 setcpu설정을 함께해서 다운클럭에의한 배터리 시간 증가가 포함될 수 있다.)



총 114개


*다른 앱 대체 후 삭제

SkyIME.apk(키보드)

Sky2DHome.apk(홈 런쳐)- 안드로이드 기본 홈 런쳐가 있기 때문에 sky만 지우면 관계는 없다.

SkyHomeThemeBasic.apk(홈 런쳐 테마)        

SkyHomeMode.apk(홈과 관련된 것으로 생각되는데 확실치 않음)


*그냥 삭제

AirFileLink_EF65L.apk                

AndroidBrowser.apk

AndroidVideoTalk.apk                 

APKManager.apk

AppTown.apk                          

ArcWorkshop.apk

BookCubeStore_preload.apk            

CallService.apk

camnote.apk                          

ClockWidget.apk

com.pantech.app.SkyFactoryTest.apk   

com.pantech.app.skyrftest.apk

com.pantech.app.test_menu.apk        

com.pantech.apps.skyspeeddial.apk

CompatSetting.apk                    

ContentsManager.apk

CustomerSupport-sa.apk               

CustomerSupportUser-sa.apk

DataManager.apk                      

DioDict3.apk

DioDict3Service.apk                  

DisplayPicker.apk

DM_Util.apk                          

DocViewer.apk

ebookviewer.apk                      

ECOMode_Tip.apk

FileExplorer.apk                     

Fortress2Red.apk

FS2Anywhere_IconPreload.apk          

G-GEE_LGU-PRI.apk

Gallery3D.apk                        

GenieWidget.apk

GestureGuide.apk                     

Gmail.apk

lbsSNSGallery_signed.apk             

LGTWebSync.apk

LGUARMService.apk                    

LGUContentPreloader.apk

LGUInstaller.apk                     

lguplusp_mapps_renewal.apk

LiveWallpapers.apk

LiveWallpapersPicker.apk             

LTEHomeWidget.apk

LW_BatteryLife.apk                   

LW_MessagePop.apk

LW_PaperArt.apk                      

LW_PhotoMobile.apk

MagicSmokeWallpapers.apk             

MNET.apk

NeonsignWidget.apk                   

oem_install_flash_player.apk

OzService.apk                        

OZStore.apk

PantechCatch.apk                     

PantechPunch.apk

PhotoLiveWallpaper.apk               

PicoTts.apk

PowerTTS_Service.apk                 

Protips.apk

RankingWidget.apk                    

RSS.apk

SBlogNote3.apk                       

SBlogNoteService.apk

SkyAppLike.apk                       

SkyBookmarkWidget.apk

SKYBooks.apk                         

SkyCarMode.apk

SKYContentTransfer.apk               

SkyDLNA.apk

SkyFlashLightWidget.apk              

SkyFriendsWidget.apk             

SKYme_1.5_EF65L.apk

SkyMsgWidgetRes.apk                  

SkyMsgWidgetSystem.apk

SkyNotePad.apk                       

SkySpeedDialProvider.apk

SkyWeatherWidget.apk                 

SmartCode.apk

SmartNote.apk                        

SNSGallery.apk

SocialTreasure.apk                   

sp_facebook.apk

sp_me2day.apk                        

sp_pageSummary.apk

sp_socialPlus.apk                    

sp_twitter.apk

Subway.apk                           

TDMBTestPlayer.apk

TmoneyLU.apk                         

UBellRing.apk

UplusBoxShootN.apk                   

UserGuide_65L.apk

Usimwallet.apk                       

VaccineInstaller.apk

VideoEditorLite.apk                  

videoplayer.apk

VisualizationWallpapers.apk          

Weather.apk

WidgetCalendarDay.apk                

WidgetCalendarMonth.apk

WidgetCalendarWeatherClock.apk       

WidgetCalendarWeek.apk

WidgetCamera.apk                     

WidgetMemo.apk

WidgetPhotoFrame.apk                 

WidgetWorld.apk

WifiDirectSetting.apk                

Wiper.apk

Yes24eBookForPantech.apk             

YouTube.apk


'android' 카테고리의 다른 글

jorte 조르테 캘린더에 '대한민국 기념일' 표시하기  (0) 2012.09.07


filedownloadlimit_v0.2.zip




일일 다운로드 수를 설정한 값만큼으로 제한하는 모듈. 애드온으로도 만들 수 있긴하지만 오작동에 대한 약간의 위험부담이 있어, 고유의 db테이블을 갖는 모듈로 제작하였다.


관련 정보를 얻는 코드는 아래와 같다

$oFDLModel = &getModel("filedownloadlimit");

$count = $oFDLModel->getMemberCount($logged_info->member_srl);// 회원의 다운로드 수

$limit = $oFDLModel->getFileDownloadLimitNumber();// 허용 다운로드 수

$m_limit = $oFDLModel->getFileDownloadLimitNumberAt($module_srl);// 모듈별 허용 다운로드 수


v0.2 (2012.9.10)

- 모듈별로 다운로드 수를 제한 할 수 있도록 수정



** 오랜 테스트를 하지는 못해서 버그가 있을 수 있음

** 소스를 수정 및 재배포 가능

** 대응 xe version은 1.5.3.1/1.4.5.13




xe_adapter.zip





언제부터인지 기억도 나지 않고 실행이 되었던 것인지도 모를 "스팸필터에 IP추가"메뉴를 작동 시키고자 소스를 뜯어봤다.

1차적인 문제는 변수 이름이 서로 다른, 보내는 건 'ipaddress' 받는 쪽은 'ipaddressList'....

받는 쪽은 다른 곳에서도 사용될 수 있는 범용 메서드이기 때문에 보내는쪽 변수를 'ipaddressList'로 수정해보았다. 그런데도 작동이 안된다. 


삽질 좀 하다가 debugPrint(Context::getRequestVars());로 모든 변수를 찍어보고 발견한 2차적 문제는 대문자 L이 소문자 l로 변경되어 'ipaddresslist'라고 나와버리고. 소스를 더 뜯어고치기엔 부담이 있기에 접어두고.


그래서 만들어진 잡동사니 애드온이 xe_adapter라는 것.


그 첫기능은 'ipaddress'변수를 'ipaddressList'로 이름을 바꿔 저장시켜 주는 임무.


작동 OK



** 소스를 수정 및 재배포 가능

** 대응 xe version은 1.5.3.0