Flash player v 9

On Thu, Mar 13, 2008 at 8:55 AM, Henry Minsky <[EMAIL PROTECTED]> wrote:
> Note, I am using Firefox on MacOSX 10.5
>
>
>
>  On Thu, Mar 13, 2008 at 8:55 AM, Henry Minsky <[EMAIL PROTECTED]> wrote:
>  > Which version of Openlaszlo are you using? I don't see any flickering
>  >  when I run it in the "top of tree" dev branch. Have you
>  >  tried a  recent nightly build ? Perhaps some issue has been fixed with
>  >  image display recently?
>  >
>  >  Note, I had to modify your example to set visible to true on the image
>  >  views, otherwise it remained false, since it appears no other code was
>  >  setting it to visible.
>  >
>  >
>  >
>  >
>  >
>  >  On Thu, Mar 13, 2008 at 7:29 AM, Marc Bachstein <[EMAIL PROTECTED]> wrote:
>  >  > Hello,
>  >  >
>  >  >  I have written an application in which you can switch the image by 
> clicking
>  >  >  on a navigation button. It is also possible to zoom into the image. 
> When you
>  >  >  switch to another image the zoom factor keeps at the same value.
>  >  >
>  >  >  Now there is a problem. If the zoom factor is different from 1, the 
> image is
>  >  >  firstly visible in 100% and after a subsecond the image is shown in the
>  >  >  desired zoom setting. This causes a weird flickering as the image is 
> painted
>  >  >  twice.
>  >  >
>  >  >  As there is just one call of   newImgView.setSource(imgUrl, "none")
>  >  >  I wanted to know whether this is bug in Laszlo and how I can avoid the
>  >  >  double painting of the image.
>  >  >
>  >  >  Here is a test program, which demonstrates the problem.
>  >  >
>  >  >  When you click a few times on the next and previous button, you'll
>  >  >  (sometimes) see the loaded image in the upper left corner visible in 
> 100%
>  >  >  before it is shown in the desired zooming size (here 200%).
>  >  >
>  >  >  Best Regards,
>  >  >  Marc
>  >  >
>  >  >  -------------------
>  >  >
>  >  >  <canvas height="100%" width="100%">
>  >  >         <library>
>  >  >                 <class name="MyImage" extends="view">
>  >  >                         <attribute name="active" type="boolean"
>  >  >  value="false"/>
>  >  >
>  >  >                         <handler name="onload"><![CDATA[
>  >  >                 show();
>  >  >                     ]]>
>  >  >                 </handler>
>  >  >
>  >  >                         <method name="show"><![CDATA[
>  >  >                     this.animate('opacity', 1, 100);
>  >  >                     ]]>
>  >  >                 </method>
>  >  >
>  >  >                 <method name="hide"><![CDATA[
>  >  >                     this.animate('opacity', 0, 100);
>  >  >                     ]]>
>  >  >                 </method>
>  >  >                 </class>
>  >  >         </library>
>  >  >
>  >  >         <attribute name="currentIndex" value="1" type="number"/>
>  >  >
>  >  >         <simplelayout axis="y" spacing="5" inset="100"/>
>  >  >
>  >  >         <!-- This box contains the buttons for image navigation -->
>  >  >         <view name="functionBox" width="450" x="120" y="0" height="45"
>  >  >                 bgcolor="#CCCCCC" options="ignorelayout" align="center">
>  >  >                 <simplelayout axis="x" spacing="5" inset="5"/>
>  >  >
>  >  >                 <!-- Button first/initial Image -->
>  >  >                 <button name="tbbfirst" text="first/init" y="3" 
> width="100"
>  >  >  height="30">
>  >  >                         <handler name="onclick"><![CDATA[
>  >  >                                 canvas.currentIndex = 1;
>  >  >                                 canvas.loadImage();
>  >  >                         ]]>
>  >  >                         </handler>
>  >  >                 </button>
>  >  >
>  >  >                 <!-- Button previous Image -->
>  >  >                 <button name="tbbprev" text="previous" y="3" width="100"
>  >  >  height="30">
>  >  >                         <handler name="onclick"><![CDATA[
>  >  >                                 if (canvas.currentIndex > 1) {
>  >  >                                         canvas.currentIndex--;
>  >  >                                         canvas.loadImage();
>  >  >                                 }
>  >  >                         ]]>
>  >  >                         </handler>
>  >  >                 </button>
>  >  >
>  >  >                 <!-- Button next Image -->
>  >  >                 <button name="tbbnext" text="next" y="3" width="100"
>  >  >  height="30">
>  >  >                         <handler name="onclick"><![CDATA[
>  >  >                                 if (canvas.currentIndex < 8) {
>  >  >                                         canvas.currentIndex++;
>  >  >                                         canvas.loadImage();
>  >  >                                 }
>  >  >                         ]]>
>  >  >                         </handler>
>  >  >                 </button>
>  >  >
>  >  >                 <!-- Text field, which shows Image number -->
>  >  >                 <text name ="textfield" id="tf" text="image nr: 
> undefined">
>  >  >                 </text>
>  >  >         </view>
>  >  >
>  >  >         <view name="imagecontainer" x="${parent.width - this.width}"
>  >  >  width="1000" height="830" bgcolor="#000000">
>  >  >         <MyImage name="image1" id="image1" stretches="both"
>  >  >                 x="${parent.width / 2 - this.width / 2}"
>  >  >                         y="${parent.height / 2 - this.height / 2}"
>  >  >  visible="false" opacity="0">
>  >  >
>  >  >                 <handler name="onload">
>  >  >                         // image zooming
>  >  >                         image1.setWidth(2 * image1.resourcewidth);
>  >  >                                 image1.setHeight( 2* 
> image1.resourceheight);
>  >  >                         image1.active = true;
>  >  >                         image2.active = false;
>  >  >                         image1.bringToFront();
>  >  >                         image2.unload();
>  >  >                 </handler>
>  >  >                 </MyImage>
>  >  >
>  >  >                 <MyImage name="image2" id="image2" stretches="both"
>  >  >                         x="${parent.width / 2 - this.width / 2}"
>  >  >                         y="${parent.height / 2 - this.height / 2}"
>  >  >  visible="false" opacity="0">
>  >  >
>  >  >                 <handler name="onload">
>  >  >                         // image zooming
>  >  >                         image2.setWidth(2 * image2.resourcewidth);
>  >  >                                 image2.setHeight( 2* 
> image2.resourceheight);
>  >  >                         image2.active = true;
>  >  >                                 image1.active = false;
>  >  >                                 image2.bringToFront();
>  >  >                                 image1.unload();
>  >  >                 </handler>
>  >  >                 </MyImage>
>  >  >         </view>
>  >  >
>  >  >         <method name="loadImage"><![CDATA[
>  >  >                         var curImgView;
>  >  >                 var newImgView;
>  >  >
>  >  >                 if (imagecontainer.image1.active) {
>  >  >                         Debug.write("     => paint new image in view
>  >  >  image2");
>  >  >                         curImgView = imagecontainer.image1;
>  >  >                         newImgView = imagecontainer.image2;
>  >  >                 } else {
>  >  >                         Debug.write("     => paint new image in view
>  >  >  image1");
>  >  >                         curImgView = imagecontainer.image2;
>  >  >                         newImgView = imagecontainer.image1;
>  >  >                 }
>  >  >
>  >  >                 var d = new Date();
>  >  >                         var t = d.getDate() + "-" + (d.getMonth()+1) + 
> "-" +
>  >  >  d.getFullYear() + "_" + d.getHours()
>  >  >                         + ":" + d.getMinutes() + ":" + d.getSeconds() + 
> "."
>  >  >  + d.getMilliseconds();
>  >  >
>  >  >
>  >  >                 //actualize text of image nr
>  >  >                 tf.setText("image nr: "+canvas.currentIndex);
>  >  >
>  >  >                         // sources must be set !
>  >  >                         if (this.currentIndex == 1) {
>  >  >                                 var imgUrl =
>  >  >  "http://www.openlaszlo.org/themes/manji/images/ol_logo_small.gif";;
>  >  >                         } else if (this.currentIndex == 2) {
>  >  >                                 var imgUrl =
>  >  >  "http://www.openlaszlo.org/files/ol_java_bot.png";;
>  >  >                         } else if (this.currentIndex == 3) {
>  >  >                                 var imgUrl =
>  >  >  "http://www.openlaszlo.org/files/lsl_action-small.jpg";;
>  >  >                         } else if (this.currentIndex == 4) {
>  >  >                                 var imgUrl =
>  >  >  "http://www.openlaszlo.org/themes/manji/images/ol_logo_small.gif";;
>  >  >                         } else if (this.currentIndex == 5) {
>  >  >                                 var imgUrl =
>  >  >  "http://www.openlaszlo.org/files/ol_java_bot.png";;
>  >  >                         } else if (this.currentIndex == 6) {
>  >  >                                 var imgUrl =
>  >  >  "http://www.openlaszlo.org/files/lsl_action-small.jpg";;
>  >  >                         } else if (this.currentIndex == 7) {
>  >  >                                 var imgUrl =
>  >  >  "http://www.openlaszlo.org/themes/manji/images/ol_logo_small.gif";;
>  >  >                         } else if (this.currentIndex == 8) {
>  >  >                                 var imgUrl =
>  >  >  "http://www.openlaszlo.org/files/ol_java_bot.png";;
>  >  >                         }
>  >  >
>  >  >                         newImgView.unload();
>  >  >
>  >  >                         newImgView.setSource(imgUrl, "none");
>  >  >
>  >  >                         Debug.write("   load Image URL:
>  >  >  "+imgUrl.toString());
>  >  >                 ]]>
>  >  >         </method>
>  >  >  </canvas>
>  >  >
>  >  >  -------------------
>  >  >
>  >  >
>  >  >
>  >
>  >
>  >
>  >  --
>  >  Henry Minsky
>  >  Software Architect
>  >  [EMAIL PROTECTED]
>  >
>
>
>
>  --
>  Henry Minsky
>  Software Architect
>  [EMAIL PROTECTED]
>



-- 
Henry Minsky
Software Architect
[EMAIL PROTECTED]

Reply via email to