2012-02-03 69 views
0

我真的是ActionScript和Flash/Flex的新手。繪製一個與電影剪輯一樣大的按鈕

我試圖實現一個多文件上傳和公開和JavaScript的API。儘管我認爲我可以處理urlrequests,但我很難製作SimpleButton。

我希望按鈕具有我創建的movieclip/sprite的大小。我試圖沒有運氣製作一個130px x 30px的動畫片段,並且有一個簡單的按鈕來填充整個區域。

我嘗試在動作做的:

private var _button:SimpleButton = new SimpleButton(); 
private var _fileList:FileReferenceList = new FileReferenceList(); 
private var _buttonShape:Shape; 

public function FileUploader() { 
    makeSkin(); 
    makeButton(); 
    addChild(_button); 
} 

private function makeSkin():void { 
    _buttonShape = new Shape(); 
    _buttonShape.graphics.beginFill(0x000000,1); 
    _buttonShape.graphics.drawRect(0,0,130,30); 
    _buttonShape.graphics.endFill(); 
} 

private function makeButton():void { 
    _button.upState = _buttonShape; 
    _button.downState = _buttonShape; 
    _button.overState = _buttonShape; 
    _button.hitTestState = _buttonShape; 
    _button.addEventListener(MouseEvent.CLICK, clickAction); 
} 

private function clickAction(e:MouseEvent):void { 
    _fileList.browse(); 
} 

HTML:

<object id="FileUploader" width="130px" height="30px"> 
    <param name="movie" value="FileUploader.swf" /> 
    <param name="quality" value="high" /> 
    <param name="bgcolor" value="#FFFFFF" /> 
    <param name="allowScriptAccess" value="sameDomain" /> 
    <param name="allowFullScreen" value="true" /> 

    <object type="application/x-shockwave-flash" data="FileUploader.swf" width="130px" height="30px" > 
     <param name="quality" value="high" /> 
     <param name="bgcolor" value="#FFFFFF" /> 
     <param name="allowScriptAccess" value="sameDomain" /> 
     <param name="allowFullScreen" value="true" /> 
    </object> 
</object> 

我使用intelij編譯此。我不知道如何用SDK單獨構建它。任何教程或提示將不勝感激。謝謝!

回答

0

我在閱讀更多內容後找到了答案。階段規模和階段對齊是問題。

public class FileUploader extends Sprite { 

private var _fileList:FileReferenceList = new FileReferenceList(); 
private var _buttonShape:Sprite = new Sprite(); 


public function FileUploader() { 
    stage.scaleMode = StageScaleMode.NO_SCALE; 
    stage.align = StageAlign.TOP_LEFT; 
    createButton(); 
    addChild(_buttonShape); 
} 

private function createButton():void { 
    _buttonShape.x = 0; 
    _buttonShape.y = 0; 
    _buttonShape.graphics.beginFill(0x000000,1); 
    _buttonShape.graphics.drawRect(0,0,1000,1000); 
    _buttonShape.graphics.endFill(); 
    _buttonShape.buttonMode = true; 
    _buttonShape.addEventListener(MouseEvent.CLICK, clickAction); 
} 

private function clickAction(e:MouseEvent):void { 
    _fileList.browse(); 
} 

} 
1

您可以下載FlashDevelop或FDT Free作爲IDE +編譯器。我更喜歡FlashDevelop,因爲讓所有東西都起來和工作起來相當簡單。但是,FDT和FlashDevelop都有模板。

+0

感謝您的建議。我試了一下。我認爲我會堅持使用Intelij Idea,因爲它提供了與FlashDevelop相比的更高級別的導入檢測和代碼提示。在製作與舞臺類似的按鈕時,我仍然需要一些幫助。 :) – 2012-02-03 22:04:37