FLEX2009. 8. 24. 11:00

오늘 HDividedBox 를 이용해서 마우스 드래그시 이동하는 작업을 하였다

하지만! 전혀 동작 하지 않았다

이유는

내가 써준 변수 위에 [Bindable]을 쓰지 않아서이다.

Bindable은 변수의 값이 변경될시에, 그 값을 참조하는 객체들에게 Event형식으로 값을 전달한다.
(UIComponent 참조)

아주 중요하니 참고 하자


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 <mx:Script>
  <![CDATA[
   import mx.events.DividerEvent;
   private function moveChart(event:MouseEvent):void
   {
    trace("start : " + leftBoundary + " /  " + rightBoundary );
    leftBoundary +=10;
    rightBoundary +=-10;
    trace("end : " + leftBoundary + " /  " + rightBoundary );
   }
   [Bindable]
   public var leftBoundary:Number = 100;
   [Bindable]
   public var rightBoundary:Number = 100;
   
   private var staticLeftBoundary:Number;
   private var staticRightBoundary:Number;
   public var mouseXRef:Number;
   
   private function setMouseDown(e:Event):void
   {
    this.systemManager.addEventListener(MouseEvent.MOUSE_MOVE, moveChart);
    this.systemManager.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
   }
   
   private function stopDragging(event:MouseEvent):void
   {
    this.systemManager.removeEventListener(MouseEvent.MOUSE_MOVE, moveChart);
    this.systemManager.removeEventListener(MouseEvent.MOUSE_UP, stopDragging);
   }
   
   private function updateBoundariesFromDivider(event:DividerEvent):void{
    leftBoundary +=10;
    rightBoundary +=-10;
    trace("drag : "  + leftBoundary + " /  " + rightBoundary );
   }
  ]]>
 </mx:Script>
  <mx:HDividedBox id="hdivided" width="100%" height="30%"
  alpha="1"
  borderThickness="1" borderColor="#999999" borderStyle="solid"
  dividerAffordance="5" liveDragging="true"
  horizontalGap="10" verticalGap="0"
  horizontalScrollPolicy="off"
   >
   <mx:Canvas id="leftBox" height="100%" backgroundAlpha="0.5" backgroundColor="#808080"
      borderThickness="1" borderColor="#999999" borderStyle="solid"
    width="{leftBoundary}">
   </mx:Canvas>   
   <mx:Canvas id="visibleBox" height="100%" mouseDown="setMouseDown(event)" width="100%" buttonMode="true" >
   </mx:Canvas>   
   <mx:Canvas id="rightBox" height="100%" backgroundAlpha="0.5" backgroundColor="#808080"
      borderThickness="1" borderColor="#999999" borderStyle="solid"
    width="{rightBoundary}">
   </mx:Canvas>   
  </mx:HDividedBox> 
</mx:Application>
Posted by lahuman
FLEX2009. 7. 28. 17:35

Flex에서 클릭시에 다른 주소를 링크 할때는 navigateURL()을 사용한다.


The navigateToURL() method syntax

GET 이나 POST 정보를 정해서 사용할때는 아래처럼 method 부분에 설정해서 사용.

import flash.net.*;
public var url:URLRequest = new URLRequest("http://mysite.com/index.jsp");
var uv:URLVariables = new URLVariables();
url.method = "GET";
uv.name = "fred";
url.data = uv;
navigateToURL(url);


GET, POST를 사용하지 않을때 간단히 하고자 할 때
위의 링크의 처럼 문장을 더하는게 아니면
"http://www.google.com/search?hl=en&q=" + ta1.text

함수 안에서 new로 바로 생성해서 사용 가능함.
navigateToURL(new URLRequest("http://www.google.com/"), "_blank");
Posted by lahuman
FLEX2009. 7. 23. 17:38

Link와 같은 hand cursor 로 형태를 변경해야 할 경우가 있다.

그럴 경우 



[Embed(source="/image/handCursor.png")]
   private var hadnCursor:Class;
//설정
//-9,-9 를 주는 이유는, mouse좌표에서 그정도 pix를 움직여야 이미지가 중심에 온다
 CursorUtils.changeCursor(hadnCursor, -9, -9); 

//해제
 CursorUtils.changeCursor(null, 0, 0); 

SOURCE CODE :


package sjd.utils
{
 import mx.managers.CursorManager;
 import mx.managers.CursorManagerPriority;
 
 /**
  * @class CursorUtil
  * @brief Set the cursor image
  * @author Jove
  * @version 1.2
  */
 public class CursorUtils{
  private static var currentType:Class = null;
    
  /**
   * Remove the current cursor and set an image.
   * @param type The image class
   * @param xOffset The xOffset of the cursorimage
   * @param yOffset The yOffset of the cursor image
   */
  public static function changeCursor(type:Class, xOffset:Number = 0, yOffset:Number = 0):void{
   if(currentType != type){
    currentType = type;
    CursorManager.removeCursor(CursorManager.currentCursorID);
    if(type != null){
     CursorManager.setCursor(type, CursorManagerPriority.MEDIUM, xOffset, yOffset);
    }
   }
  }
 }
}
Posted by lahuman
FLEX2009. 7. 15. 15:34

모든 작업이 끝나고 늦은 호출(point를 가져 오든지)을 할때 이용한다.

유용하므로 꼭 기억 할 것
Posted by lahuman
FLEX2009. 7. 8. 16:41

