나는 10 년 가까이에 ActionScript를 작성 해왔다. 하지만 필자는 TextMate와 같은 별도의 텍스트 편집기를 사용하여 코드를 작성하고 Flash IDE를 사용하여 컴파일했습니다. 이번 주말 Flash Builder를 시험해 볼 것을 결정했습니다. 분명히 앞으로 나아갈 길이기 때문입니다.Flash Builder에서는 상속 된 메서드를 재정의 할 수 없습니다. 나는 당황 스럽다
어쨌든. 저는 OSX에서 Flash Builder 4.6을 사용하고 있습니다. - 오늘 아침에 설치되었지만 아직 준비가 안 됐습니다. - 간단한 "Actionscript Mobile App"을 만들었습니다. (직장의 현재 프로젝트는 모바일 에어 앱이므로 플래시 IDE).
package
{
import zakariya.layout.RootLayoutSprite;
public class DoesThisEvenWork extends RootLayoutSprite
{
public function DoesThisEvenWork()
{
super();
trace("hello... what's my size: " + this.size);
}
}
override public function onLayoutUpdated():void
{
super.onLayoutUpdated();
}
override public function onSizeChanged():void
{
super.onSizeChanged();
trace('onSizeChanged..., new size: ' + this.size);
}
}
클래스 RootLayoutSprite는 LayoutSprite에서 파생 내가 쓴 크고 작은 프로젝트의 수십에서 사용한 레이아웃 관리 API의 일부입니다. onLayoutUpdated 및 onSizeChanged 메서드는 size 속성뿐 아니라 LayoutSprite에 정의됩니다. SWC로 컴파일되지 - -
package zakariya.layout
{
public class LayoutSprite extends Sprite {
/*
Called after this Sprite's size changes, before layout of children is executed
*/
public function onSizeChanged():void
{}
/*
Called after this Sprite's size changes, after layout of children is executed
*/
public function onLayoutUpdated():void
{}
}
}
zakariya.layout 코드는 지역의 repo에서 원시 코드 그리고 내가 추가 한 폴더 구조로 모두의 :
이 정의는 더 또는 덜처럼 보이는 프로젝트의 소스 경로에 추가합니다. Flash Builder는 RootLayoutSprite를 인식하므로 기본 클래스를 명확하게 인식합니다.
나는 다음 내가 받기를 구축하려고
:1006: A super expression can be used only inside class instance methods. DoesThisEvenWork.as /DoesThisEvenWork/src line 17 Flex Problem
1010: The override attribute may be used only on class property definitions. DoesThisEvenWork.as /DoesThisEvenWork/src line 15 Flex Problem
1010: The override attribute may be used only on class property definitions. DoesThisEvenWork.as /DoesThisEvenWork/src line 21 Flex Problem
1020: Method marked override must override another method. DoesThisEvenWork.as /DoesThisEvenWork/src line 15 Flex Problem
1020: Method marked override must override another method. DoesThisEvenWork.as /DoesThisEvenWork/src line 21 Flex Problem
그래서, 플래시 빌더 나 그 메소드를 오버라이드 (override) 할 수 없습니다. 'override'특성을 제거하면 Flash Builder는 해당 메서드가 기본 클래스에 정의되어 있다고 불평합니다. Facepalm.
이 간단한 코드는 Flash IDE에서 잘 작동합니다.
나는 솔직히 무슨 일이 일어나는지 모른다. 나는 플래시 빌더 설정에 속지 않았다. 저는 Flex 프로젝트를 작성하지 않았기 때문에 Flash Builder를 오랫동안 사용하지 않았습니다 ... 그리고 자유 시간에는 C++을 작성하므로 Flash Builder Eclipse 도구 체인에 대해 알지 못합니다.
내 생각에 플래시 IDE는 플래시 빌더보다 덜 엄격한 컴파일러를 가지고 있기 때문에 오랫동안 잘못된 생각을 해왔다.
도와주세요!
정확하게 귀하의 질문은 무엇인가? 클래스 밖에서'override'를 사용할 수없는 이유는 무엇입니까? 아니면 Flash IDE에서 작동하지만 Flash Builder에서 작동하지 않는 이유는 무엇입니까? 이 스타일을 허용하거나 사용하는 것은 틀린 것 같습니다. – Kapep