음....UTF-8일 때에는 swf파일명 뒤에 ?paramname=value 이런식으로도 한글이 안 깨지는데요.
EUC-KR일 때에는 flashVars로 안넘기면 한글이 깨지네요. flashVars로 넘기면 안깨져요. 신기해요!

EUC-KR인 경우
한글깨짐 경우는 swf파일 뒤에 파라메터를 붙인 경우
[code]<object id="paramTest" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
        width="300" height="120">
    <param name="movie" value="ParamTest.swf?nickName=머드초보" />
        <object type="application/x-shockwave-flash"
                data="ParamTest.swf?nickName=머드초보" width="300" height="120">
        </object>
</object>
[/code]
사용자 삽입 이미지

안 깨지게 하려면 flashVars를 이용
[code]<object id="paramTest" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
        width="300" height="120">
    <param name="movie" value="ParamTest.swf" />
    <param name="flashVars" value="nickName=머드초보" />
        <object type="application/x-shockwave-flash"
                data="ParamTest.swf" width="300" height="120"
                flashVars="nickName=머드초보">
        </object>
</object>[/code]
사용자 삽입 이미지
그리고, flashVars를 이용해서 해야지 플래시가 캐시가 된다고 하네요.
nickName같은 것이 계속 바뀌는 것이라면 플래시를 서버에서 계속 요청하게 되는 것이라고 하네요.
그래서 flashVars라는 것이 있는 것 같음.

파라메터 넘길 때 utf-8인 경우에는 어떤식으로 해도 깨지지 않음. utf-8 짱-_-

 
Posted by 머드초보

댓글을 달아 주세요

  1. 구철호 2009.08.12 15:44  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.

    6월에는 잘 사용 했었는데 오늘 FLEX 빌더에 들어가서 작업 하려고 하니 갑자기

    아래와 같은 에러가 나타나네요.

    SDK 버젼은 "Use the server SDK" 이걸 선택해서 했는데요.

    아무리 해도 안되네요.



    도와 주세요...--;;



    -- 에러 메세지

    Severity and Description Path Resource Location Creation Time Id
    unable to load SWC asSQL-Beta2.7.swc HGEIS Unknown 1249978869890 51

    • 머드초보 2009.08.23 19:23  댓글주소  수정/삭제

      안녕하세요 답변이 완전 늦었네요-_-
      그건 왠지 swc관련 에러같아보이네요.
      swc가 없다고 나오는 것 같아요 ㅠ

  2. 루든 2009.09.25 18:01  댓글주소  수정/삭제  댓글쓰기

    Object - object 구조네요? Object-Embed 구조를 잘못적으신건가요?

    • 머드초보 2009.09.27 11:50  댓글주소  수정/삭제

      IE6인가? 빼고는 다 되는 걸로 알고 있습니다^^
      swfobject에서는 저 방법을 예제로 보여주고 있더라구요.

 
Windows API정복 이후 간만에 1000페이지가 넘는 책을 구입했습니다. 지금 확인해보니 Windows API정복은 1500페이지 짜리군요. 사실 이런 책 하나쯤은 회사책상 위에 올려놔줘야 간지가 나죠......아 농담이구요-_-

ActionScript에 대해서 너무 모르고 flash계열에 입문을 해버려서-_- 저한테 좋은 책이 나왔네요. AIR IN ACTION의 역자이신 유윤선님과 ActionScript 3.0 CookBook역자이신 송호철님께서 번역을 해주셨네요^^ 둘 다 매우 유용하게 쓰고 좋아하는 책들인데^^ 두분이서 1000페이지를.....-_- 대....대단하십니다-_-

물론 2년전 책이 국내에는 지금 나오긴 했지만, ActionScript만을 심오하게 다룬 책은 국내에 많이 없었던 것이 사실이죠. 대부분 나와있는 Flash계열의 책은 Flex Framework의 사용법이나, Flash책에서 간간히 보이는 ActionScript가 다 인데, 이 책에는 Actionscript의 문법과 특징들을 쉽게 설명해 놓은 것 같습니다.

번역하시느라 너무 수고 많이 하셨어요~
사용자 삽입 이미지

