Forked from: katapad's な~るほど ザ!ワ… diff:339 forked from: な~るほど ザ!ワ… katapad forked:1favorite:0lines:1license : All rights reserved modified : 2009-09-28 22:07:37 Embed Tweet %2F%2F%20forked%20from%20katapad's%20%E3%81%AA%EF%BD%9E%E3%82%8B%E3%81%BB%E3%81%A9%20%E3%82%B6%EF%BC%81%E3%83%AF%E2%80%A6%0D%2F%2F%20forked%20from%20katapad's%20%E3%81%8A%E3%81%BE%E3%81%88%E3%81%AE%E6%AF%8D%E3%81%A1%E3%82%83%E3%82%93%E2%80%A6%0Dpackage%20%20%0D%7B%0D%09import%20caurina.transitions.Tweener%3B%0D%09import%20flash.display.*%3B%0D%09import%20flash.events.Event%3B%0D%09import%20flash.events.MouseEvent%3B%0D%09import%20flash.filters.BlurFilter%3B%0D%09import%20flash.geom.Matrix%3B%0D%09import%20flash.geom.Point%3B%0D%09import%20flash.geom.Rectangle%3B%0D%09import%20flash.text.TextField%3B%0D%09import%20flash.text.TextFieldAutoSize%3B%0D%09import%20flash.text.TextFormat%3B%0D%09%0D%09%5BSWF(width%3D%22465%22%2C%20height%3D%22465%22%2C%20backgroundColor%3D%220x000000%22%2C%20frameRate%3D%2260%22)%5D%0D%09%2F**%0D%09%20*%20...%0D%09%20*%20%40author%20katapad%0D%09%20*%20%40version%200.2%0D%09%20*%20%40since%202008%2F12%2F23%2023%3A55%0D%09%20*%2F%0D%09public%20class%20LEDSignMainNaruhodo%20extends%20Sprite%20%0D%09%7B%0D%09%09%0D%09%09%2F%2F----------------------------------%0D%09%09%2F%2F%20%20static%20var%2Fconst%0D%09%09%2F%2F----------------------------------%0D%09%09%2F%2Fpublic%20static%20const%20DEBUG_MOODE%3ABoolean%20%3D%20true%3B%0D%09%09public%20static%20const%20DEBUG_MOODE%3ABoolean%20%3D%20false%3B%0D%09%09public%20static%20const%20STAGE_WIDTH%3Auint%20%3D%20465%3B%0D%09%09public%20static%20const%20STAGE_HEIGHT%3Auint%20%3D%20465%3B%0D%09%09%0D%09%09public%20static%20const%20LED_CONTAINER_WIDTH%3Auint%20%3D%20464%3B%0D%09%09public%20static%20const%20LED_CONTAINER_HEIGHT%3Auint%20%3D%20464%3B%0D%09%09%0D%09%09public%20static%20const%20LED_MARGIN%3Auint%20%3D%202%3B%0D%09%09public%20static%20const%20LED_RADIUS%3Auint%20%3D%202%3B%0D%09%09%0D%09%09public%20static%20const%20ROWS%3Auint%20%3D%2015%3B%0D%09%09%0D%09%09public%20static%20const%20ANIMATION_SPEED%3ANumber%20%3D%200.02%3B%0D%09%09private%20static%20const%20DEFAULT_TEXTFORMAT%3ATextFormat%20%3D%20new%20TextFormat(%22_%E7%AD%89%E5%B9%85%22%2C%2012%2C%200xFFFFFF%2C%20false)%3B%0D%09%09%2F%2F----------------------------------%0D%09%09%2F%2F%20%20instance%20var%20%0D%09%09%2F%2F----------------------------------%0D%09%09private%20var%20_ledContainer%3ASprite%3B%0D%09%09private%20var%20_ledList%3AArray%3B%0D%09%09private%20var%20_canvas%3ASprite%3B%0D%09%09private%20var%20_canvasDrawBM%3ABitmapData%3B%0D%09%09private%20var%20_resetBMRect%3ARectangle%3B%0D%09%09private%20var%20_drawMatrix%3AMatrix%20%3D%20new%20Matrix()%3B%0D%09%09private%20var%20_tfList%3A%2F*TextField*%2FArray%3B%0D%09%09private%20var%20_square%3AShape%3B%0D%09%09%0D%09%09private%20var%20_words%3AArray%20%3D%20%5B%22%E3%81%AA%EF%BD%9E%E3%82%8B%E3%81%BB%E3%81%A9%20%E3%82%B6%EF%BC%81%22%2C%20%22%E3%83%AF%E3%83%B3%E3%83%80-%E3%82%B9%E3%83%AF%E3%83%B3%22%5D%3B%0D%09%09%0D%09%09private%20var%20_cols%3Auint%3B%0D%09%09%0D%09%09public%20function%20LEDSignMainNaruhodo()%20%0D%09%09%7B%0D%09%09%09init()%3B%0D%09%09%09updateOn()%3B%0D%09%09%09animationStart()%3B%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20init()%3Avoid%20%0D%09%09%7B%0D%09%09%09_cols%20%3D%20Math.floor((LED_CONTAINER_WIDTH%20-%202%20*%20LED_MARGIN)%20%2F%20(LED_RADIUS%20*%202%20%2F*%2B%20LED.OFF_GLOW_FILTER.blurX%20*%2F%2B%20LED_MARGIN))%0D%09%09%09_resetBMRect%20%3D%20new%20Rectangle(0%2C%200%2C%20_cols%2C%20ROWS)%3B%0D%09%09%09initStage()%3B%0D%09%09%09initLEDs()%3B%0D%09%09%09initCanvas()%3B%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20initCanvas()%3Avoid%0D%09%09%7B%0D%09%09%09_canvas%20%3D%20new%20Sprite()%3B%0D%09%09%09_canvasDrawBM%20%3D%20new%20BitmapData(_cols%2C%20ROWS%2C%20true%2C%200x000000)%3B%0D%09%09%09_drawMatrix.translate(0%2C%20-2)%3B%0D%09%09%09createText()%3B%0D%09%09%09createSquare()%3B%0D%09%09%09%0D%09%09%09_ledContainer.y%20%3D%20stage.stageHeight%20*%200.5%20-%20_ledContainer.height%20*%200.5%20%3B%0D%0D%09%09%09%2F%2F%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E7%A2%BA%E8%AA%8D%E7%94%A8%0D%09%09%09if%20(DEBUG_MOODE)%0D%09%09%09%7B%0D%09%09%09%09addChild(_canvas)%3B%0D%09%09%09%09_canvas.y%20%3D%20420%3B%0D%09%09%09%09var%20bm%3ABitmap%20%3D%20new%20Bitmap(_canvasDrawBM)%3B%0D%09%09%09%09addChild(bm)%3B%0D%09%09%09%09bm.y%20%3D%20300%3B%0D%09%09%09%7D%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20createSquare()%3Avoid%0D%09%09%7B%0D%09%09%09_square%20%3D%20new%20Shape()%3B%0D%09%09%09_square.y%20%3D%202%3B%0D%09%09%09_canvas.addChild(_square)%3B%0D%09%09%09_square.graphics.beginFill(0xFFFFFF%2C%201.0)%3B%0D%09%09%09_square.graphics.drawRect(0%2C%200%2C%20_cols%2C%20ROWS)%3B%0D%09%09%09_square.graphics.endFill()%3B%0D%09%09%09_square.blendMode%20%3D%20BlendMode.INVERT%3B%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20createText()%3Avoid%0D%09%09%7B%0D%09%09%09_tfList%20%3D%20%5B%5D%3B%0D%09%09%09for%20(var%20i%3Aint%20%3D%200%2C%20n%3Aint%20%3D%20_words.length%3B%20i%20%3C%20n%3B%20i%2B%2B)%20%0D%09%09%09%7B%0D%09%09%09%09var%20tf%3ATextField%20%3D%20_canvas.addChild(new%20TextField())%20as%20TextField%3B%0D%09%09%09%09tf.defaultTextFormat%20%3D%20DEFAULT_TEXTFORMAT%3B%0D%09%09%09%09tf.autoSize%20%3D%20TextFieldAutoSize.LEFT%3B%0D%09%09%09%09tf.text%20%3D%20_words%5Bi%5D%3B%0D%09%09%09%09tf.y%20%3D%202%3B%0D%09%09%09%09%0D%09%09%09%09_tfList%5Bi%5D%20%3D%20tf%3B%0D%09%09%09%7D%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20initStage()%3Avoid%0D%09%09%7B%0D%09%09%09%2F%2Fstage.align%20%3D%20StageAlign.TOP_LEFT%3B%0D%09%09%09%2F%2Fstage.scaleMode%20%3D%20StageScaleMode.NO_SCALE%3B%0D%09%09%09stage.quality%20%3D%20StageQuality.HIGH%3B%0D%09%09%09var%20stageBg%3AShape%20%3D%20addChild(new%20Shape())%20as%20Shape%3B%0D%09%09%09stageBg.graphics.lineStyle(1%2C%200xcccccc)%3B%0D%09%09%09stageBg.graphics.drawRect(0%2C%200%2C%20STAGE_WIDTH%2C%20STAGE_HEIGHT)%3B%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20initLEDs()%3Avoid%0D%09%09%7B%0D%09%09%09_ledList%20%3D%20%5B%5D%3B%0D%09%09%09_ledContainer%20%3D%20new%20Sprite()%3B%0D%09%09%09addChild(_ledContainer)%3B%20%0D%09%09%09%0D%09%09%09var%20space%3Auint%20%3D%20LED_RADIUS%20*%202%2F*%20%2B%20LED.OFF_GLOW_FILTER.blurX*%2F%20%2B%20LED_MARGIN%3B%0D%09%09%09%0D%09%09%09for%20(var%20i%3Aint%20%3D%200%3B%20i%20%3C%20ROWS%20*%20_cols%3B%20i%2B%2B)%20%0D%09%09%09%7B%0D%09%09%09%09var%20led%3ALED%20%3D%20_ledContainer.addChild(LEDFactory.create(LED_RADIUS))%20as%20LED%3B%0D%09%09%09%09led.x%20%3D%20(i%20%25%20_cols)%20*%20space%20%2B%20LED_MARGIN%3B%0D%09%09%09%09led.y%20%3D%20Math.floor(i%20%2F%20_cols)%20*%20space%20%2B%20space%3B%0D%09%09%09%09_ledList%5Bi%5D%20%3D%20led%3B%0D%09%09%09%7D%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20updateOn()%3Avoid%0D%09%09%7B%0D%09%09%09addEventListener(Event.ENTER_FRAME%2C%20update)%3B%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20update(event%3AEvent)%3Avoid%0D%09%09%7B%0D%09%09%09render()%3B%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20render()%3Avoid%20%0D%09%09%7B%0D%09%09%09_canvasDrawBM.fillRect(_resetBMRect%2C%200)%3B%0D%09%09%09_canvasDrawBM.draw(_canvas%2C%20_drawMatrix)%3B%0D%09%09%09_canvasDrawBM.threshold(_canvasDrawBM%2C%20_canvasDrawBM.rect%2C%20new%20Point()%2C%20%22%3C%22%2C%200x808080%2C%200)%3B%0D%09%09%09%0D%09%09%09for%20(var%20i%3Aint%20%3D%200%2C%20n%3Aint%20%3D%20_ledList.length%3B%20i%20%3C%20n%3B%20i%2B%2B)%20%0D%09%09%09%7B%0D%09%09%09%09var%20color%3Auint%20%3D%20_canvasDrawBM.getPixel((i%20%25%20_cols)%2C%20Math.floor(i%20%2F%20_cols))%3B%0D%09%09%09%09if%20(color%20%3D%3D%200)%0D%09%09%09%09%09LED(_ledList%5Bi%5D).lightOn()%0D%09%09%09%09else%0D%09%09%09%09%09LED(_ledList%5Bi%5D).lightOff()%0D%09%09%09%7D%0D%09%09%7D%0D%09%09%0D%09%09%2F**%0D%09%09%20*%20%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%0D%09%09%20*%2F%0D%09%09private%20function%20animationStart()%3Avoid%0D%09%09%7B%0D%09%09%09initPos()%3B%0D%09%09%09var%20delayTime%3ANumber%20%3D%200%3B%0D%09%09%09var%20animTime%3ANumber%3B%0D%09%09%09var%20speed%3ANumber%20%3D%20ANIMATION_SPEED%3B%0D%09%09%09for%20(var%20i%3Aint%20%3D%200%2C%20n%3Aint%20%3D%20_tfList.length%3B%20i%20%3C%20n%3B%20i%2B%2B)%20%0D%09%09%09%7B%0D%09%09%09%09var%20tf%3ATextField%20%3D%20_tfList%5Bi%5D%3B%0D%09%09%09%09animTime%20%3D%20LEDAnimation.getTFAnimTime(tf.x%2C%20-tf.textWidth%20-%201%2C%20speed)%3B%0D%09%09%09%09%2F%2F%E3%83%95%E3%83%AA%0D%09%09%09%09if%20(i%20!%3D%20n%20-1)%0D%09%09%09%09%7B%0D%09%09%09%09%09delayTime%20%3D%20LEDAnimation.slide(tf%2C%20-tf.textWidth%20-%202%2C%20delayTime%2C%20animTime)%3B%0D%09%09%09%09%7D%0D%09%09%09%09%2F%2F%E3%82%AA%E3%83%81%0D%09%09%09%09else%0D%09%09%09%09%7B%0D%09%09%09%09%09delayTime%20-%3D%200.8%3B%0D%09%09%09%09%09var%20cx%3ANumber%20%3D%20Math.round((_cols%20-%20tf.textWidth)%20*%200.5)%3B%0D%09%09%09%09%09animTime%20%3D%20LEDAnimation.getTFAnimTime(tf.x%2C%20-cx%20-%201%2C%20speed)%3B%0D%09%09%09%09%09delayTime%20%3D%20LEDAnimation.slide(tf%2C%20cx%2C%20delayTime%2C%20animTime)%3B%0D%09%09%09%09%09delayTime%20%2B%3D%201.0%3B%0D%09%09%09%09%09for%20(var%20j%3Aint%20%3D%200%3B%20j%20%3C%204%3B%20j%2B%2B)%20%0D%09%09%09%09%09%7B%0D%09%09%09%09%09%09delayTime%20%3D%20LEDAnimation.blink(_square%2C%20delayTime)%3B%0D%09%09%09%09%09%7D%0D%09%09%09%09%09delayTime%20%3D%20LEDAnimation.slide(tf%2C%20-tf.textWidth%20-%202%2C%20delayTime%20%2B%200.5%2C%20LEDAnimation.getTFAnimTime(cx%2C%20-tf.textWidth%20-%201%2C%20speed))%3B%0D%09%09%09%09%7D%0D%09%09%09%7D%0D%09%09%09Tweener.addCaller(this%2C%20%7B%20time%3A%200.0%2C%20delay%3A%20delayTime%20%2B%202.0%2C%20count%3A%201%2C%20onUpdate%3A%20animationStart%20%7D%20)%3B%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20initPos()%3Avoid%0D%09%09%7B%0D%09%09%09_square.visible%20%3D%20false%3B%0D%09%09%09for%20(var%20i%3Aint%20%3D%200%2C%20n%3Aint%20%3D%20_tfList.length%3B%20i%20%3C%20n%3B%20i%2B%2B)%20%0D%09%09%09%7B%0D%09%09%09%09_tfList%5Bi%5D.x%20%3D%20_cols%20*%201.5%3B%0D%09%09%09%7D%0D%09%09%7D%0D%09%7D%0D%7D%0Dimport%20caurina.transitions.Tweener%3B%0D%0Dclass%20LEDAnimation%0D%7B%0D%09function%20LEDAnimation()%0D%09%7B%0D%09%09%0D%09%7D%0D%09%0D%09public%20static%20function%20blink(target%3ADisplayObject%2C%20delayTime%3ANumber%2C%20blinkTime%3ANumber%20%3D%200.2)%3ANumber%0D%09%7B%0D%09%09Tweener.addTween(target%2C%20%7B%20visible%3A%20true%2C%20time%3A%200.0%2C%20delay%3A%20delayTime%20%2B%3D%20blinkTime%2C%20transition%3A%20%22linear%22%20%7D%20)%3B%0D%09%09Tweener.addTween(target%2C%20%7B%20visible%3A%20false%2C%20time%3A%200.0%2C%20delay%3A%20delayTime%20%2B%3D%20blinkTime%2C%20transition%3A%20%22linear%22%20%7D%20)%3B%0D%09%09return%20delayTime%3B%0D%09%7D%0D%09%0D%09public%20static%20function%20slide(target%3ADisplayObject%2C%20destX%3ANumber%2C%20delayTime%3ANumber%2C%20animTime%3ANumber)%3ANumber%0D%09%7B%0D%09%09Tweener.addTween(target%2C%20%7B%20x%3A%20destX%2C%20time%3A%20animTime%2C%20delay%3A%20delayTime%2C%20transition%3A%20%22linear%22%20%7D%20)%3B%0D%09%09return%20delayTime%20%2B%20animTime%3B%0D%09%7D%0D%09public%20static%20function%20getTFAnimTime(startX%3ANumber%2C%20destX%3ANumber%2C%20friction%3ANumber%20%3D%200.1)%3ANumber%0D%09%7B%0D%09%09return%20Math.abs((startX%20-%20destX)%20*%20friction)%3B%0D%09%7D%0D%09%0D%7D%0Dimport%20flash.display.*%3B%0Dimport%20flash.filters.BlurFilter%3B%0Dimport%20flash.filters.GlowFilter%3B%0Dimport%20flash.geom.ColorTransform%3B%0Dimport%20flash.geom.Matrix%3B%0Dclass%20LED%20extends%20Bitmap%0D%7B%0D%09%0D%09public%20static%20const%20ON_COLOR%3Auint%20%3D%200xE9C20E%3B%0D%09public%20static%20const%20OFF_COLOR%3Auint%20%3D%200x454221%3B%0D%09public%20static%20const%20ON_GLOW_FILTER%3AGlowFilter%20%3D%20new%20GlowFilter(ON_COLOR%2C%201.0%2C%204%2C%204%2C%201%2C%202)%3B%0D%09public%20static%20const%20ON_INNER_GLOW_FILTER%3AGlowFilter%20%3D%20new%20GlowFilter(0xFFFFFF%2C%200.8%2C%204%2C%204%2C%201%2C%202%2C%20true)%3B%0D%09public%20static%20const%20ON_COLOR_FILTER%3AColorTransform%20%3D%20new%20ColorTransform(0%2C%200%2C%200%2C%201.0%2C%2069%2C%2066%2C%2033)%3B%0D%09public%20static%20const%20OFF_GLOW_FILTER%3AGlowFilter%20%3D%20new%20GlowFilter(OFF_COLOR%2C%201.0%2C%204%2C%204%2C%201%2C%202)%3B%0D%09public%20static%20const%20OFF_INNER_GLOW_FILTER%3AGlowFilter%20%3D%20new%20GlowFilter(0xFFFFFF%2C%200.5%2C%202%2C%202%2C%201%2C%202%2C%20true)%3B%0D%09public%20static%20const%20OFF_COLOR_FILTER%3AColorTransform%20%3D%20new%20ColorTransform()%3B%0D%09%0D%09private%20static%20var%20_onBM%3ABitmapData%3B%0D%09private%20static%20var%20_offBM%3ABitmapData%3B%0D%09%0D%09public%20function%20LED()%0D%09%7B%0D%09%09init()%3B%0D%09%7D%0D%09%0D%09private%20function%20init()%3Avoid%0D%09%7B%0D%09%09this.bitmapData%20%3D%20LED._offBM%3B%0D%09%7D%0D%09%0D%09public%20function%20lightOn()%3Avoid%0D%09%7B%0D%09%09this.bitmapData%20%3D%20LED._onBM%3B%0D%09%7D%0D%09%0D%09public%20function%20lightOff()%3Avoid%0D%09%7B%0D%09%09this.bitmapData%20%3D%20LED._offBM%3B%0D%09%7D%0D%09%0D%09public%20static%20function%20set%20onBM(value%3ABitmapData)%3Avoid%20%0D%09%7B%0D%09%09_onBM%20%3D%20value%3B%0D%09%7D%0D%09%0D%09public%20static%20function%20set%20offBM(value%3ABitmapData)%3Avoid%20%0D%09%7B%0D%09%09_offBM%20%3D%20value%3B%0D%09%7D%0D%09%0D%7D%0D%0Dclass%20LEDFactory%0D%7B%0D%09%0D%09private%20static%20var%20_isCached%3ABoolean%20%3D%20false%3B%0D%09public%20function%20LEDFactory()%7B%7D%0D%09%0D%09public%20static%20function%20create(radius%3ANumber%20%3D%205)%3ALED%0D%09%7B%0D%09%09if%20(!_isCached)%0D%09%09%7B%0D%09%09%09initCache(radius)%3B%0D%09%09%7D%0D%09%09return%20new%20LED()%3B%0D%09%09%0D%09%7D%0D%09%0D%09private%20static%20function%20initCache(radius%3ANumber)%3Avoid%0D%09%7B%0D%09%09LED.onBM%20%3D%20createBM(radius%2C%20LED.ON_COLOR%2C%20%5BLED.ON_GLOW_FILTER%2C%20LED.ON_INNER_GLOW_FILTER%5D%2C%20LED.ON_COLOR_FILTER)%3B%0D%09%09LED.offBM%20%3D%20%20createBM(radius%2C%20LED.OFF_COLOR%2C%20%5BLED.OFF_GLOW_FILTER%2C%20LED.OFF_INNER_GLOW_FILTER%5D%2C%20LED.OFF_COLOR_FILTER)%3B%0D%09%09_isCached%20%3D%20true%3B%0D%09%7D%0D%09%0D%09private%20static%20function%20createBM(radius%3ANumber%2C%20color%3Auint%2C%20filters%3AArray%2C%20colortrans%3AColorTransform)%3ABitmapData%0D%09%7B%0D%09%09var%20shape%3AShape%20%3D%20new%20Shape()%3B%0D%09%09shape.graphics.beginFill(color)%3B%0D%09%09shape.graphics.drawCircle(radius%2C%20radius%2C%20radius)%3B%0D%09%09shape.graphics.endFill()%3B%0D%09%09shape.filters%20%3D%20filters%3B%0D%09%09shape.transform.colorTransform%20%3D%20colortrans%3B%0D%09%09%0D%09%09var%20result%3ABitmapData%20%3D%20%20new%20BitmapData(shape.width%20%2B%204%2C%20shape.height%20%2B%204%2C%20true%2C%200x000000)%3B%0D%09%09var%20mtx%3AMatrix%20%3D%20new%20Matrix()%3B%0D%09%09mtx.translate(2%2C%202)%3B%0D%09%09result.draw(shape%2C%20mtx)%3B%0D%09%09return%20result%3B%0D%09%7D%0D%7D Code Fullscreen Preview Fullscreen Math.round Math.abs Math.floor sort new page view favorite forked pv0 forked from: forked from: な~るほ.. _nabe forked:0 favorite:0lines:1 (diff:1)