2012-02-03 43 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