사진을 잘 찍어서 얇게 보인다-_- 사실 엄청두꺼움-_-


 
Posted by 머드초보

댓글을 달아 주세요

 
초간단 방명록 시리즈~!-_-

예전에 포스팅한 Zend Amf사용후기- http://mudchobo.tomeii.com/tt/398
Zend Amf가 이번에 출시된 Flash Builder4 Beta에서 기능으로 포함되어있습니다. 사용하기도 더 편해졌구요. 설정 같은 것은 전혀 안해줘도 Flash Builder4가 알아서 다하네요.

우선 Flash Builder4 Beta를 설치해야합니다.(adobe.com 회원가입 후 받을 수 있음!)


New Flex Project -> Project Name은 FlexGuestBook, Application type은 Web, Server technology는 PHP!
Next하면 서버 셋팅을 해야하는데요. 우선 Apache와 Mysql깔려있다는 가정하에 진행!-_-
Server location에서 Web root는 htdocs위치, Root URL은 http://localhost.
Output folder는 냅둬도 돼요^^ 바로 Finish!

htdocs/FlexGuestBook-debug생기면 성공!

아...디비부터 만들어야겠군요.
[code]DROP TABLE IF EXISTS `mudchobo`.`guestbook`;
CREATE TABLE  `mudchobo`.`guestbook` (
  `idx` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `author` varchar(45) NOT NULL,
  `content` text NOT NULL,
  `date` datetime NOT NULL,
  PRIMARY KEY (`idx`)
);[/code]
그럼 PHP코딩해봅시다.
저같은 경우 NetBeans를 사용해서 하는데, 그게 정신건강에 좋아요-_- PHP는 NetBeans와 함께-_-
아까Web root에서 FlexGuestBook폴더를 만듭니다.
PhpClass파일을 하나 만듭니다.
GuestBookService.php
[code]<?php
class GuestBookService {
    private $connection;

    private function connect()
    {
        $this->connection = mysqli_connect("localhost", "root", "mudchobo", "mudchobo")
            or die(mysqli_connect_error());
    }

    public function getList()
    {
        $this->connect();
        $sql = "SELECT * FROM guestbook order by idx desc limit 0, 10";

        $result = mysqli_query($this->connection, $sql)
            or die("Query failed: " . mysqli_error($this->connection));

        $rows = array();
        while($row = mysqli_fetch_object($result))
        {
            $rows[] = $row;
        }

        mysqli_free_result($result);
        mysqli_close($this->connection);

        return $rows;
    }

    public function insert($author, $content)
    {
        $this->connect();
        $sql = "INSERT INTO guestbook (idx, author, content, date) VALUES (null, '" .
            $author . "', '" . $content . "', now())";

        $result = mysqli_query($this->connection, $sql)
            or die("Query failed: " . mysqli_error($this->connection));

        mysqli_close($this->connection);
    }
}
?>[/code]
클래스에 초간단 insert함수와 getList()함수가 있어요. 여기서 잠깐! NetBeans6.7의 새로운 기능-_-
쿼리문의 코드힌트가 가능해요!!! idx, author, content, date가 다보여요. guestbook 테이블명도 보이는군요.
사용자 삽입 이미지

Flash Builder설명하다 튀어나온 NetBeans...-_-

뭐어쨌든, 이제 진짜 FlashBuilder로 가는거임.
FlashBuilder에서 하단에 Data/Services가 있는데요. Connect Data/Service를 클릭하면 PHP가 있는데, 클릭하고, ServiceName은 GuestBookService로 하고, Php Location은 아까 작성한 GuestBookService.php를 선택합니다.
이 과정에서 Zend Amf가 설치가 안되어있으면 설치할꺼냐고 물어봅니다. 설치해야합니다^^
설치할 때 htdocs/ZendFramework폴더에 자동으로 설치됩니다.
Finish! 그려면 services.guestbookservice패키지에 뭔가 생겼을 겁니다.
그럼  getList와 insert가 보이는데요. 리턴타입을 설정해야해서 getList에 오른쪽버튼 누르면, Configure Return Type이 있는데, Create a new custom data type에서 GuestBook을 입력하고, Finish를 하면 모든 타입이 String으로 된 Bean같은 것을 만듭니다-_-(Bean마다 타입은 지정이 안되는데, 왜그런지 모르겠음 ㅠ)
insert는 기존에 있는 타입에서 void로 고르고!^^

