In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

[解決というかなんというか]forked from: なんで潰れちゃうの??

スプライトが潰れちゃう~!!
スプライトをwidthとheightをいじって拡大したいのに
角度を変えると潰れてしまいます。
角度0だと正常動作しますが、90や270に設定すると…orz
これはいったいどういうこと!?助けてー!
Get Adobe Flash player
by iong 03 Aug 2010
  • Forked from mrgrotesque's なんで潰れちゃうの??
  • Diff: 6
  • Related works: 4
  • Talk

    ProjectNya at 03 Aug 2010 08:19
    sprite.width = size; だけでも行けますね。
    iong at 03 Aug 2010 08:24
    ほんとすね。。追記しました。これってバグ?
    iong at 03 Aug 2010 08:32
    9reさまのforkがスマートだし説明も完璧 http://wonderfl.net/c/zPma (名前こんな風につけて恐縮です。。)
    mrgrotesque at 03 Aug 2010 11:40
    おお、widthだけで拡大!? よけいわかんなくなってきました・・・(汗
    Embed
/**
 * Copyright iong ( http://wonderfl.net/user/iong )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/sjBD
 */

// forked from mrgrotesque's なんで潰れちゃうの??
package
{
    /**
     * スプライトが潰れちゃう~!!
     *  スプライトをwidthとheightをいじって拡大したいのに
     *  角度を変えると潰れてしまいます。
     *  角度0だと正常動作しますが、90や270に設定すると…orz
     *  これはいったいどういうこと!?助けてー!
     */
    import flash.events.Event;
    import flash.display.Sprite;
    
    public class FlashTest extends Sprite
    {
        private var sprite:Sprite;
        private var size:Number = 64;
        
        public function FlashTest()
        {
            // 矢印を作る
            sprite = new Sprite();
            sprite.graphics.beginFill(0x999900);
            sprite.graphics.moveTo(0,-50);
            sprite.graphics.lineTo(50,0);
            sprite.graphics.lineTo(0, 50);
            sprite.graphics.lineTo(0, 30);
            sprite.graphics.lineTo(-50, 30);
            sprite.graphics.lineTo(-50, -30);
            sprite.graphics.lineTo(0, -30);
            addChild( sprite );
            sprite.x = 200;
            sprite.y = 200;
            
            // 0だと正常動作、90だとつぶれる
            sprite.rotation = 90;
            
            addEventListener( Event.ENTER_FRAME, enterFrame );
        }

        private function enterFrame( e:Event ):void
        {
            size++;
//            sprite.width = size;
            sprite.height = size;

            /* なぜと言われても説明できなくて夏
               ちなみにwidthだけでも同じ動きになります(ProjectNyaさまthx)
             */
        }
    }
}