flex에서 기본적으로 제공 해주는 몇가지 Util을 눈 여겨 봐야 한다.


 var todayJobDp:Array = new Array(e.result);
 var tmp:Array =todayJobDp[0];
 /* 좋은 팁 알아 냈다 ㅋ  */
 for each(var tmpObj:Object in tmp){
   ObjectUtil.toString(tmpObj) // Object의 모든 값을 String 으로  뿌려준다.
   ObjectUtil.getClassInfo(tmpObj).properties //Object의 Key 값만 가져와서 뿌려준다.
  //등등 많다.. 꼭 참고 할 것!!
 }
Posted by lahuman
FLEX2009. 7. 3. 14:00


dependencies에 spring-flex만 넣어도 자동으로 blazeds를 가져오지만,

뭔가 모자르게 가져온다.

그래서 꼭

      
    	org.springframework.flex
    	spring-flex
    	1.0.0.RELEASE
    	jar
    	compile
    
    
    	com.adobe.blazeds
    	blazeds-common
    	3.2.0.3978
    	jar
    	compile
    
    
    	com.adobe.blazeds
    	blazeds-core
    	3.2.0.3978
    	jar
    	compile
    
    
    	com.adobe.blazeds
    	blazeds-opt
    	3.2.0.3978
    	jar
    	compile
    
    
    	com.adobe.blazeds
    	blazeds-proxy
    	3.2.0.3978
    	jar
    	compile
    
    
    	com.adobe.blazeds
    	blazeds-remoting
    	3.2.0.3978
    	jar
    	compile
    
    
    	xalan
    	xalan
    	2.7.1
    	jar
    	compile
    
이렇게 하도록!
Posted by lahuman
FLEX2009. 6. 30. 14:36


M1 버젼과는 많이 다르다,

(보통 블로그나, 정리를 해 놓은것을 보면 M1 기준으로 되어 있다)

특히 가장 많이 바뀐 점은, package 와, class 명이다.

Spring BlazeDS Integration API를 꼭 볼껏!!

M1 Versiton


	
	

	
	

	
	
	    
	    
	

Release Version

<!-- Dispatches requests mapped to a MessageBroker -->
 <bean class="org.springframework.flex.servlet.MessageBrokerHandlerAdapter"/>

 <!-- Bootstraps and exposes the BlazeDS MessageBroker -->
 <bean id="mySpringManagedMessageBroker" class="org.springframework.flex.core.MessageBrokerFactoryBean" />

 <!-- Expose the helloTestService bean for BlazeDS remoting -->
 <bean id="helloTest" class="org.springframework.flex.remoting.RemotingDestinationExporter">
     <property name="messageBroker" ref="mySpringManagedMessageBroker"/>
     <property name="service" ref="helloTestService"/>
 </bean>
Posted by lahuman
FLEX2009. 6. 9. 13:56
주요 몇가지 소스를 간단히 소개 하면,

1. /WEB-INF/web.xml

 <!-- The front controller of this Spring Web application, responsible for handling all application requests -->
 <servlet>
     <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>/WEB-INF/config/web-application-config.xml</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
 </servlet>

 <!-- Map all *.spring requests to the DispatcherServlet for handling -->
    <servlet-mapping>
        <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
        <url-pattern>/spring/*</url-pattern>
    </servlet-mapping>

2. /WEB-INF/flex/services-config.xml
        <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
            <endpoint url="http://{server.name}:{server.port}/{context.root}/spring/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
        </channel-definition>

3. application-context.xml
 <!-- Maps request paths at /* to the BlazeDS MessageBroker -->
 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
     <property name="mappings">
         <value>
             /*=mySpringManagedMessageBroker
         </value>
     </property>
 </bean>
 
 <!-- Dispatches requests mapped to a MessageBroker -->
 <bean class="org.springframework.flex.messaging.servlet.MessageBrokerHandlerAdapter"/>
 <!-- Bootstraps and exposes the BlazeDS MessageBroker -->
 <bean id="mySpringManagedMessageBroker" class="org.springframework.flex.messaging.MessageBrokerFactoryBean" /> 
    <!-- Implementation of ProductDAO using low-level JDBC -->
    <bean id="productDAO" class="flex.spring.samples.product.ProductDAO" >
        <constructor-arg ref="dataSource"/>
    </bean>
   
 <!-- Expose the productDAO bean for BlazeDS remoting -->
 <bean id="product" class="org.springframework.flex.messaging.remoting.FlexRemotingServiceExporter">
     <property name="messageBroker" ref="mySpringManagedMessageBroker"/>
     <property name="service" ref="productDAO"/>
 </bean>
   


위 예제를 보면 Spring MVC를 이용해서 flex BlazeDS를 호출 한다.

아래 파일을 찬찬히 봐라!
Posted by lahuman
FLEX2009. 6. 9. 13:05

우선,  generated 할 Project에서 마우스 오른쪽키 클릭 >> Propertise >> Flex Compiler
 >> Additional compiler arguments 에 다음을 추가
-keep-generated-actionscript

완료 이후, SRC> generated 라는 폴더가 생긴다.


그림 1


그림 2

그림 3 .
Posted by lahuman
FLEX2009. 6. 9. 11:47

현재 보고 있는 강의!!

강의하시는 임진영님의 친절한 해설 강의 완전 원츄! +_+


Posted by lahuman