그럼 이제 진짜 Flex로 와서 Design모드로 바꾸고, DataGrid를 넣어봅시다.
사용자 삽입 이미지

왜 한글로 나오지...한글화가 되다 말았네-_-

데이터그리드에 대고 오른쪽 버튼을 누르면 Bind To Data라는 메뉴가 생겼습니다. 누르면 아래와 같은 메뉴가 나옵니다.
사용자 삽입 이미지
OK누르면 자동으로 코드도 입력해주네요.
예전에는 Php로 Service랑 설정파일 작성하고 그랬는데, 그럴필요가 없어요. 알아서 다 만들어주거든요.
Insert하고 getList하는 것도 다 추가하면 아래와 같은 코드를 완성할 수 있어요.
[code]<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" xmlns:guestbookservice="services.guestbookservice.*">
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
            import mx.controls.Alert;

            protected function dataGrid_creationCompleteHandler(event:FlexEvent):void
            {
                getListResult.token = guestBookService.getList();
            }

            protected function btnWrite_clickHandler(event:MouseEvent):void
            {
                if (inputAuthor.text.length < 1)
                {
                    Alert.show("글쓴이를 입력하세요");
                    return;
                }
                if (taContent.text.length < 1)
                {
                    Alert.show("내용을 입력하세요");
                    return;
                }
               
                guestBookService.insert(inputAuthor.text, taContent.text);
                inputAuthor.text = "";
                taContent.text = "";
               
                getListResult.token = guestBookService.getList();
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <s:CallResponder id="getListResult"/>
        <guestbookservice:GuestBookService id="guestBookService" destination="GuestBookService" endpoint="http://localhost/PhpFlexGuestBook/gateway.php" fault="Alert.show(event.fault.faultString)" showBusyCursor="true" source="GuestBookService"/>
    </fx:Declarations>
    <mx:DataGrid x="72" y="21" width="489" height="307" id="dataGrid" creationComplete="dataGrid_creationCompleteHandler(event)" dataProvider="{getListResult.lastResult}">
        <mx:columns>
            <mx:DataGridColumn headerText="content" dataField="content" showDataTips="true" dataTipField="content"/>
            <mx:DataGridColumn headerText="author" dataField="author" showDataTips="true" dataTipField="author"/>
            <mx:DataGridColumn headerText="idx" dataField="idx"/>
            <mx:DataGridColumn headerText="date" dataField="date"/>
        </mx:columns>
    </mx:DataGrid>
    <mx:Label x="70" y="370" text="내용 :"/>
    <s:TextArea id="taContent" x="111" y="369" width="447"/>
    <s:Button id="btnWrite" x="279" y="524" label="글쓰기" click="btnWrite_clickHandler(event)"/>
    <mx:Label x="59" y="344" text="글쓴이 :"/>
    <s:TextInput id="inputAuthor" x="112" y="343"/>
   
</s:Application>[/code]
사용자 삽입 이미지
위에 부분 댓글인줄 알고 낚이는 사람 있겠다-_-

참고자료 : http://sujitreddyg.wordpress.com/2009/06/01/building-flex-application-for-a-php-class-using-flash-builder-4/
 
Posted by 머드초보

댓글을 달아 주세요

  1. 플렉스시작 2009.07.06 11:54  댓글주소  수정/삭제  댓글쓰기

    플렉스로 오라클을 연동할려고하는데...보통 보면 Mysql이랑 연동하는 예제뿐인데...
    오라클이랑 연동하는 예제 하나만 만들어주시면..안될까요?
    초보라서 응용이 잘안돼네요..ㅠㅠ

    • 머드초보 2009.07.13 14:57  댓글주소  수정/삭제

      안녕하세요!
      정확히 말하면 플렉스와 Mysql이 연동된 것이 아니라 php와 mysql이 연동이 된 것 입니다.
      php에서 oracle을 사용하는 방법을 찾으시면 될 듯합니다^^
      저도 안해봐서 잘 모르겠네요 ㅠ
      구글에서 php oracle쳐보시면 뭔가 나올 겁니다 ㅠㅠ

  2. 자바초보 2009.07.06 11:54  댓글주소  수정/삭제  댓글쓰기

    플렉스로 오라클을 연동할려고하는데...보통 보면 Mysql이랑 연동하는 예제뿐인데...
    오라클이랑 연동하는 예제 하나만 만들어주시면..안될까요?
    초보라서 응용이 잘안돼네요..ㅠㅠ

  3. BlogIcon EHXM 2010.02.10 18:17  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 글 잘 읽어보았습니다.

    위 처럼 작업을하고 이제 서버에 올려서 사용할때는
    BlazeDS 가 서버에 필요한 건 가요?
    아니면 Flash에서 구동이 되는 거라서 다른 서버 작업은 필요하지 않은 건가요?

    • 머드초보 2010.02.12 00:08  댓글주소  수정/삭제

      안녕하세요~
      BlazeDS는 자바용이고, zenphp가 그 역할을 대신하는 것입니다.
      php가 서버단 언어입니다. php로 작업하시면 됩니다^^

  4. 무니 2010.04.06 11:19  댓글주소  수정/삭제  댓글쓰기

    안녕하세요..^^

    올려주시는 글 너무 잘 보고 있습니다..^^

    제가 공부중인 상태라서요..염치 불구하고 질문 드립니다..(질문을 어따가 하는지 모르겠어서..ㅎㅎ)

    Messaging 서비스 를 이용해서 간단한 air 작업을 하고 싶었는데요..

    처음에는 BlazeDS 를 사용 하려고 했는데..

    제가 원래 php를 주로 해서요.. zend Amf 를 사용하려구요..

    그런데 zend Amf 예제중에 Messaging 서비스 관련 된게 없는거 같아서요..

    BlazeDS에서 사용할수 있는 기능을 zend Amf에서 모두 사용 가능한건가요??

    Messaging 서비스 (서버에 접속한 여러 클라이언트간에 실시간(real-time)으로 메세지를 전달해 주는 서비스)가 zend Amf에서도 지원이 되는지 성능은 같은지 궁금해서요..ㅎㅎ

    시간 되시면 답변 부탁 드립니다..ㅜㅜ

    • 머드초보 2010.04.09 10:30  댓글주소  수정/삭제

      안녕하세요~
      저도 그냥 remoteobject만 호출하는 것만 해봐서-_-
      Messaging서비스에 관한 자료가 있는지 홈페이지에 가보니
      없는 것 같은데-_-
      저도 되는지 안되는지 정확하게 모르겠네요 ㅠㅠ

  5. 아침에주스 2011.06.10 13:53  댓글주소  수정/삭제  댓글쓰기

    좋은글 감사 합니다.
    많은 도움이 되었습니다 ^^

 
Flex ANT관련 자료는 지돌스타님이 자세히 써주셨기때문에 참고해주세요.
http://blog.jidolstar.com/505

mxmlc로 컴파일을 해본적이 없어서 작성하는데에 욕봤습니다.
우선 ANT에서 제공하는 태그들이 있는데요. 그걸 이용해서 하려고 하는데 잘 안돼서-_- 그냥 exec로 작성했습니다 ㅠㅠ

그냥 rsl을 사용하지 않은 프로젝트는 ant로 매우 쉽게 할 수 있는데, RSL을 사용하면 조금 복잡해집니다.

RSL로 사용할 Flex Library Project를 하나 만듭니다. 그리고 클래스나 MXML을 추가하게 되면 bin디렉토리에 *.swc파일이 생깁니다. 이걸이용해서 메인프로젝트에서 컴파일을 해야합니다. 또한 *.swc파일을 이용해서 optimizer된 *.swf를 만들어야합니다.
[code]<target name="optimizer">
    <unzip src="${SWC파일}" dest="${SWC파일을 풀어놓을 디렉토리}" />
    <exec executable="${optimizer.exe파일 경로}">
        <arg line="-input '${SWC파일 풀어놓은 디렉토리}/library.swf'" />
        <arg line="-output '{아웃풋할 파일명.swf}'" />
    </exec>
</target>[/code]
몰랐는데, SWC파일 풀면 library.swf가 나오는데, 그걸 optimizer.exe한 것이 Flex Builder에서 나오는 swf파일이랑 같은것이더라구요(알고보니 나만 몰랐던거....다 알고있었음!-_-)
이렇게 하면 swf파일이 만들어집니다.
그럼 메인프로젝트 컴파일 하려면 이런식으로 하면 됩니다.
[code]<target name="compile">
    <exec executable="${mxmlc.exe파일 경로}">
        <arg line="-verify-digests=false" />
        <arg line="-runtime-shared-library-path '${rsl swc파일경로}' '${rsl경로위치url}'" />
        <arg line="-o '${아웃풋 경로}'" />
        <arg line="'${소스mxml메인파일}'" />
    </exec>
</target>[/code]
compile하기전에 optimizer target을 depends해야함^^
아마 verify-digests는 properties에서 설정할 때 체크하는 그것일꺼에요. 음..저는 이런식으로 하니까 되더라구요-_- -runtime-shared-library-path에서 swc파일 경로랑 rsl경로위치url(나중에 파일을 올릴 때 해당 위치에 있어야할 url입니다)로 지정하니 되더군요. 이것때문에 고생을 좀 해서-_-
메인프로젝트에 SWC파일을 LIB로 사용한다면 이런식으로 해야하구요^^
[code]<arg line="-library-path+='${basedir}/libs/Mate_08_8_1.swc'" />[/code]
ftp올리는 것도 지돌스타님 블로그에 잘 정리 되어있음!
http://blog.jidolstar.com/506
이러면 원클릭 배포가 가능해짐-_- 귀차니즘을 위한 ANT임!-_-
 
Posted by 머드초보

댓글을 달아 주세요

  1. BlogIcon 지돌스타 2009.06.22 22:33  댓글주소  수정/삭제  댓글쓰기

    좋은 글이네요~ 트랙백도 걸어주시면 감사 ^^

    • 머드초보 2009.06.23 12:09  댓글주소  수정/삭제

      아...별거 없는데 ㅠㅠ 감사합니다 ^^
      사실 command line컴파일을 그냥 ant로 쓴거라-_-
      방문해주셔서 항상 감사해요~ ^^

  2. BlogIcon 검쉰 2009.06.24 17:19  댓글주소  수정/삭제  댓글쓰기

    저도 귀찮아서 ANT 써야겠다능 ㅎㅎ

 
음... air.swf를 이용하면 설치된 애플리케이션을 실행할 수 있으며, Adobe AIR가 설치가 되어있지 않으면 설치도 할 수 있는 기능이 있는 SWF입니다.
http://airdownload.adobe.com/air/browserapi/air.swf

음....문제점이 한쪽에서 air.swf를 로딩하고 나서 getApplicationVersion(애플리케이션이 설치되었는지 확인하는 함수)을 하고 있습니다. 그런데 다른 한쪽에서 air.swf를 로딩해서 getStatus(air가 설치되어있는지 상태값 받기)를 하면 air가 설치 되어있음에도 불구하고 available(AIR설치는 안되어있으나 설치가 가능함)을 받는 경우가 발생합니다.

그래서 더 찾아보니 우야꼬님의 글을 보다가 알았는데요. air.swf 없이도 AIR애플리케이션을 설치하고 실행할 수 있다고 한다는 글을 보았습니다. 그래서 이 현상이 버그인지 확인해보려고 직접 구현하려고 했지만........-_-
생각보다 조낸 어렵네요-_- 우야꼬님께서 ProductManager클래스를 이용해야 한다는 힌트만 주셔서 ㅠ
ProductManger는 뭐하는 놈인지 검색해도 잘 안나와요-_- 어디서 뜯어봐야하는지ㅠ 근데 이놈을 이용해서 AIR애플리케이션을 리스타트하는 프로그램을 만들 수도 있더라구요.
http://www.hufkens.net/2009/03/how-to-restart-an-air-application-from-code/
productmanager가 air프로그램 실행하고 그러는 것 같긴 한데, launch라는 함수가 있는데 이것에 대한 커맨드라인 명령어 같은 게 설명이 잘 안나왔네요 ㅠ

암튼, air.swf를 로딩해서 getApplicationVersion을 무한 반복하는 애플리케이션을 만들고, 그걸 2개를 띄워볼께요-_-
AirService.as
[code]package
{
    import flash.display.Loader;
    import flash.events.Event;
    import flash.events.EventDispatcher;
    import flash.net.URLRequest;
    import flash.system.ApplicationDomain;
    import flash.system.LoaderContext;
   
    public class AirService extends EventDispatcher
    {
        private var _loader:Loader;
        public var _service:Object;
       
        public function AirService()
        {
            _loader = new Loader();
            var context:LoaderContext = new LoaderContext();
            context.applicationDomain = ApplicationDomain.currentDomain;
            _loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
            var swf:String = "http://airdownload.adobe.com/air/browserapi/air.swf";
            var request:URLRequest = new URLRequest(swf);
            _loader.load(request, context);
        }
       
        private function initHandler(event:Event):void
        {
            _service = _loader.content;
            dispatchEvent(new Event(Event.COMPLETE));
        }
       
        public function getStatus():String {
            return _service.getStatus();
        }
       
        public function getApplicationVersion(applicationId:String, publisherId:String, callback:Function):void
        {
            _service.getApplicationVersion(applicationId, publisherId, callback);
        }
       
        public function installApplication(url:String, runtimeVersion:String, parameters:Array = null):void
         {
            _service.installApplication(url, runtimeVersion, parameters);        
         }
        
         public function launchApplication(applicationId:String, publisherId:String, parameters:Array = null):void
         {
             _service.launchApplication(applicationId, publisherId, parameters);
         }
    }
}[/code]
Main.mxml
[code]<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="vertical" verticalAlign="middle"
    applicationComplete="applicationCompleteHandler()" width="100%" height="100%">
   
    <mx:Script>
        <![CDATA[
            import adobe.utils.ProductManager;
           
            private var airService:AirService;
           
            private function applicationCompleteHandler():void
            {
                airService = new AirService();
                airService.addEventListener(Event.COMPLETE, completeHandler);
            }
           
            private function completeHandler(event:Event):void
            {
                trace(airService.getStatus());
                ta.text += airService.getStatus() + "\n";
                if (airService.getStatus() == "installed")
                {
                    airService.getApplicationVersion("AirApplication",
                        "2D0F512A27635B8D26E3FE2622F4AAEDDA9D3CFC.1",
                        applicationVersion);
                }
            }
           
            private function applicationVersion(version:String):void
            {
                trace("version=" + version + ", status = " + airService.getStatus());
                ta.text += "version=" + version + ", status = " + airService.getStatus() + "\n";
                ta.verticalScrollPosition = ta.maxVerticalScrollPosition;
                airService.getApplicationVersion("AirApplication",
                    "2D0F512A27635B8D26E3FE2622F4AAEDDA9D3CFC.1",
                    applicationVersion);
            }
           
        ]]>
    </mx:Script>
    <mx:TextArea id="ta" height="100%" width="50%"/>
</mx:Application>[/code]
두개를 띄워보면
사용자 삽입 이미지
한놈은 available을 받습니다-_- 왜그러지-_-
대체 getApplicationVersion에서 어떤 일을 하는지 궁금해지기 시작했습니다.

그래서 대처 방법으로는....-_- getApplicationVersion을 동시에 하지 않으면 돼요-_- 사용자가 클릭할 때 하면 되는데, 이렇게 되면 launchApplication을 할 때에 또 클릭해줘야 해요. launchApplication은 사용자 액션에 의해서만 되더라구요.

PS. 혹시......이 글을 보게 되시는 분들중에서.....AIR애플리케이션을 launch하는 사이트를 목격 하시면 댓글 달아주세요ㅠ

 
Posted by 머드초보

댓글을 달아 주세요

  1. 장문영 2009.06.04 15:57  댓글주소  수정/삭제  댓글쓰기

    http://msp.skbroadband.com 공인인증서 로그인 누르세요
    현재도 개발중이며 계속 버전업 중입니다.
    저도 이 현상을 겪었었습니다.우야꼬님 방명록에 물어봤던 흔적이 아직도 있을거에요...답변은 못들었지만-_-;

    추가로 air.swf 로딩을 하지않고 웹에서 Air를 launch 시키는 방법을 알게 되시면 포스팅 좀 해주세요 ㅎㅎ

    • 머드초보 2009.06.05 09:34  댓글주소  수정/삭제

      air.swf를 두군데서 로딩하나봐요
      저희도 두군데서 로딩을 해야해서 문제가 발생했는데,
      그냥 한개 로딩완료 후 다음swf에서 로딩하는 방식으로
      변경했었습니다^^
      공인인증서를 air로 하다니 대단하네요 ^^

  2. BlogIcon 우야꼬 2009.12.30 10:49  댓글주소  수정/삭제  댓글쓰기

    아이고 요즘 정신이 없어서 제대로된 포스팅을 못하고 있는데
    조만간 ProductManager에 대해서 제가 아는대로 한번 올려볼께요. ㅠ.ㅠ
    글 올리고나서 트랙백 쏘겠슴돠~ ㅎㅎ

    • 머드초보 2009.12.31 12:46  댓글주소  수정/삭제

      앗~ 우야꼬님 반갑습니다^^
      감사해요~
      아직도 저희사이트에서 AIR재설치 문제가 발생해서-_-
      저도 좀 알아보니까 getApplicationversion할 때 air.swf에서 로컬커넥션으로 어디다가 쏘는 것 같더라구요.
      음 그 과정에서 좀 문제가 생기는 것 같은데...
      암튼, 해보시면 알려주세요 ㅠㅠ

  3. 무로 2010.05.25 17:59  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 요즘 AIR 2.0에서 air.swf를 이용해서 PC의 AIR Application을 실행하는
    프로그램을 개발하는 중에 AIR 2.0 Runtime이 설치되어 있음에도 불구하고 getStatus 함수에서
    계속 "available" 문자열만 리턴하는 문제가 있어 여기까지 찾아오게 되었습니다~

    위에 포스팅하신 내용과는 조금 다른것 같지만 현상은 거의 동일해서
    제가 발견한 오류를 기록하고 가겠습니다 ^^;

    제가 발견한 오류는 AIR 2.0 Runtime을 PC에 바로 설치하였을 때 발생하였습니다.
    무슨 말씀이냐면 AIR 1.5 Runtime을 설치하고 AIR 2.0(정확히는 rc1) Runtime으로 업데이트하면
    getStatus 함수에서 "installed"라는 문자열을 리턴했지만 테스트를 하기 위해서 다른 PC에
    AIR 2.0 Runtime을 바로 설치했을 때는 계속해서 "available" 문자열만 리턴하였습니다.

    AIR 1.5 Runtime을 설치했을 때는 "C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\www.macromedia.com\bin\airappinstaller" 디렉토리에 파일이 생성되던데 여기 있는 파일이 없을 경우 문제가 되더군요....
    AIR 2.0 Runtime을 바로 설치하였을 경우에는 디렉토리와 파일이 생성되지 않았으며 다른 PC에 있는 파일을 복사하면 "installed"가 리턴되었습니다.
    정식 릴리즈가 나오면 해결될지 모르겠습니다...

    오늘 급하게 확인한 것이라 정확한지는 모르겠지만
    같은 원인으로 고생하시는 분이 계실까봐 몇 자 적고 갑니다.

    PS. 블로그에서 많은 도움 받고 갑니다. 감사해요~ ^^

    • 머드초보 2010.06.03 18:07  댓글주소  수정/삭제

      저희사이트는 요즘도 발생해서 ㅠㅠ
      아직도 왜그런지 모르겠어요 ㅠㅠ

  4. 아무개 2011.11.18 10:03  댓글주소  수정/삭제  댓글쓰기

    airSWF.getApplicationVersion(appID, pubID, versionDetectCallback);
    function versionDetectCallback(version:String):void {
    trace(version);
    }

    이렇게 쓰는듯.